Skip to main content
PromptQuorum
Home/Power Local LLM/Chroma Review: Open-Source Vector Database for AI and RAG
RAG & Document Chat

Chroma Review: Open-Source Vector Database for AI and RAG

Β·10 min readΒ·By Hans Kuepper Β· Founder of PromptQuorum, multi-model AI dispatch tool Β· PromptQuorum

Chroma is a free, open-source (Apache-2.0) embedding database β€” a vector database built specifically for AI applications such as retrieval-augmented generation and semantic search. It is installed with pip install chromadb (Python) or npm install chromadb (JavaScript), runs entirely on your own infrastructure in ephemeral, persistent-local, or client-server mode, and by default handles document tokenization, embedding, and indexing for you. Chroma Cloud is a separate, optional managed offering for teams that do not want to self-host.

Chroma (trychroma.com, source at github.com/chroma-core/chroma) is a free, open-source (Apache-2.0) embedding database β€” a vector database purpose-built for AI applications like retrieval-augmented generation (RAG) and semantic search. This review covers the chroma-core/chroma project specifically, not the unrelated design/color tool that shares the same name. Chroma has over 29,300 GitHub stars, can be run entirely on your own infrastructure, and is commonly paired with frameworks like LangChain and LlamaIndex. This review covers what Chroma actually does, how to install and use it, how it compares to Qdrant, and who it fits.

Key Takeaways

  • Chroma (trychroma.com) is a free, open-source embedding database purpose-built for AI applications, not a general-purpose database repurposed for vectors
  • Apache-2.0 licensed, confirmed via the GitHub repository
  • Over 29,300 GitHub stars as of this review (verified 2026-09-18)
  • Locality: fully self-hostable β€” the open-source database runs entirely on your own infrastructure; Chroma Cloud is a separate, optional managed offering
  • Core API is four functions: create_collection, add, query, and delete
  • Three deployment modes: in-memory/ephemeral (prototyping), persistent local storage, and client-server architecture
  • Commonly used as the vector-store backend inside LangChain and LlamaIndex RAG pipelines, paired with local embedding models via Ollama or cloud embedding APIs

πŸ“ In One Sentence

Chroma is a free, open-source (Apache-2.0) vector/embedding database, the chroma-core/chroma project (not the unrelated design tool of the same name), built specifically for AI applications like RAG and semantic search, and it can be self-hosted in-memory, on local disk, or as a client-server deployment.

πŸ’¬ In Plain Terms

Instead of building your own storage layer for the numerical "embeddings" that represent your documents, Chroma stores them for you and lets you search by meaning instead of exact keywords. It handles the tokenizing and embedding step automatically if you feed it raw text, runs on your own machine or server via pip install chromadb, and is free.

πŸ“ŒNote: This review is the deep-dive companion to Chroma's entry in the Local LLM Software Directory β€” see that page for how Chroma compares at a glance to dozens of other local and self-hosted AI tools.

What Is Chroma?

Chroma is an open-source embedding database that stores, indexes, and searches the vector representations of your text, images, or other data, so AI applications can retrieve information by semantic similarity instead of exact keyword matching. Its own GitHub description and site tagline position it as "open-source search infrastructure for AI" and "the open-source data infrastructure for AI," built around a small, deliberately simple core API.

  • Product type: a self-hosted vector/embedding database, distributed as a Python and JavaScript library plus an optional server binary β€” not a standalone downloadable GUI app
  • Repository: github.com/chroma-core/chroma
  • License: Apache-2.0, confirmed via the repository's license classifier on PyPI
  • Locality: fully self-hostable β€” Chroma's open-source database runs entirely on your own infrastructure in every deployment mode; Chroma Cloud is a separate, optional managed/serverless offering for teams that do not want to run it themselves
  • Scale: over 29,300 GitHub stars, and Chroma's own site cites more than 15 million monthly downloads of the chromadb package and usage in 90,000-plus open-source codebases β€” figures that reflect the package's broad download footprint rather than necessarily a count of unique production deployments
  • Named users referenced on Chroma's own site include Capital One, Mintlify, UnitedHealthcare, Conduit, Propel, Cofounder, Weights & Biases, and Medwise

Chroma's Project History

Chroma is developed as an open-source project under the chroma-core organization on GitHub, with Chroma Cloud later introduced as a separate managed offering built on top of the same database. This review verified the current GitHub star count, license, and package details directly from Chroma's own repository and package registries, but could not verify a specific founder or company name from a primary, dated source during research β€” so this review does not state one. If you need that detail, check Chroma's own site and press coverage directly rather than relying on a secondary source.

  • Chroma's core API was built around a deliberately small surface: create_collection, add, query, and delete, aimed at making it fast to get a working retrieval pipeline running
  • The project has grown to over 29,300 GitHub stars and, per Chroma's own site, more than 15 million monthly downloads of the chromadb package as of this review
  • Chroma Cloud, a separate managed/serverless offering, was introduced as an optional path for teams that want the same database without self-hosting it β€” Chroma's site references features like SOC 2 Type II compliance, automatic data tiering, and Bring Your Own Cloud (BYOC) for enterprise on that managed tier
  • The latest chromadb release on PyPI at the time of this review is version 1.5.9, published 2026-05-05

