First off, thanks for taking the time to contribute! 🎉
The following is a set of guidelines for contributing to mini-OpenCode. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
- Python 3.12 or higher
- uv package manager (highly recommended for dependency management)
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/your-username/mini-opencode.git cd mini-opencode - Install dependencies:
uv sync # Or using make make install
To run the mini-OpenCode CLI application:
uv run -m mini_opencode /path/to/project
# Or using python
python -m mini_opencode /path/to/projectTo start the LangGraph development server for visualization and debugging:
make dev
# or manually:
# uvx --refresh --from "langgraph-cli[inmem]" --with-editable . --python 3.12 langgraph dev --no-browser --allow-blockingWe strictly follow specific coding standards to maintain codebase quality. Please ensure your contributions adhere to these guidelines.
- Python 3.12+ is required.
- Use modern Python features and syntax.
- File naming:
snake_case(e.g.,coding_agent.py) - Class naming:
PascalCase(e.g.,ConsoleApp,TextEditor) - Function/Variable naming:
snake_case(e.g.,create_coding_agent,plugin_tools) - Constants:
UPPER_SNAKE_CASE(e.g.,TOOL_MAP)
- Mandatory for all function parameters and return values.
- Use
T | Nonefor nullable types instead ofOptional[T]. - Use built-in generics
list[T],dict[K, V]instead ofList,Dict.
- Use Google-style docstrings for all public modules, classes, and functions.
- Include
ArgsandReturnssections.
Follow this order:
- Standard library imports
- Third-party imports
- Local application imports (
mini_opencode)
- Create a Feature Branch:
git checkout -b feature/AmazingFeature
- Commit your Changes:
Follow Semantic Commits conventions.
git commit -m 'feat: Add some AmazingFeature' - Push to the Branch:
git push origin feature/AmazingFeature
- Open a Pull Request: Go to the original repository and open a Pull Request describing your changes.
By contributing, you agree that your contributions will be licensed under its MIT License.