Chroma
The open-source embedding database — store embeddings with metadata and search by similarity, from a single pip install.
About
Chroma is an open-source (Apache-2.0) AI-native database for embeddings and retrieval: store documents with metadata, auto-embed with OpenAI/Cohere/Hugging Face/sentence-transformers, and query with dense, sparse, and hybrid vector search, full-text and regex search, and metadata filtering. It also supports multi-modal retrieval over text, images, and audio.
The Python client offers an in-memory mode for prototyping and a persistent mode or client-server deployment for real workloads; there are TypeScript and Rust clients too, plus a managed Chroma Cloud option. Backed by Quiet Capital ($18M seed, 2023, per SiliconANGLE).
What it can do
- • Auto-embedding with first-class embedding functions for OpenAI, Cohere, Hugging Face, and sentence-transformers
- • Dense, sparse, and hybrid vector search plus full-text and regex keyword search — no embeddings required
- • Metadata filtering at query time and multi-modal retrieval (text, images, audio)
- • In-memory, persistent, and client-server deployment modes plus managed Chroma Cloud
- • Python, TypeScript, and Rust clients; Discord community and active maintenance
- • Official MCP server (chroma-core/chroma-mcp) for agent-driven retrieval
Setup
- Install the client:
pip install chromadb(verified in the repo README). - Start with the in-memory client for prototyping:
```python
import chromadb
client = chromadb.Client()
collection = client.create_collection(name="my_collection")
collection.add(documents=["Paris is the capital of France."], ids=["doc1"])
results = collection.query(query_texts=["What is the capital of France?"], n_results=2)
```
- For anything persistent, switch to
chromadb.PersistentClient(path="/data")or run Chroma in client-server mode — in-memory data is lost when the program exits (verified in the docs). - Bring your own embedding function for a specific provider, or let Chroma's default handle it.
- Disable the default-on anonymous telemetry via the opt-out documented in the Chroma telemetry docs if it matters for your deployment.
Prerequisites
Python 3.x (Node.js for the TS client). No server needed for in-memory/persistent modes; Docker or a host for client-server mode.
Use cases
Works with
Trust score — 9/10
Scored 9/10 (verified tier, metrics-v1). Evidence: 29,485 GitHub stars (log-scaled vs catalog peers); blended with ~6,525,454 monthly package downloads; last push 1d ago; 30 releases/12mo; 930 open issues. Manual review: anonymized PostHog telemetry on by default (verified in config.py); Chroma Cloud scaling claims provider-only. License: Apache-2.0.
★ 29,485 GitHub stars
How the trust score is built
Full methodology →- Adoption · stars/downloads, log-scaled vs peers
- 8.8/10
- Maintenance · recency, releases, issue load
- 8.7/10
- Openness · license + docs
- 10.0/10
- Manual review · sanity read + red-flag check
- 8.0/10
- · 29,485 GitHub stars (log-scaled vs catalog peers)
- · blended with ~6,525,454 monthly package downloads
- · last push 1d ago; 30 releases/12mo; 930 open issues
- · manual review: anonymized PostHog telemetry on by default (verified in config.py); Chroma Cloud scaling claims provider-only
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.