Contributing
We welcome all contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas.Getting Started
Here are some helpful links to get you started with contributing to Chroma- The Chroma codebase is hosted on Github
- Issues are tracked on Github Issues. Please report any issues you find there making sure to fill out the correct form for the type of issue you are reporting.
- In order to run Chroma locally you can follow the Development Instructions.
- If you want to contribute and aren’t sure where to get started you can search for issues with the Good first issue tag.
- The Chroma documentation (including this page!) is hosted on Github as well. If you find any issues with the documentation please report them on the Github Issues page for the documentation.
Contributing Code and Ideas
Feature Requests
Feature requests and proposals for large changes to Chroma should be submitted using GitHub Issues. If you want to suggest a new feature or a major change, please open an issue and select the relevant template. This allows the core Chroma team and the community to discuss and provide feedback directly in the issue. For smaller changes like bug fixes or documentation updates, you can submit an issue or open a pull request as usual. Once proposed, the issue will be reviewed by the Chroma team and its status will be tracked in GitHub. We use labels and issue states to indicate the progress of the proposal—for example, whether it is under review, accepted, being implemented, or closed. For more information, see our GitHub Issues page and contribution guidelines. You can join our Discord and chat with us in the #feature-ideas channel. We are always happy to discuss new ideas and features with the community.Pull Requests
In order to submit a change to Chroma please submit a Pull Request against Chroma or the documentation. The pull request will be reviewed by the Chroma team and if approved, will be merged into the repository. We will do our best to review pull requests in a timely manner but please be patient as we are a small team. We will work to integrate your proposed changes as quickly as possible if they align with the goals of the project. We ask that you label your pull request with a title prefix that indicates the type of change you are proposing. The following prefixes are used:Roadmap
You can track our progress on the Chroma project on the changelog. Chroma is built and maintained by a small core team, so we are intentional about where we invest engineering effort. Chroma has two deployment modes—distributed Chroma and single-node local Chroma—which currently rely on different storage subsystems. The database is and will always remain open-source (Apache 2.0), and our cloud offering simply runs the same open-source distributed system. Today, the majority of our engineering effort is focused on distributed Chroma and the cloud offering. As a result, local Chroma may temporarily lack some features or behaviors available in the distributed system. Restoring and maintaining 100% feature and API parity remains an active goal, and unifying the underlying storage systems is a key part of that work.Telemetry
Chroma contains a telemetry feature that collects anonymous usage information.Why?
We use this information to help us understand how Chroma is used, to help us prioritize work on new features and bug fixes, and to help us improve Chroma’s performance and stability.Opting out
If you prefer to opt out of telemetry, you can do this in two ways.In Client Code
- Python
- TypeScript
- Rust
Set
anonymized_telemetry to False in your client’s settings:In Chroma’s Backend Server Using Environment Variables
SetANONYMIZED_TELEMETRY to False in your shell or server environment.
If you are running Chroma on your local computer with docker-compose you can set this value in an .env file placed in the same directory as the docker-compose.yml file: