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-project
This 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 clixor
Now you can use Clixor from anywhere in your terminal:
clixor init my-new-project
By 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 init
Follow the interactive prompts to configure your project.
clixor config --list
clixor config --set templateDir=/path/to/templates
clixor config --reset
clixor 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.json
file 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/plugins
directory. - Import the
PluginInterface
fromsrc/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 needed
Plugins 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