Chroma

RAG & Memory 💻 Rust ⚖️ Apache-2.0 🟢 Actively maintained
29.2k stars

Chroma is an open-source data infrastructure for AI, providing a simple API for storing, retrieving, and searching embeddings and documents. It solves the problem of managing vector data for AI applications, making it easy to build with embeddings. It is for developers who need a fast, scalable, and easy-to-use vector database.

✨ Key features

  • Core API with only 4 functions: create, add, query, get.
  • Automatic tokenization, embedding, and indexing of documents.
  • Support for metadata filtering and document search.
  • Client-server mode for scalable deployments.
  • Available for Python and JavaScript (npm).
  • Hosted cloud service with free credits.

🎯 Use cases

  • Build semantic search applications.
  • Create recommendation systems based on embeddings.
  • Manage document retrieval for RAG (Retrieval-Augmented Generation).
  • Prototype AI features with in-memory storage.

📦 Installation

🧰 Requirements: Python or Node.js environment; no API keys required for local use.

pip install chromadb # python client
# for javascript, npm install chromadb!
# for client-server mode, chroma run --path /chroma_db_path

🚀 Usage

import chromadb
client = chromadb.Client()
collection = client.create_collection("all-my-documents")
collection.add(
    documents=["This is document1", "This is document2"],
    metadatas=[{"source": "notion"}, {"source": "google-docs"}],
    ids=["doc1", "doc2"],
)
results = collection.query(
    query_texts=["This is a query document"],
    n_results=2,
)

⚠️ Good to know

Chroma is a rapidly developing project; release cadence is weekly on Mondays, with hotfixes as needed.

❓ FAQ

How do I install Chroma?

You can install the Python client with pip install chromadb, or the JavaScript client with npm install chromadb.

What is the core API?

The core API consists of four functions: create_collection, add, query, and get (or get_or_create_collection, delete_collection).

Can I use Chroma in client-server mode?

Yes, you can run Chroma in client-server mode using the command chroma run --path /chroma_db_path.

Does Chroma handle embeddings automatically?

Yes, when you add documents, Chroma handles tokenization, embedding, and indexing automatically. You can also provide your own embeddings.

📊 Repository

Stars★ 29,230
Forks🍴 2,482
Open issues🐛 826
Last commit🕒 Sep 3, 2026
Created📅 Oct 2022
Language💻 Rust
License⚖️ Apache-2.0

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.