chroma

Store embeddings and metadata in Chroma for vector search and RAG applications.

Updated Jun 5, 2026
One-click install
npx skills add https://github.com/xu1713/openhorse --skill chroma-xu1713
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: chroma
Source: https://github.com/xu1713/openhorse/tree/main/openhorse/openhorse/optional-skills/mlops/chroma
Command: npx skills add https://github.com/xu1713/openhorse --skill chroma-xu1713

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires chromadb, sentence-transformers, and includes references (resource) components.

What problem does it solve? Building semantic search or RAG applications requires a vector database to store embeddings and retrieve relevant documents, and setting one up from scratch involves complex infrastructure decisions. ## Core Features & Use Cases - Vector Storage & Search: Store documents with embeddings and metadata, then query by semantic similarity with metadata filtering using operators like $and, $or, $gt, and $in. - Flexible Embedding Functions: Use the default sentence-transformers model, OpenAI, HuggingFace, or custom embedding functions. - Framework Integration: Connect with LangChain and LlamaIndex for retrieval pipelines, and run in persistent, in-memory, or client-server mode. - Use Case: Build a documentation Q&A bot by chunking your docs, adding them to a persistent Chroma collection with source metadata, and querying the top-k most relevant chunks to feed into an LLM prompt. ## Quick Start Install chromadb with pip, then ask the AI to create a persistent Chroma collection, add your documents with metadata, and run a filtered similarity query.

Frequently Asked Questions about chroma

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I store and search embeddings with Chroma in Python?

Install chromadb, create a client and collection, then call collection.add with documents, metadatas, and ids. Query with collection.query using query_texts and n_results to retrieve the most similar documents by embedding distance.

Chroma vs Pinecone vs FAISS for vector search?

Chroma is open-source and self-hosted with metadata filtering, suited for local development and RAG prototypes. Pinecone is a managed cloud service with auto-scaling, while FAISS provides pure similarity search without metadata storage.

How do I filter Chroma query results by metadata?

Pass a where clause to collection.query, such as where={"category": "tutorial"} for exact matches. Chroma supports comparison operators like $gt, $gte, $lt, $lte, $ne, and logical operators $and and $or for combined conditions.

Does Chroma persist data between sessions?

Yes, use chromadb.PersistentClient with a path argument to save collections to disk. Data is written automatically and can be reloaded later by connecting to the same directory path.

Can I use Chroma with LangChain or LlamaIndex?

Yes, LangChain provides the Chroma vector store via langchain_chroma for similarity search and retrievers. LlamaIndex integrates through ChromaVectorStore, which wraps a Chroma collection inside a StorageContext for indexing.

When should I not use Chroma for a vector database?

Avoid Chroma when you need managed auto-scaling cloud infrastructure, where Pinecone fits better, or when you need maximum query performance at very large scale, where Rust-based Qdrant may be preferable.