Skip to main content

Chroma

Open-source embedding database for LLM apps — start in 3 lines of Python

Vector DBs & EmbeddingsFreeOpen source

Chroma is the simplest open-source vector database for AI applications. It runs in-process in Python or as a separate server, stores and retrieves embeddings with minimal setup, and integrates natively with LangChain and LlamaIndex. The go-to choice for RAG prototyping and small-to-medium production deployments.

Key specs
29,675 GitHub stars source
as of 2026-11-12

Maker of Chroma? Get your db.fyi badge

What we know

PricingFreefrom our original listing, not yet re-checked

Why it matters

  • The fastest way to add vector search to a Python app — literally 3 lines of code to store and query embeddings.
  • Runs in-process (no server needed) or as a lightweight HTTP server — ideal for prototyping and small production apps.
  • First-class LangChain and LlamaIndex integration makes it the default vector store in most RAG tutorials.
  • Open source under Apache 2.0 — no license fees, no vendor lock-in, no usage caps.

Key capabilities

  • In-process mode: Run entirely within your Python process with no separate server — just import chromadb.
  • Persistent storage: Save collections to disk with PersistentClient — survives restarts without a database server.
  • Client-server mode: Run Chroma as an HTTP server and connect from multiple processes or languages.
  • Automatic embedding: Pass raw text and Chroma embeds it automatically using sentence-transformers or your chosen model.
  • Metadata filtering: Filter by structured metadata fields alongside vector similarity in a single query.
  • Multi-modal support: Store and query text, image, and audio embeddings in the same collection.
  • LangChain integration: from langchain_chroma import Chroma — drop-in vector store.
  • LlamaIndex integration: ChromaVectorStore available in llama-index-vector-stores-chroma.

Technical notes

  • Language: Python (primary); JavaScript/TypeScript client available
  • Storage backends: In-memory (ephemeral), persistent disk (SQLite + HNSW index), or HTTP server mode
  • Embedding functions: sentence-transformers (default), OpenAI, Cohere, HuggingFace, Google, Ollama
  • Indexing algorithm: HNSW (Hierarchical Navigable Small World) for approximate nearest neighbor search
  • License: Apache 2.0 — open source
  • Chroma Cloud: Managed hosted version in development; self-hosted is the primary deployment today
  • Founded: 2022 by Jeff Huber and Anton Troynikov; backed by a16z

Ideal for

  • Developers prototyping RAG applications who want the fastest setup without a separate database process.
  • Privacy-sensitive applications where embeddings must stay local and never touch a third-party service.
  • Small-to-medium production apps (up to millions of vectors) where simplicity is more valuable than horizontal scale.

Not ideal for

  • Very large-scale deployments (100M+ vectors) — dedicated vector databases like Pinecone or Milvus scale better.
  • Production apps needing managed infrastructure, SLAs, and enterprise support — consider Pinecone or Qdrant Cloud.
  • Non-Python applications requiring a native SDK — the JavaScript client is less mature.

See also

  • Pinecone — Fully managed vector database for production scale with enterprise SLAs.
  • Qdrant — Open-source vector database in Rust with rich filtering and cloud hosting.
  • LangChain — LLM framework that integrates Chroma as a vector store component.

FAQ

What is Chroma?

Chroma is an open-source vector database (embedding store) designed specifically for LLM applications. You install it with pip, create a collection, add documents with embeddings, and query by similarity. It can run in-memory, persist to disk, or run as a client-server. It's the fastest way to add vector search to a Python app.

Is Chroma free?

Chroma is fully open source under Apache 2.0 — completely free to use, self-host, and modify. Chroma Cloud (managed hosted version) is in development. The self-hosted version has no usage limits.

How does Chroma differ from Pinecone?

Chroma is open source and runs locally — perfect for development and privacy-sensitive apps. Pinecone is a managed SaaS that scales to billions of vectors with enterprise SLAs. Chroma wins on simplicity, cost, and local development; Pinecone wins on scale, reliability, and zero-ops production deployment.

Can I use Chroma with LangChain or LlamaIndex?

Yes. Chroma is one of the most popular vector stores in both LangChain and LlamaIndex. Import `Chroma` from `langchain_chroma` or `ChromaVectorStore` from `llama_index.vector_stores.chroma` for a few-line integration.

Alternatives

Integrations

None listed.

Built on

None listed.

Good for these tasks

Listed 2026-02-28 · updated 2026-08-15