What Can You Do With Chroma?

Chroma's feature set centers on storing and querying embeddings for AI applications, per Chroma's own GitHub README and documentation.

  • Simple core API β€” four functions cover the core workflow: create_collection to define a collection, add to insert documents, query to search by similarity, and delete to remove entries
  • Automatic embedding handling β€” if you feed Chroma raw text without bringing your own embeddings, it tokenizes, embeds, and indexes the documents for you using a default embedding function
  • Metadata filtering β€” you can attach metadata to documents when adding them and filter query results by that metadata alongside semantic similarity
  • Three deployment modes β€” in-memory/ephemeral for quick prototyping, persistent local storage so data survives process restarts, and a client-server architecture for shared, multi-process access
  • Language SDKs β€” official Python (chromadb on PyPI) and JavaScript/TypeScript (chromadb on npm) clients
  • Framework integrations β€” Chroma is commonly used as the vector-store backend inside LangChain and LlamaIndex RAG pipelines, paired with local embedding models (for example via Ollama) or a cloud embedding API
  • Chroma Cloud (separate offering) β€” a managed, serverless tier that Chroma's own site describes as supporting vector, full-text, regex, and metadata search, plus sparse vector search (BM25, SPLADE), automatic data tiering, SOC 2 Type II compliance, and Bring Your Own Cloud (BYOC) for enterprise; verify current feature availability directly on trychroma.com, since these are managed-tier features and not all of them are necessarily present in the self-hosted open-source database

Usage Examples: Three Ways to Use Chroma

These are concrete workflows built from Chroma's documented API, run after pip install chromadb.

  • Create an in-memory client and add and query documents: chromadb.Client() creates an ephemeral client, create_collection() defines a named collection, add() inserts documents with optional metadata and IDs, and query() searches by semantic similarity β€” Chroma tokenizes and embeds the text automatically if you do not pass your own embeddings
  • Use a persistent local client so data survives restarts: Chroma's documented API includes a persistent-client mode (commonly chromadb.PersistentClient(path=...) in current releases) that writes data to local disk instead of holding it only in memory β€” verify the exact current constructor and arguments against docs.trychroma.com before shipping code that depends on it, since client APIs can change between releases
  • Pair Chroma with LangChain as a vector store in a RAG pipeline: the typical workflow is to load and split your documents, embed them with a LangChain-compatible embedding model (local via Ollama or a cloud provider), store the vectors in a Chroma collection through LangChain's Chroma vector-store integration, and then query that store as the retriever step in a retrieval chain β€” check LangChain's current documentation for the exact integration package and import path, since LangChain's Chroma integration has moved between packages over time
python
import chromadb

client = chromadb.Client()
collection = client.create_collection(name="my_collection")

collection.add(
    documents=["This is document1"],
    metadatas=[{"source": "notion"}],
    ids=["doc1"],
)

results = collection.query(
    query_texts=["This is a query document"],
    n_results=2,
)

Chroma Pricing: Is Chroma Really Free?

The open-source Chroma database is free and Apache-2.0 licensed β€” there is no paid tier gating any feature of the self-hosted database itself. Chroma Cloud is a separate, optional managed offering for teams that want a serverless, hosted version without running the database themselves; as of this review, trychroma.com references starting free on Chroma Cloud with an initial free-credit allowance, but check trychroma.com directly for current terms rather than assuming a specific figure, since managed-tier offers change more often than open-source license terms.

  • Open-source database: free, Apache-2.0, no usage limits imposed by Chroma itself
  • Your own costs are limited to your own infrastructure (compute and storage) plus whatever embedding provider you use, if you choose a paid cloud embedding API instead of a local model
  • Chroma Cloud: a separate, optional managed/serverless offering; as of this review the site references an initial free-credit allowance for new accounts, but verify current pricing and credit terms directly on trychroma.com before budgeting around a specific figure
  • No account or sign-up is required to install and use the open-source database

Chroma vs. Qdrant

Chroma and Qdrant are both open-source, self-hostable vector databases that developers commonly evaluate against each other for RAG and semantic-search backends, but they differ in implementation language, deployment options, and how far their filtering capabilities go. Chroma is written primarily in Python with a deliberately small core API and is often chosen for how quickly it gets a prototype running. Qdrant is written in Rust, is built around more extensive filtering capabilities (keyword matching, full-text search, numeric ranges, and geo-location conditions combined with logical operators over JSON payloads), and adds a lightweight "Qdrant Edge" mode for running inside applications on edge devices, alongside its own managed Qdrant Cloud offering.

Written in

Chroma:
Python (with a Rust-backed core in newer releases)
Qdrant:
Rust

Core API philosophy

Chroma:
Deliberately small: create_collection, add, query, delete
Qdrant:
Broader API with extensive payload filtering (full-text, numeric range, geo)

Deployment modes

