chroma

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

Updated May 3, 2026
One-click install
npx skills add https://github.com/80portisfound/vibe-learning --skill chroma-80portisfound
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: chroma
Source: https://github.com/80portisfound/vibe-learning/tree/main/packages/hermes/optional-skills/mlops/chroma
Command: npx skills add https://github.com/80portisfound/vibe-learning --skill chroma-80portisfound

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 embeddings, HuggingFace models, or custom embedding functions. - Framework Integration: Connect with LangChain and LlamaIndex for retrieval pipelines, and run in persistent, in-memory, or client-server modes. - Use Case: Build a RAG chatbot by chunking documents, adding them to a persistent Chroma collection with source metadata, and querying the top-k relevant chunks to augment LLM prompts. ## Quick Start Create a persistent Chroma collection, add my documents with metadata, and run a filtered similarity search over them.

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?▼

Create a client with chromadb.Client() or PersistentClient, create a collection, add documents with ids and metadata, then call collection.query with query_texts and n_results. Chroma generates embeddings automatically using the default sentence-transformers model.

Chroma vs Pinecone vs FAISS for vector search?▼

Chroma is open-source and runs locally with metadata filtering, making it suited for development and self-hosted projects. Pinecone is a managed cloud service with auto-scaling, while FAISS provides pure similarity search without metadata storage.

Does Chroma support metadata filtering in queries?▼

Yes, Chroma supports metadata filtering via the where parameter in query and get calls. It supports exact matches, comparison operators like $gt, $gte, $lt, $lte, $ne, logical operators $and and $or, and $in for list membership.

Can I use Chroma with LangChain or LlamaIndex?▼

Yes, Chroma integrates with both frameworks. Use langchain_chroma.Chroma to create a vector store and retriever in LangChain, or ChromaVectorStore in LlamaIndex backed by a persistent Chroma collection.

How do I persist Chroma data between sessions?▼

Use chromadb.PersistentClient with a path argument such as ./chroma_db instead of the default in-memory client. Data is saved automatically and can be reloaded later by connecting with the same path.

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 only raw similarity search without metadata, where FAISS is lighter. High-performance production clusters may favor Qdrant or Weaviate.