Streamline your project setup with Clixor - the modern CLI for effortless development initialization.
Installation β’ Usage β’ Features β’ Contributing β’ Support
- ποΈ Project Initialization: Quickly bootstrap projects using predefined or custom templates
- π¨ Customizable Templates: Easily manage and use your own project templates
- π§ Interactive Setup: User-friendly prompts guide you through project configuration
- π¦ Multiple Package Managers: Seamless support for npm, Yarn, and Bun
- π οΈ Optional Tooling: Integrate popular tools like ESLint, Prettier, Jest, and Docker with ease
- βοΈ Flexible Configuration: Persist and manage your preferences for future use
npx clixor init my-awesome-projectThis command initializes a new project named "my-awesome-project" using Clixor's interactive setup.
- Node.js (v14 or later)
- Git
To install Clixor globally, run:
npm install -g clixorNow you can use Clixor from anywhere in your terminal:
clixor init my-new-projectBy following these steps, users will be able to install and use Clixor globally via npm, which will pull the package from your GitHub repository. The CI/CD pipeline will ensure that new versions are automatically published to npm when you push changes or create new releases on GitHub.
-
Clone the repository:
git clone https://github.com/Youssefbaghr/Clixor.git cd Clixor -
Install dependencies:
npm install # or yarn install # or bun install
-
Link the CLI globally:
npm link
Clixor now features a sleek website built with Next.js, offering a comprehensive overview of the project.
-
Navigate to the website directory:
cd website -
Install dependencies:
yarn install
-
Run the development server:
yarn dev
For your convenience, you can use these Yarn scripts from the root directory:
-
Development mode:
yarn website:dev
-
Production build:
yarn website:build
-
Start production server:
yarn website:start
- π Documentation: In-depth guides on Clixor usage and features
- πΌ Template Showcase: Explore available project templates
- π§ Interactive Examples: Try Clixor commands directly in your browser
- π° Blog: Stay updated with the latest Clixor news and tips
- π€ Community: Connect with other Clixor users and contributors
Visit our website to discover how Clixor can streamline your development workflow!
Clixor comes with a Visual Studio Code extension to enhance your development experience. To use the extension:
- Open VS Code
- Go to the Extensions view (Ctrl+Shift+X)
- Search for "Clixor"
- Install the Clixor extension
- Use the command palette (Ctrl+Shift+P) and search for "Clixor: Initialize New Project" to create a new Clixor project directly from VS Code.
clixor initFollow the interactive prompts to configure your project.
clixor config --list clixor config --set templateDir=/path/to/templates clixor config --resetclixor template --list clixor template --add react-ts https://github.com/example/react-ts-template.git clixor template --remove react-ts Clixor uses a JSON configuration file stored at ~/.Clixor-config.json. You can edit this file directly or use the clixor config command.
Example configuration:
{ "defaultTemplate": "react", "packageManager": "npm", "features": ["eslint", "prettier"], "customTemplates": { "react-ts": "https://github.com/example/react-ts-template.git" } }- Create a Git repository with your project structure
- Add a
clixor.jsonfile to specify template options:{ "variables": ["projectName", "author"], "scripts": { "post-init": "npm run setup" } } - Add the template using
clixor template --add
Clixor supports a plugin system that allows you to extend its functionality. Here's how to create a plugin:
- Create a new TypeScript file in the
src/pluginsdirectory. - Import the
PluginInterfacefromsrc/plugins/types/index.ts. - Create a class that implements the
PluginInterface. - Implement the required methods:
name: A string identifier for your plugin.version: The version of your plugin.initialize: A method called when the plugin is registered.execute: The main functionality of your plugin.
Example plugin:
import { PluginInterface } from '../types'; export class MyCustomPlugin implements PluginInterface { name = 'MyCustomPlugin'; version = '1.0.0'; initialize(): void { console.log('MyCustomPlugin initialized'); } async execute(context: any): Promise<string> { return MyCustomPlugin executed with context: ${JSON.stringify(context)}; } }To use your plugin, register it in the src/utils/plugins.ts file:
import { MyCustomPlugin } from '../plugins/MyCustomPlugin'; // In the loadPlugins function const myCustomPlugin = new MyCustomPlugin(); myCustomPlugin.initialize(); // Add logic to use the plugin as neededPlugins allow you to add new commands, modify existing functionality, or integrate with external services to enhance Clixor's capabilities.
We love our contributors! β€οΈ Check out the CONTRIBUTORS.md file to see the amazing people who have helped make Clixor awesome.
Want to join this list of amazing people? We'd love your help! Here's how you can contribute:
- π΄ Fork the repository
- πΏ Create a new branch
- β¨ Make your changes
- π§ Test your changes
- π€ Submit a pull request
For more detailed information, please read our Contributing Guide.
Whether it's submitting a bug report, proposing a new feature, or improving documentation - every contribution counts!
See CHANGELOG.md for a history of changes to this project.
This project is licensed under the MIT License - see the LICENSE file for details.
- Commander.js - CLI framework
- Inquirer.js - Interactive prompts
- Chalk - Terminal styling