We welcome contributions of all kinds! Whether you are fixing bugs, improving documentation, or adding new backend plugins, your help is appreciated.
- Fork the repository on GitHub.
- Clone your fork locally.
- Install dependencies:
# Rust cargo build # Python cd skills && pip install -e ".[dev]"
- Create a branch for your feature or fix:
git checkout -b feat/my-cool-feature.
The core logic resides in crates/. Always run tests before submitting:
cargo test --workspaceEnsure your code is formatted with cargo fmt and follows clippy suggestions.
Inference backends and the worker loop are in skills/.
pytest skills/tests/Chameleon is designed to be pluggable. If you want to add support for a new runtime (e.g., ExLlamaV2, MLC), add a new file in skills/chameleon_skills/backends/ and implement the BaseBackend interface.
- Ensure all tests pass.
- Update the
README.mdor API documentation if your change affects the public interface. - Fill out the PR template with a clear description of the "why" and "how".
- One of the maintainers will review your PR and provide feedback.
We follow the conventional commits specification:
feat: A new featurefix: A bug fixdocs: Documentation changeschore: Maintenance tasksrefactor: Code changes that neither fix a bug nor add a feature
Chameleon has no fixed identity. Neither does great software.