ChromaDotNet

News

ChromaDotNet: open source .NET libraries for Chroma and Chroma Cloud

Federico Laurianti, 5 October 2026, updated 25 October 2026

Updated on 25 October 2026: the Microsoft.Extensions.VectorData provider is now in the AI Community Toolkit, and ChromaDotNet has new libraries.

Chroma is one of the most used open source vector databases for semantic search and RAG, where a language model gets the right documents to answer from. From Python it takes two lines.

For .NET, in February 2025 Microsoft introduced the community library ChromaDB.Client on the .NET Blog (archived copy, Chinese edition). That post is no longer on the English blog, and the library has stopped. It is still on the v1 API, which Chroma 1.x no longer serves.

ChromaDotNet picks up that work where it stopped and carries it on. The original code and its authors are in the history of the project.

What's inside

Try it in two minutes

Docker starts Chroma:

Shell
docker run -p 127.0.0.1:8000:8000 chromadb/chroma:1.5.9

Then, in a .NET console app:

Shell
dotnet add package ChromaDotNet.Client
C#
using ChromaDB.Client;

using var client = new ChromaClient("http://127.0.0.1:8000");
var collection = await client.GetOrCreateCollectionAsync("docs");
var docs = client.GetCollectionClient(collection);

await docs.AddAsync(["doc-1"],
    embeddings: [new([0.1f, 0.4f, 0.2f])],
    documents: ["Chroma from .NET"]);

var results = await docs.QueryAsync(
    new ReadOnlyMemory<float>([0.1f, 0.4f, 0.2f]), nResults: 1);

Console.WriteLine(results[0].Document);

The embeddings are written by hand to keep the example short. In a real project they come from a model, for example through Microsoft.Extensions.AI.

Why

More and more .NET applications have an AI part, and almost all of them need a vector store. Chroma starts locally in a container and scales on Chroma Cloud, but without an up-to-date client it was out of reach from .NET. Each library is tested in CI against real Chroma releases, and the provider runs the Microsoft.Extensions.VectorData conformance tests.

ChromaDotNet is a personal open source project of Federico Laurianti, MIT licensed. Independent project. Not affiliated with, endorsed by or sponsored by Chroma Inc. CHROMA is a registered trademark of Chroma Inc., used here only to describe compatibility. If you try it and something does not work, open an issue on GitHub.