Skip to content
← Tools / Skills
ToolChroma/10 trustVerified
Chroma logo

Chroma

The open-source embedding database — store embeddings with metadata and search by similarity, from a single pip install.

Visit official site →

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

  1. Install the client: pip install chromadb (verified in the repo README).
  2. 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)

```

  1. 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).
  2. Bring your own embedding function for a specific provider, or let Chroma's default handle it.
  3. 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

embeddingssearchmemorydatavisionaudio

Works with

mcpGeneric APIAny agent (.md)

Trust score — 9/10

/10 trustVerified

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.