Git Repository Guide

Chroma

Chroma

Data Self-hostable Apache-2.0

When to use this

Use this when you need a vector database that is dead simple to set up for prototyping RAG apps. No infrastructure needed — runs in-memory or on disk. Upgrade to hosted when you're ready to scale.

YouTube Tutorials

Click any card to watch on YouTube

What is Chroma?

Chroma is an open-source vector database designed to make it easy to build LLM applications that use embeddings. It stores your text (or images), converts them to vectors, and lets you query by semantic similarity.

Why Vectors?

Traditional databases search by exact match or keyword. Vector databases search by meaning. If you search for "dog", a vector search also returns results about "puppy", "canine", or "pet" because they're semantically close.

Key Features

  • Simple APIadd(), query(), delete(). No configuration overhead.
  • In-memory or persistent — Start in-memory for prototypes; switch to disk with one line change.
  • Client/Server mode — Run as a standalone server for shared access.
  • Auto-embedding — Pass raw text; Chroma handles embedding with a built-in model.
  • Metadata filtering — Filter by metadata alongside vector search.

Quick Start

import chromadb

client = chromadb.Client()  # in-memory
collection = client.create_collection("my_docs")
collection.add(documents=["My doc text"], ids=["doc1"])
results = collection.query(query_texts=["related query"], n_results=2)

Integrations

First-class integrations with LangChain, LlamaIndex, and OpenAI. For production scale, consider Qdrant or Weaviate — Chroma's strength is simplicity, not raw performance.