Database guides

Chroma

Updated 2026-08-11 · 2 min read

An open-source vector database for embeddings, reached over its REST v2 API.

Chroma is an open-source vector database — it stores embeddings and finds the nearest ones to a query vector. It is popular as the default store in retrieval-augmented generation stacks because it is easy to run locally. AddisDB connects over its REST v2 API.

Who it is for

Chroma suits building and debugging a semantic search or RAG pipeline, especially early on: it runs as a single container, needs no tuning, and stores documents alongside their embeddings and metadata. For very large collections, the dedicated engines (Milvus, Qdrant, Pinecone) scale further.

Set up the server

  1. Note the host and port — 8000 by default.
  2. For Chroma Cloud, note the tenant and an API key.
  3. Optionally note a database and collection to scope the connection to, written as database/collection.
docker run -p 8000:8000 chromadb/chroma
curl http://localhost:8000/api/v2/version

Connect from AddisDB

  1. New Connection → Chroma. Port prefills to 8000.
  2. Enter the host. Leave the password blank for a local server, or paste an API key for Chroma Cloud.
  3. Optionally set database/collection in the database field to pin one collection.
  4. Test, then Save.

What AddisDB gives you

Typing a collection name lists its records. Typing a JSON object runs it against the pinned collection — as a similarity search when it carries query_embeddings, and as a filtered read otherwise.

Chroma returns results as parallel arrays rather than as records. AddisDB zips them back into rows and lifts each metadata key into its own column, so metadata reads like ordinary columns instead of a JSON blob. Embeddings keep their array type, so the Vectors view recognises them.

The schema tree lists collections with record counts and columns inferred from sampled records — Chroma has no declared schema to read. Collections are addressed internally by UUID; AddisDB resolves names for you and caches the mapping.