chroma

Store and query document embeddings with metadata filtering for RAG applications.

Updated Aug 22, 2026
One-click install
npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill chroma-vivekgoquest
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: chroma
Source: https://github.com/vivekgoquest/hermes-agent-stable/tree/main/optional-skills/mlops/chroma
Command: npx skills add https://github.com/vivekgoquest/hermes-agent-stable --skill chroma-vivekgoquest

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Building retrieval-augmented generation and semantic search requires a vector database to store embeddings and run similarity queries, and setting one up from scratch is complex. This Skill provides ready-to-use patterns for Chroma, the open-source embedding database, covering everything from installation to production server mode. ## Core Features & Use Cases - Vector Storage & Similarity Search: Create collections, add documents with embeddings, and run top-k similarity queries with distance scores. - Metadata Filtering: Combine semantic search with structured filters using operators like $and, $or, $gt, and $in to narrow results. - Framework Integration: Connect Chroma to LangChain and LlamaIndex as a vector store or retriever for RAG pipelines. - Use Case: You are building a documentation chatbot. Use this Skill to split your docs, embed them into a persistent Chroma collection, and query the top 5 relevant chunks filtered by category before passing them to an LLM. ## Quick Start Use the chroma skill to create a persistent collection, add my documents with metadata, and run a filtered similarity search.

Frequently Asked Questions about chroma

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

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

Install chromadb, create a client and collection, then call collection.add with documents, metadatas, and ids. Run collection.query with query_texts and n_results to retrieve the most similar documents along with distances and metadata.

Chroma vs Pinecone vs FAISS for vector search?▼

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

Does Chroma support persistent storage across restarts?▼

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

Can I use Chroma with LangChain or LlamaIndex?▼

Yes, Chroma integrates with both frameworks. Use langchain_chroma.Chroma as a vector store or retriever in LangChain, or ChromaVectorStore with a StorageContext in LlamaIndex to build RAG query engines.

How do I filter Chroma query results by metadata?▼

Pass a where clause to collection.query using exact matches, comparison operators like $gt and $lte, or logical operators $and and $or. This narrows the semantic search space to documents matching your metadata conditions.

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 large scale, where Rust-based Qdrant is more appropriate.