Contributing
Thank you for your interest in contributing to Flux-CLI! This project is a learning initiative, and contributions of all kinds are welcome.
Code of Conduct
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn
- Assume good intentions
How to Contribute
Reporting Bugs
- Check the issues to see if it's already reported
- Create a new issue with a clear description
- Include steps to reproduce, expected behavior, and actual behavior
- Include your environment details (OS, Python version, etc.)
Suggesting Features
- Open an issue describing the feature
- Explain why it would be useful
- If possible, suggest how it could be implemented
Code Contributions
Setup
# Fork the repository
git clone https://github.com/your-username/flux-cli.git
cd flux-cli
# Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
pip install -r requirements.txtDevelopment Workflow
- Create a branch:
git checkout -b feature/my-feature - Make your changes
- Test your changes
- Commit with a clear message
- Push to your fork
- Open a pull request
Code Style
- Follow PEP 8 guidelines
- Use type hints
- Write docstrings for public methods
- Keep functions focused and small
- Comment complex logic
Testing
Test your changes thoroughly:
# Run the application
python main.py
# Test specific functionality
python main.py "test prompt"
# Run the test tool
python scripts/test_tool.pyDocumentation Contributions
Documentation is crucial for this educational project. You can contribute:
- Fixing typos and errors
- Adding examples
- Improving explanations
- Translating to other languages
Pull Request Process
- Ensure your code follows the project's style
- Update documentation if needed
- Make sure the application runs without errors
- Describe your changes in the PR description
- Reference any related issues
Project Structure
Understanding the project structure helps with contributions:
flux/
├── main.py # CLI entry point
├── agent/ # Agent orchestration
├── client/ # LLM API client
├── config/ # Configuration
├── context/ # Context management
├── hooks/ # Lifecycle hooks
├── prompts/ # System prompts
├── safety/ # Safety & approval
├── tools/ # Tool system
├── ui/ # Terminal UI
└── utils/ # UtilitiesGetting Help
If you need help with contributions:
- Open a discussion on GitHub
- Read the Developer Guide
- Explore the Architecture documentation
- Read the source code — it's designed to be educational
This project was created as a learning initiative. Don't hesitate to ask questions or suggest improvements — that's how we all learn!