Chroma:
In-memory/ephemeral, persistent local storage, client-server
Qdrant:
Docker client-server, lightweight embedded "Edge" mode, managed Qdrant Cloud

GitHub stars (verified for this review)

Chroma:
Over 29,300 (verified 2026-09-18)
Qdrant:
Over 34,700 (verified 2026-09-18)

License

Chroma:
Apache-2.0
Qdrant:
Apache-2.0

Best fit

Chroma:
Fast prototyping and Python-first RAG pipelines with a minimal API surface
Qdrant:
Workloads that need rich, structured metadata filtering alongside vector search, or an edge-deployable footprint

Both projects ship updates frequently and both offer a separate managed cloud tier alongside their open-source database β€” verify current feature parity and pricing on each project's own site before choosing, rather than relying on a point-in-time comparison.

Who Should Use Chroma?

Whether Chroma fits depends on whether you need a dedicated, self-hostable vector database with a minimal API, rather than a broader memory/knowledge-graph layer or a filtering-heavy database.

Competitors and Alternatives

Chroma sits in the vector-database and retrieval-infrastructure layer, alongside embedded vector stores and broader RAG/data frameworks that developers commonly evaluate together. These are not identical products β€” some are narrower embedded databases, others are broader indexing or orchestration frameworks β€” but they compete for the same "where do I store and query my embeddings" decision.

txtai

Best known for:
Lightweight embedded vector database and semantic search library
Articles about txtai (1)

Also mentioned in:

LangChain

Best known for:
General-purpose LLM application framework with a large ecosystem of retrieval and agent integrations
Articles about LangChain (10)

+29 more not shown

Haystack (deepset)

Best known for:
Open-source RAG and search pipeline framework from deepset

This is not an exhaustive list of vector databases and retrieval tools β€” see the Local LLM Software Directory for the full, regularly updated catalog, including Chroma's own directory entry.

Common Mistakes When Evaluating Chroma

Most confusion about Chroma comes from confusing it with the unrelated design tool of the same name, assuming Chroma Cloud features apply to the open-source database, or losing data by using the wrong client mode.

Frequently Asked Questions

What is Chroma?

Chroma (trychroma.com, source at github.com/chroma-core/chroma) is a free, open-source (Apache-2.0) embedding database β€” a vector database built for AI applications like retrieval-augmented generation and semantic search. This is the chroma-core/chroma project, not the unrelated design/color tool of the same name.

Is Chroma free?

Yes, the open-source Chroma database is free and Apache-2.0 licensed, with no paid tier gating any feature of the self-hosted database. Chroma Cloud is a separate, optional managed offering with its own, separately priced tier β€” check trychroma.com for current pricing.

How do I install Chroma?

Run pip install chromadb for Python, or npm install chromadb for JavaScript/TypeScript. No API key or account is required for the self-hosted, open-source database.

Does Chroma run fully offline and self-hosted?

Yes. The open-source Chroma database runs entirely on your own infrastructure in every deployment mode β€” in-memory, persistent local storage, or client-server. Chroma Cloud is a separate, optional managed offering for teams that would rather not self-host.

What are Chroma's deployment modes?

Three: an in-memory/ephemeral mode for quick prototyping (data is lost on exit), persistent local storage so data survives restarts, and a client-server architecture for shared, multi-process access.

What is the core Chroma API?

Four functions cover the core workflow: create_collection to define a collection, add to insert documents (with optional metadata and IDs), query to search by semantic similarity, and delete to remove entries.

Does Chroma handle embeddings automatically?

Yes, by default. If you add raw text without supplying your own embeddings, Chroma tokenizes, embeds, and indexes the documents for you using a default embedding function; you can also bring your own embeddings and embedding model if you prefer.

How is Chroma different from Qdrant?

Chroma is written primarily in Python with a deliberately small core API and is often picked for fast prototyping. Qdrant is written in Rust and built around more extensive metadata filtering (numeric ranges, geo-location, full-text, logical conditions). Both are Apache-2.0 licensed, self-hostable, and also offer a separate managed cloud tier β€” see the full comparison above.

What license does Chroma use?

Apache-2.0, confirmed via the package classifier on PyPI and the GitHub repository.

What frameworks does Chroma integrate with?

Chroma is commonly used as the vector-store backend inside LangChain and LlamaIndex RAG pipelines, paired with either a local embedding model (for example via Ollama) or a cloud embedding API.

Is Chroma the same as the design/color tool called Chroma?

No. This review covers chroma-core/chroma, the open-source AI vector database at trychroma.com and github.com/chroma-core/chroma. There is a separate, unrelated product that also uses the name "Chroma" in the design/color-tool space β€” verify you have the right project before installing.

What is Chroma Cloud?

Chroma Cloud is a separate, optional managed/serverless offering built on top of the same database, for teams that do not want to self-host. Chroma's own site references features like SOC 2 Type II compliance and Bring Your Own Cloud (BYOC) on that tier β€” verify current features and pricing directly on trychroma.com.

Sources

← Back to Power Local LLM