[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-chroma-chroma-local":3,"mdc--tp5eqc-key":37,"related-repo-chroma-chroma-local":1390,"related-org-chroma-chroma-local":1411},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"chroma-local","manage local Chroma semantic search","Use when the user needs self-hosted or local Chroma for semantic search, including `ChromaClient`, `HttpClient`, or Python `EphemeralClient`, local persistence, Docker or `chroma run`, or OSS Chroma without Chroma Cloud features.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"chroma","Chroma","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fchroma.png","chroma-core",[13,17,20,23],{"name":14,"slug":15,"type":16},"Database","database","tag",{"name":18,"slug":19,"type":16},"Python","python",{"name":21,"slug":22,"type":16},"Search","search",{"name":24,"slug":25,"type":16},"Docker","docker",21,"https:\u002F\u002Fgithub.com\u002Fchroma-core\u002Fagent-skills","2026-07-12T08:06:51.190347",null,4,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Agent skills for working with Chroma","https:\u002F\u002Fgithub.com\u002Fchroma-core\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fsrc\u002Fchroma-local","---\nname: chroma-local\ndescription: Use when the user needs self-hosted or local Chroma for semantic search, including `ChromaClient`, `HttpClient`, or Python `EphemeralClient`, local persistence, Docker or `chroma run`, or OSS Chroma without Chroma Cloud features.\n---\n\n## Instructions\n\nDetermine these before writing code. Prefer discovering them from the repo and the user request. Ask only when the choice materially changes the implementation.\n\n1. **Runtime shape**\n   - Are they connecting to a running local server, embedding Chroma into tests, or setting up local development from scratch?\n   - Decide whether they need `chroma run`, a Docker or service command, `HttpClient` or `ChromaClient`, or Python `EphemeralClient`.\n\n2. **Persistence**\n   - Persistent local data: choose an intentional data path.\n   - Disposable test data: use defaults or a temp directory.\n\n3. **Embedding model**\n   - Reuse the app's existing embedding provider when possible.\n   - Otherwise default to `@chroma-core\u002Fdefault-embed` in TypeScript or the standard local default in Python.\n   - If the user explicitly wants OpenAI embeddings in TypeScript, install and use `@chroma-core\u002Fopenai`.\n\n4. **Indexed data shape**\n   - Determine what is being indexed, how it should be chunked, and what metadata is needed for filtering and updates.\n\n## Routing\n\n- **Existing local server**\n  - Confirm host and port before changing client code.\n  - Validate the server is reachable before assuming collections are missing.\n\n- **Fresh local development**\n  - Add a local startup path such as `chroma run` or the repo's existing Docker or service command.\n  - Default to `localhost:8000` unless the repo already uses another address.\n\n- **Python tests or disposable local workflows**\n  - Prefer `EphemeralClient` when persistence is unnecessary.\n  - Call out that data is lost when the process exits.\n\n- **Persistent local development**\n  - Use a stable data path and make persistence explicit in code or config.\n  - Do not silently switch between ephemeral and persistent modes.\n\n- **Search integration work**\n  - Use `getOrCreateCollection()` in TypeScript or `get_or_create_collection()` in Python.\n  - Design document IDs and metadata so upserts and deletes are straightforward.\n  - Batch writes when syncing large datasets.\n\n## Ask vs proceed\n\n**Ask first:**\n- Embedding model choice (cost and quality implications)\n- Whether they need persistent local data\n- How they are starting the local server\n- Multi-tenant data isolation strategy\n\n**Proceed with sensible defaults:**\n- Use `getOrCreateCollection()` (TypeScript) \u002F `get_or_create_collection()` (Python)\n- Use cosine similarity (most common)\n- Chunk size under 8KB\n- Store source IDs in metadata for updates\u002Fdeletes\n- Use a local server on `localhost:8000` unless the repo already configures another address or is using Python `EphemeralClient`\n\n## What to validate\n\n- Correct client import (`ChromaClient`, `HttpClient`, or `Client`)\n- Embedding function package is installed (TypeScript)\n- Local server is reachable before assuming collections are missing\n- Local path and persistence mode are intentional\n\n## Implementation notes\n\n- Local Chroma is the right default for development, tests, and self-hosted deployments.\n- OSS Chroma does not include Chroma Cloud-only features such as `Schema()` and `Search()`.\n- If the user asks for hybrid dense and sparse retrieval, treat that as a likely Chroma Cloud requirement unless the repo already implements an OSS workaround.\n- For open source Chroma, dense retrieval with a single embedding function is the normal baseline.\n\n## Minimal patterns\n\nStart a local Chroma server when the repo needs one:\n\n```bash\nchroma run\n```\n\nDefault address: `localhost:8000`.\n\nTypeScript local client:\n\n```typescript\nimport { ChromaClient } from 'chromadb';\nimport { DefaultEmbeddingFunction } from '@chroma-core\u002Fdefault-embed';\n\nconst client = new ChromaClient();\n\nconst embeddingFunction = new DefaultEmbeddingFunction();\nconst collection = await client.getOrCreateCollection({\n  name: 'my_collection',\n  embeddingFunction,\n});\n\n\u002F\u002F Add documents\nawait collection.add({\n  ids: ['doc1', 'doc2'],\n  documents: ['First document text', 'Second document text'],\n});\n\n\u002F\u002F Query\nconst results = await collection.query({\n  queryTexts: ['search query'],\n  nResults: 5,\n});\n```\n\nPython local client:\n\n```python\nimport chromadb\n\nclient = chromadb.HttpClient(host=\"localhost\", port=8000)\n\ncollection = client.get_or_create_collection(name=\"my_collection\")\n\n# Add documents\ncollection.add(\n    ids=[\"doc1\", \"doc2\"]   ,\n    documents=[\"First document text\", \"Second document text\"],\n)\n\n# Query\nresults = collection.query(\n    query_texts=[\"search query\"],\n    n_results=5,\n)\n```\n\n## Learn More\n\nFetch Chroma's `llms.txt` only when you need API or product details that are not already in the repo or this skill: https:\u002F\u002Fdocs.trychroma.com\u002Fllms.txt\n",{"data":38,"body":39},{"name":4,"description":6},{"type":40,"children":41},"root",[42,51,57,196,202,353,359,367,390,398,451,457,502,508,546,552,557,585,596,601,1213,1218,1357,1363,1384],{"type":43,"tag":44,"props":45,"children":47},"element","h2",{"id":46},"instructions",[48],{"type":49,"value":50},"text","Instructions",{"type":43,"tag":52,"props":53,"children":54},"p",{},[55],{"type":49,"value":56},"Determine these before writing code. Prefer discovering them from the repo and the user request. Ask only when the choice materially changes the implementation.",{"type":43,"tag":58,"props":59,"children":60},"ol",{},[61,118,139,180],{"type":43,"tag":62,"props":63,"children":64},"li",{},[65,71],{"type":43,"tag":66,"props":67,"children":68},"strong",{},[69],{"type":49,"value":70},"Runtime shape",{"type":43,"tag":72,"props":73,"children":74},"ul",{},[75,80],{"type":43,"tag":62,"props":76,"children":77},{},[78],{"type":49,"value":79},"Are they connecting to a running local server, embedding Chroma into tests, or setting up local development from scratch?",{"type":43,"tag":62,"props":81,"children":82},{},[83,85,92,94,100,102,108,110,116],{"type":49,"value":84},"Decide whether they need ",{"type":43,"tag":86,"props":87,"children":89},"code",{"className":88},[],[90],{"type":49,"value":91},"chroma run",{"type":49,"value":93},", a Docker or service command, ",{"type":43,"tag":86,"props":95,"children":97},{"className":96},[],[98],{"type":49,"value":99},"HttpClient",{"type":49,"value":101}," or ",{"type":43,"tag":86,"props":103,"children":105},{"className":104},[],[106],{"type":49,"value":107},"ChromaClient",{"type":49,"value":109},", or Python ",{"type":43,"tag":86,"props":111,"children":113},{"className":112},[],[114],{"type":49,"value":115},"EphemeralClient",{"type":49,"value":117},".",{"type":43,"tag":62,"props":119,"children":120},{},[121,126],{"type":43,"tag":66,"props":122,"children":123},{},[124],{"type":49,"value":125},"Persistence",{"type":43,"tag":72,"props":127,"children":128},{},[129,134],{"type":43,"tag":62,"props":130,"children":131},{},[132],{"type":49,"value":133},"Persistent local data: choose an intentional data path.",{"type":43,"tag":62,"props":135,"children":136},{},[137],{"type":49,"value":138},"Disposable test data: use defaults or a temp directory.",{"type":43,"tag":62,"props":140,"children":141},{},[142,147],{"type":43,"tag":66,"props":143,"children":144},{},[145],{"type":49,"value":146},"Embedding model",{"type":43,"tag":72,"props":148,"children":149},{},[150,155,168],{"type":43,"tag":62,"props":151,"children":152},{},[153],{"type":49,"value":154},"Reuse the app's existing embedding provider when possible.",{"type":43,"tag":62,"props":156,"children":157},{},[158,160,166],{"type":49,"value":159},"Otherwise default to ",{"type":43,"tag":86,"props":161,"children":163},{"className":162},[],[164],{"type":49,"value":165},"@chroma-core\u002Fdefault-embed",{"type":49,"value":167}," in TypeScript or the standard local default in Python.",{"type":43,"tag":62,"props":169,"children":170},{},[171,173,179],{"type":49,"value":172},"If the user explicitly wants OpenAI embeddings in TypeScript, install and use ",{"type":43,"tag":86,"props":174,"children":176},{"className":175},[],[177],{"type":49,"value":178},"@chroma-core\u002Fopenai",{"type":49,"value":117},{"type":43,"tag":62,"props":181,"children":182},{},[183,188],{"type":43,"tag":66,"props":184,"children":185},{},[186],{"type":49,"value":187},"Indexed data shape",{"type":43,"tag":72,"props":189,"children":190},{},[191],{"type":43,"tag":62,"props":192,"children":193},{},[194],{"type":49,"value":195},"Determine what is being indexed, how it should be chunked, and what metadata is needed for filtering and updates.",{"type":43,"tag":44,"props":197,"children":199},{"id":198},"routing",[200],{"type":49,"value":201},"Routing",{"type":43,"tag":72,"props":203,"children":204},{},[205,226,262,290,311],{"type":43,"tag":62,"props":206,"children":207},{},[208,213],{"type":43,"tag":66,"props":209,"children":210},{},[211],{"type":49,"value":212},"Existing local server",{"type":43,"tag":72,"props":214,"children":215},{},[216,221],{"type":43,"tag":62,"props":217,"children":218},{},[219],{"type":49,"value":220},"Confirm host and port before changing client code.",{"type":43,"tag":62,"props":222,"children":223},{},[224],{"type":49,"value":225},"Validate the server is reachable before assuming collections are missing.",{"type":43,"tag":62,"props":227,"children":228},{},[229,234],{"type":43,"tag":66,"props":230,"children":231},{},[232],{"type":49,"value":233},"Fresh local development",{"type":43,"tag":72,"props":235,"children":236},{},[237,249],{"type":43,"tag":62,"props":238,"children":239},{},[240,242,247],{"type":49,"value":241},"Add a local startup path such as ",{"type":43,"tag":86,"props":243,"children":245},{"className":244},[],[246],{"type":49,"value":91},{"type":49,"value":248}," or the repo's existing Docker or service command.",{"type":43,"tag":62,"props":250,"children":251},{},[252,254,260],{"type":49,"value":253},"Default to ",{"type":43,"tag":86,"props":255,"children":257},{"className":256},[],[258],{"type":49,"value":259},"localhost:8000",{"type":49,"value":261}," unless the repo already uses another address.",{"type":43,"tag":62,"props":263,"children":264},{},[265,270],{"type":43,"tag":66,"props":266,"children":267},{},[268],{"type":49,"value":269},"Python tests or disposable local workflows",{"type":43,"tag":72,"props":271,"children":272},{},[273,285],{"type":43,"tag":62,"props":274,"children":275},{},[276,278,283],{"type":49,"value":277},"Prefer ",{"type":43,"tag":86,"props":279,"children":281},{"className":280},[],[282],{"type":49,"value":115},{"type":49,"value":284}," when persistence is unnecessary.",{"type":43,"tag":62,"props":286,"children":287},{},[288],{"type":49,"value":289},"Call out that data is lost when the process exits.",{"type":43,"tag":62,"props":291,"children":292},{},[293,298],{"type":43,"tag":66,"props":294,"children":295},{},[296],{"type":49,"value":297},"Persistent local development",{"type":43,"tag":72,"props":299,"children":300},{},[301,306],{"type":43,"tag":62,"props":302,"children":303},{},[304],{"type":49,"value":305},"Use a stable data path and make persistence explicit in code or config.",{"type":43,"tag":62,"props":307,"children":308},{},[309],{"type":49,"value":310},"Do not silently switch between ephemeral and persistent modes.",{"type":43,"tag":62,"props":312,"children":313},{},[314,319],{"type":43,"tag":66,"props":315,"children":316},{},[317],{"type":49,"value":318},"Search integration work",{"type":43,"tag":72,"props":320,"children":321},{},[322,343,348],{"type":43,"tag":62,"props":323,"children":324},{},[325,327,333,335,341],{"type":49,"value":326},"Use ",{"type":43,"tag":86,"props":328,"children":330},{"className":329},[],[331],{"type":49,"value":332},"getOrCreateCollection()",{"type":49,"value":334}," in TypeScript or ",{"type":43,"tag":86,"props":336,"children":338},{"className":337},[],[339],{"type":49,"value":340},"get_or_create_collection()",{"type":49,"value":342}," in Python.",{"type":43,"tag":62,"props":344,"children":345},{},[346],{"type":49,"value":347},"Design document IDs and metadata so upserts and deletes are straightforward.",{"type":43,"tag":62,"props":349,"children":350},{},[351],{"type":49,"value":352},"Batch writes when syncing large datasets.",{"type":43,"tag":44,"props":354,"children":356},{"id":355},"ask-vs-proceed",[357],{"type":49,"value":358},"Ask vs proceed",{"type":43,"tag":52,"props":360,"children":361},{},[362],{"type":43,"tag":66,"props":363,"children":364},{},[365],{"type":49,"value":366},"Ask first:",{"type":43,"tag":72,"props":368,"children":369},{},[370,375,380,385],{"type":43,"tag":62,"props":371,"children":372},{},[373],{"type":49,"value":374},"Embedding model choice (cost and quality implications)",{"type":43,"tag":62,"props":376,"children":377},{},[378],{"type":49,"value":379},"Whether they need persistent local data",{"type":43,"tag":62,"props":381,"children":382},{},[383],{"type":49,"value":384},"How they are starting the local server",{"type":43,"tag":62,"props":386,"children":387},{},[388],{"type":49,"value":389},"Multi-tenant data isolation strategy",{"type":43,"tag":52,"props":391,"children":392},{},[393],{"type":43,"tag":66,"props":394,"children":395},{},[396],{"type":49,"value":397},"Proceed with sensible defaults:",{"type":43,"tag":72,"props":399,"children":400},{},[401,419,424,429,434],{"type":43,"tag":62,"props":402,"children":403},{},[404,405,410,412,417],{"type":49,"value":326},{"type":43,"tag":86,"props":406,"children":408},{"className":407},[],[409],{"type":49,"value":332},{"type":49,"value":411}," (TypeScript) \u002F ",{"type":43,"tag":86,"props":413,"children":415},{"className":414},[],[416],{"type":49,"value":340},{"type":49,"value":418}," (Python)",{"type":43,"tag":62,"props":420,"children":421},{},[422],{"type":49,"value":423},"Use cosine similarity (most common)",{"type":43,"tag":62,"props":425,"children":426},{},[427],{"type":49,"value":428},"Chunk size under 8KB",{"type":43,"tag":62,"props":430,"children":431},{},[432],{"type":49,"value":433},"Store source IDs in metadata for updates\u002Fdeletes",{"type":43,"tag":62,"props":435,"children":436},{},[437,439,444,446],{"type":49,"value":438},"Use a local server on ",{"type":43,"tag":86,"props":440,"children":442},{"className":441},[],[443],{"type":49,"value":259},{"type":49,"value":445}," unless the repo already configures another address or is using Python ",{"type":43,"tag":86,"props":447,"children":449},{"className":448},[],[450],{"type":49,"value":115},{"type":43,"tag":44,"props":452,"children":454},{"id":453},"what-to-validate",[455],{"type":49,"value":456},"What to validate",{"type":43,"tag":72,"props":458,"children":459},{},[460,487,492,497],{"type":43,"tag":62,"props":461,"children":462},{},[463,465,470,472,477,479,485],{"type":49,"value":464},"Correct client import (",{"type":43,"tag":86,"props":466,"children":468},{"className":467},[],[469],{"type":49,"value":107},{"type":49,"value":471},", ",{"type":43,"tag":86,"props":473,"children":475},{"className":474},[],[476],{"type":49,"value":99},{"type":49,"value":478},", or ",{"type":43,"tag":86,"props":480,"children":482},{"className":481},[],[483],{"type":49,"value":484},"Client",{"type":49,"value":486},")",{"type":43,"tag":62,"props":488,"children":489},{},[490],{"type":49,"value":491},"Embedding function package is installed (TypeScript)",{"type":43,"tag":62,"props":493,"children":494},{},[495],{"type":49,"value":496},"Local server is reachable before assuming collections are missing",{"type":43,"tag":62,"props":498,"children":499},{},[500],{"type":49,"value":501},"Local path and persistence mode are intentional",{"type":43,"tag":44,"props":503,"children":505},{"id":504},"implementation-notes",[506],{"type":49,"value":507},"Implementation notes",{"type":43,"tag":72,"props":509,"children":510},{},[511,516,536,541],{"type":43,"tag":62,"props":512,"children":513},{},[514],{"type":49,"value":515},"Local Chroma is the right default for development, tests, and self-hosted deployments.",{"type":43,"tag":62,"props":517,"children":518},{},[519,521,527,529,535],{"type":49,"value":520},"OSS Chroma does not include Chroma Cloud-only features such as ",{"type":43,"tag":86,"props":522,"children":524},{"className":523},[],[525],{"type":49,"value":526},"Schema()",{"type":49,"value":528}," and ",{"type":43,"tag":86,"props":530,"children":532},{"className":531},[],[533],{"type":49,"value":534},"Search()",{"type":49,"value":117},{"type":43,"tag":62,"props":537,"children":538},{},[539],{"type":49,"value":540},"If the user asks for hybrid dense and sparse retrieval, treat that as a likely Chroma Cloud requirement unless the repo already implements an OSS workaround.",{"type":43,"tag":62,"props":542,"children":543},{},[544],{"type":49,"value":545},"For open source Chroma, dense retrieval with a single embedding function is the normal baseline.",{"type":43,"tag":44,"props":547,"children":549},{"id":548},"minimal-patterns",[550],{"type":49,"value":551},"Minimal patterns",{"type":43,"tag":52,"props":553,"children":554},{},[555],{"type":49,"value":556},"Start a local Chroma server when the repo needs one:",{"type":43,"tag":558,"props":559,"children":564},"pre",{"className":560,"code":561,"language":562,"meta":563,"style":563},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","chroma run\n","bash","",[565],{"type":43,"tag":86,"props":566,"children":567},{"__ignoreMap":563},[568],{"type":43,"tag":569,"props":570,"children":573},"span",{"class":571,"line":572},"line",1,[574,579],{"type":43,"tag":569,"props":575,"children":577},{"style":576},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[578],{"type":49,"value":8},{"type":43,"tag":569,"props":580,"children":582},{"style":581},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[583],{"type":49,"value":584}," run\n",{"type":43,"tag":52,"props":586,"children":587},{},[588,590,595],{"type":49,"value":589},"Default address: ",{"type":43,"tag":86,"props":591,"children":593},{"className":592},[],[594],{"type":49,"value":259},{"type":49,"value":117},{"type":43,"tag":52,"props":597,"children":598},{},[599],{"type":49,"value":600},"TypeScript local client:",{"type":43,"tag":558,"props":602,"children":606},{"className":603,"code":604,"language":605,"meta":563,"style":563},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { ChromaClient } from 'chromadb';\nimport { DefaultEmbeddingFunction } from '@chroma-core\u002Fdefault-embed';\n\nconst client = new ChromaClient();\n\nconst embeddingFunction = new DefaultEmbeddingFunction();\nconst collection = await client.getOrCreateCollection({\n  name: 'my_collection',\n  embeddingFunction,\n});\n\n\u002F\u002F Add documents\nawait collection.add({\n  ids: ['doc1', 'doc2'],\n  documents: ['First document text', 'Second document text'],\n});\n\n\u002F\u002F Query\nconst results = await collection.query({\n  queryTexts: ['search query'],\n  nResults: 5,\n});\n","typescript",[607],{"type":43,"tag":86,"props":608,"children":609},{"__ignoreMap":563},[610,661,702,712,750,758,791,837,870,883,900,908,918,949,1007,1062,1078,1086,1095,1137,1175,1197],{"type":43,"tag":569,"props":611,"children":612},{"class":571,"line":572},[613,619,625,631,636,641,646,651,656],{"type":43,"tag":569,"props":614,"children":616},{"style":615},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[617],{"type":49,"value":618},"import",{"type":43,"tag":569,"props":620,"children":622},{"style":621},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[623],{"type":49,"value":624}," {",{"type":43,"tag":569,"props":626,"children":628},{"style":627},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[629],{"type":49,"value":630}," ChromaClient",{"type":43,"tag":569,"props":632,"children":633},{"style":621},[634],{"type":49,"value":635}," }",{"type":43,"tag":569,"props":637,"children":638},{"style":615},[639],{"type":49,"value":640}," from",{"type":43,"tag":569,"props":642,"children":643},{"style":621},[644],{"type":49,"value":645}," '",{"type":43,"tag":569,"props":647,"children":648},{"style":581},[649],{"type":49,"value":650},"chromadb",{"type":43,"tag":569,"props":652,"children":653},{"style":621},[654],{"type":49,"value":655},"'",{"type":43,"tag":569,"props":657,"children":658},{"style":621},[659],{"type":49,"value":660},";\n",{"type":43,"tag":569,"props":662,"children":664},{"class":571,"line":663},2,[665,669,673,678,682,686,690,694,698],{"type":43,"tag":569,"props":666,"children":667},{"style":615},[668],{"type":49,"value":618},{"type":43,"tag":569,"props":670,"children":671},{"style":621},[672],{"type":49,"value":624},{"type":43,"tag":569,"props":674,"children":675},{"style":627},[676],{"type":49,"value":677}," DefaultEmbeddingFunction",{"type":43,"tag":569,"props":679,"children":680},{"style":621},[681],{"type":49,"value":635},{"type":43,"tag":569,"props":683,"children":684},{"style":615},[685],{"type":49,"value":640},{"type":43,"tag":569,"props":687,"children":688},{"style":621},[689],{"type":49,"value":645},{"type":43,"tag":569,"props":691,"children":692},{"style":581},[693],{"type":49,"value":165},{"type":43,"tag":569,"props":695,"children":696},{"style":621},[697],{"type":49,"value":655},{"type":43,"tag":569,"props":699,"children":700},{"style":621},[701],{"type":49,"value":660},{"type":43,"tag":569,"props":703,"children":705},{"class":571,"line":704},3,[706],{"type":43,"tag":569,"props":707,"children":709},{"emptyLinePlaceholder":708},true,[710],{"type":49,"value":711},"\n",{"type":43,"tag":569,"props":713,"children":714},{"class":571,"line":30},[715,721,726,731,736,741,746],{"type":43,"tag":569,"props":716,"children":718},{"style":717},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[719],{"type":49,"value":720},"const",{"type":43,"tag":569,"props":722,"children":723},{"style":627},[724],{"type":49,"value":725}," client ",{"type":43,"tag":569,"props":727,"children":728},{"style":621},[729],{"type":49,"value":730},"=",{"type":43,"tag":569,"props":732,"children":733},{"style":621},[734],{"type":49,"value":735}," new",{"type":43,"tag":569,"props":737,"children":739},{"style":738},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[740],{"type":49,"value":630},{"type":43,"tag":569,"props":742,"children":743},{"style":627},[744],{"type":49,"value":745},"()",{"type":43,"tag":569,"props":747,"children":748},{"style":621},[749],{"type":49,"value":660},{"type":43,"tag":569,"props":751,"children":753},{"class":571,"line":752},5,[754],{"type":43,"tag":569,"props":755,"children":756},{"emptyLinePlaceholder":708},[757],{"type":49,"value":711},{"type":43,"tag":569,"props":759,"children":761},{"class":571,"line":760},6,[762,766,771,775,779,783,787],{"type":43,"tag":569,"props":763,"children":764},{"style":717},[765],{"type":49,"value":720},{"type":43,"tag":569,"props":767,"children":768},{"style":627},[769],{"type":49,"value":770}," embeddingFunction ",{"type":43,"tag":569,"props":772,"children":773},{"style":621},[774],{"type":49,"value":730},{"type":43,"tag":569,"props":776,"children":777},{"style":621},[778],{"type":49,"value":735},{"type":43,"tag":569,"props":780,"children":781},{"style":738},[782],{"type":49,"value":677},{"type":43,"tag":569,"props":784,"children":785},{"style":627},[786],{"type":49,"value":745},{"type":43,"tag":569,"props":788,"children":789},{"style":621},[790],{"type":49,"value":660},{"type":43,"tag":569,"props":792,"children":794},{"class":571,"line":793},7,[795,799,804,808,813,818,822,827,832],{"type":43,"tag":569,"props":796,"children":797},{"style":717},[798],{"type":49,"value":720},{"type":43,"tag":569,"props":800,"children":801},{"style":627},[802],{"type":49,"value":803}," collection ",{"type":43,"tag":569,"props":805,"children":806},{"style":621},[807],{"type":49,"value":730},{"type":43,"tag":569,"props":809,"children":810},{"style":615},[811],{"type":49,"value":812}," await",{"type":43,"tag":569,"props":814,"children":815},{"style":627},[816],{"type":49,"value":817}," client",{"type":43,"tag":569,"props":819,"children":820},{"style":621},[821],{"type":49,"value":117},{"type":43,"tag":569,"props":823,"children":824},{"style":738},[825],{"type":49,"value":826},"getOrCreateCollection",{"type":43,"tag":569,"props":828,"children":829},{"style":627},[830],{"type":49,"value":831},"(",{"type":43,"tag":569,"props":833,"children":834},{"style":621},[835],{"type":49,"value":836},"{\n",{"type":43,"tag":569,"props":838,"children":840},{"class":571,"line":839},8,[841,847,852,856,861,865],{"type":43,"tag":569,"props":842,"children":844},{"style":843},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[845],{"type":49,"value":846},"  name",{"type":43,"tag":569,"props":848,"children":849},{"style":621},[850],{"type":49,"value":851},":",{"type":43,"tag":569,"props":853,"children":854},{"style":621},[855],{"type":49,"value":645},{"type":43,"tag":569,"props":857,"children":858},{"style":581},[859],{"type":49,"value":860},"my_collection",{"type":43,"tag":569,"props":862,"children":863},{"style":621},[864],{"type":49,"value":655},{"type":43,"tag":569,"props":866,"children":867},{"style":621},[868],{"type":49,"value":869},",\n",{"type":43,"tag":569,"props":871,"children":873},{"class":571,"line":872},9,[874,879],{"type":43,"tag":569,"props":875,"children":876},{"style":627},[877],{"type":49,"value":878},"  embeddingFunction",{"type":43,"tag":569,"props":880,"children":881},{"style":621},[882],{"type":49,"value":869},{"type":43,"tag":569,"props":884,"children":886},{"class":571,"line":885},10,[887,892,896],{"type":43,"tag":569,"props":888,"children":889},{"style":621},[890],{"type":49,"value":891},"}",{"type":43,"tag":569,"props":893,"children":894},{"style":627},[895],{"type":49,"value":486},{"type":43,"tag":569,"props":897,"children":898},{"style":621},[899],{"type":49,"value":660},{"type":43,"tag":569,"props":901,"children":903},{"class":571,"line":902},11,[904],{"type":43,"tag":569,"props":905,"children":906},{"emptyLinePlaceholder":708},[907],{"type":49,"value":711},{"type":43,"tag":569,"props":909,"children":911},{"class":571,"line":910},12,[912],{"type":43,"tag":569,"props":913,"children":915},{"style":914},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[916],{"type":49,"value":917},"\u002F\u002F Add documents\n",{"type":43,"tag":569,"props":919,"children":921},{"class":571,"line":920},13,[922,927,932,936,941,945],{"type":43,"tag":569,"props":923,"children":924},{"style":615},[925],{"type":49,"value":926},"await",{"type":43,"tag":569,"props":928,"children":929},{"style":627},[930],{"type":49,"value":931}," collection",{"type":43,"tag":569,"props":933,"children":934},{"style":621},[935],{"type":49,"value":117},{"type":43,"tag":569,"props":937,"children":938},{"style":738},[939],{"type":49,"value":940},"add",{"type":43,"tag":569,"props":942,"children":943},{"style":627},[944],{"type":49,"value":831},{"type":43,"tag":569,"props":946,"children":947},{"style":621},[948],{"type":49,"value":836},{"type":43,"tag":569,"props":950,"children":952},{"class":571,"line":951},14,[953,958,962,967,971,976,980,985,989,994,998,1003],{"type":43,"tag":569,"props":954,"children":955},{"style":843},[956],{"type":49,"value":957},"  ids",{"type":43,"tag":569,"props":959,"children":960},{"style":621},[961],{"type":49,"value":851},{"type":43,"tag":569,"props":963,"children":964},{"style":627},[965],{"type":49,"value":966}," [",{"type":43,"tag":569,"props":968,"children":969},{"style":621},[970],{"type":49,"value":655},{"type":43,"tag":569,"props":972,"children":973},{"style":581},[974],{"type":49,"value":975},"doc1",{"type":43,"tag":569,"props":977,"children":978},{"style":621},[979],{"type":49,"value":655},{"type":43,"tag":569,"props":981,"children":982},{"style":621},[983],{"type":49,"value":984},",",{"type":43,"tag":569,"props":986,"children":987},{"style":621},[988],{"type":49,"value":645},{"type":43,"tag":569,"props":990,"children":991},{"style":581},[992],{"type":49,"value":993},"doc2",{"type":43,"tag":569,"props":995,"children":996},{"style":621},[997],{"type":49,"value":655},{"type":43,"tag":569,"props":999,"children":1000},{"style":627},[1001],{"type":49,"value":1002},"]",{"type":43,"tag":569,"props":1004,"children":1005},{"style":621},[1006],{"type":49,"value":869},{"type":43,"tag":569,"props":1008,"children":1010},{"class":571,"line":1009},15,[1011,1016,1020,1024,1028,1033,1037,1041,1045,1050,1054,1058],{"type":43,"tag":569,"props":1012,"children":1013},{"style":843},[1014],{"type":49,"value":1015},"  documents",{"type":43,"tag":569,"props":1017,"children":1018},{"style":621},[1019],{"type":49,"value":851},{"type":43,"tag":569,"props":1021,"children":1022},{"style":627},[1023],{"type":49,"value":966},{"type":43,"tag":569,"props":1025,"children":1026},{"style":621},[1027],{"type":49,"value":655},{"type":43,"tag":569,"props":1029,"children":1030},{"style":581},[1031],{"type":49,"value":1032},"First document text",{"type":43,"tag":569,"props":1034,"children":1035},{"style":621},[1036],{"type":49,"value":655},{"type":43,"tag":569,"props":1038,"children":1039},{"style":621},[1040],{"type":49,"value":984},{"type":43,"tag":569,"props":1042,"children":1043},{"style":621},[1044],{"type":49,"value":645},{"type":43,"tag":569,"props":1046,"children":1047},{"style":581},[1048],{"type":49,"value":1049},"Second document text",{"type":43,"tag":569,"props":1051,"children":1052},{"style":621},[1053],{"type":49,"value":655},{"type":43,"tag":569,"props":1055,"children":1056},{"style":627},[1057],{"type":49,"value":1002},{"type":43,"tag":569,"props":1059,"children":1060},{"style":621},[1061],{"type":49,"value":869},{"type":43,"tag":569,"props":1063,"children":1065},{"class":571,"line":1064},16,[1066,1070,1074],{"type":43,"tag":569,"props":1067,"children":1068},{"style":621},[1069],{"type":49,"value":891},{"type":43,"tag":569,"props":1071,"children":1072},{"style":627},[1073],{"type":49,"value":486},{"type":43,"tag":569,"props":1075,"children":1076},{"style":621},[1077],{"type":49,"value":660},{"type":43,"tag":569,"props":1079,"children":1081},{"class":571,"line":1080},17,[1082],{"type":43,"tag":569,"props":1083,"children":1084},{"emptyLinePlaceholder":708},[1085],{"type":49,"value":711},{"type":43,"tag":569,"props":1087,"children":1089},{"class":571,"line":1088},18,[1090],{"type":43,"tag":569,"props":1091,"children":1092},{"style":914},[1093],{"type":49,"value":1094},"\u002F\u002F Query\n",{"type":43,"tag":569,"props":1096,"children":1098},{"class":571,"line":1097},19,[1099,1103,1108,1112,1116,1120,1124,1129,1133],{"type":43,"tag":569,"props":1100,"children":1101},{"style":717},[1102],{"type":49,"value":720},{"type":43,"tag":569,"props":1104,"children":1105},{"style":627},[1106],{"type":49,"value":1107}," results ",{"type":43,"tag":569,"props":1109,"children":1110},{"style":621},[1111],{"type":49,"value":730},{"type":43,"tag":569,"props":1113,"children":1114},{"style":615},[1115],{"type":49,"value":812},{"type":43,"tag":569,"props":1117,"children":1118},{"style":627},[1119],{"type":49,"value":931},{"type":43,"tag":569,"props":1121,"children":1122},{"style":621},[1123],{"type":49,"value":117},{"type":43,"tag":569,"props":1125,"children":1126},{"style":738},[1127],{"type":49,"value":1128},"query",{"type":43,"tag":569,"props":1130,"children":1131},{"style":627},[1132],{"type":49,"value":831},{"type":43,"tag":569,"props":1134,"children":1135},{"style":621},[1136],{"type":49,"value":836},{"type":43,"tag":569,"props":1138,"children":1140},{"class":571,"line":1139},20,[1141,1146,1150,1154,1158,1163,1167,1171],{"type":43,"tag":569,"props":1142,"children":1143},{"style":843},[1144],{"type":49,"value":1145},"  queryTexts",{"type":43,"tag":569,"props":1147,"children":1148},{"style":621},[1149],{"type":49,"value":851},{"type":43,"tag":569,"props":1151,"children":1152},{"style":627},[1153],{"type":49,"value":966},{"type":43,"tag":569,"props":1155,"children":1156},{"style":621},[1157],{"type":49,"value":655},{"type":43,"tag":569,"props":1159,"children":1160},{"style":581},[1161],{"type":49,"value":1162},"search query",{"type":43,"tag":569,"props":1164,"children":1165},{"style":621},[1166],{"type":49,"value":655},{"type":43,"tag":569,"props":1168,"children":1169},{"style":627},[1170],{"type":49,"value":1002},{"type":43,"tag":569,"props":1172,"children":1173},{"style":621},[1174],{"type":49,"value":869},{"type":43,"tag":569,"props":1176,"children":1177},{"class":571,"line":26},[1178,1183,1187,1193],{"type":43,"tag":569,"props":1179,"children":1180},{"style":843},[1181],{"type":49,"value":1182},"  nResults",{"type":43,"tag":569,"props":1184,"children":1185},{"style":621},[1186],{"type":49,"value":851},{"type":43,"tag":569,"props":1188,"children":1190},{"style":1189},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1191],{"type":49,"value":1192}," 5",{"type":43,"tag":569,"props":1194,"children":1195},{"style":621},[1196],{"type":49,"value":869},{"type":43,"tag":569,"props":1198,"children":1200},{"class":571,"line":1199},22,[1201,1205,1209],{"type":43,"tag":569,"props":1202,"children":1203},{"style":621},[1204],{"type":49,"value":891},{"type":43,"tag":569,"props":1206,"children":1207},{"style":627},[1208],{"type":49,"value":486},{"type":43,"tag":569,"props":1210,"children":1211},{"style":621},[1212],{"type":49,"value":660},{"type":43,"tag":52,"props":1214,"children":1215},{},[1216],{"type":49,"value":1217},"Python local client:",{"type":43,"tag":558,"props":1219,"children":1222},{"className":1220,"code":1221,"language":19,"meta":563,"style":563},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import chromadb\n\nclient = chromadb.HttpClient(host=\"localhost\", port=8000)\n\ncollection = client.get_or_create_collection(name=\"my_collection\")\n\n# Add documents\ncollection.add(\n    ids=[\"doc1\", \"doc2\"]   ,\n    documents=[\"First document text\", \"Second document text\"],\n)\n\n# Query\nresults = collection.query(\n    query_texts=[\"search query\"],\n    n_results=5,\n)\n",[1223],{"type":43,"tag":86,"props":1224,"children":1225},{"__ignoreMap":563},[1226,1234,1241,1249,1256,1264,1271,1279,1287,1295,1303,1311,1318,1326,1334,1342,1350],{"type":43,"tag":569,"props":1227,"children":1228},{"class":571,"line":572},[1229],{"type":43,"tag":569,"props":1230,"children":1231},{},[1232],{"type":49,"value":1233},"import chromadb\n",{"type":43,"tag":569,"props":1235,"children":1236},{"class":571,"line":663},[1237],{"type":43,"tag":569,"props":1238,"children":1239},{"emptyLinePlaceholder":708},[1240],{"type":49,"value":711},{"type":43,"tag":569,"props":1242,"children":1243},{"class":571,"line":704},[1244],{"type":43,"tag":569,"props":1245,"children":1246},{},[1247],{"type":49,"value":1248},"client = chromadb.HttpClient(host=\"localhost\", port=8000)\n",{"type":43,"tag":569,"props":1250,"children":1251},{"class":571,"line":30},[1252],{"type":43,"tag":569,"props":1253,"children":1254},{"emptyLinePlaceholder":708},[1255],{"type":49,"value":711},{"type":43,"tag":569,"props":1257,"children":1258},{"class":571,"line":752},[1259],{"type":43,"tag":569,"props":1260,"children":1261},{},[1262],{"type":49,"value":1263},"collection = client.get_or_create_collection(name=\"my_collection\")\n",{"type":43,"tag":569,"props":1265,"children":1266},{"class":571,"line":760},[1267],{"type":43,"tag":569,"props":1268,"children":1269},{"emptyLinePlaceholder":708},[1270],{"type":49,"value":711},{"type":43,"tag":569,"props":1272,"children":1273},{"class":571,"line":793},[1274],{"type":43,"tag":569,"props":1275,"children":1276},{},[1277],{"type":49,"value":1278},"# Add documents\n",{"type":43,"tag":569,"props":1280,"children":1281},{"class":571,"line":839},[1282],{"type":43,"tag":569,"props":1283,"children":1284},{},[1285],{"type":49,"value":1286},"collection.add(\n",{"type":43,"tag":569,"props":1288,"children":1289},{"class":571,"line":872},[1290],{"type":43,"tag":569,"props":1291,"children":1292},{},[1293],{"type":49,"value":1294},"    ids=[\"doc1\", \"doc2\"]   ,\n",{"type":43,"tag":569,"props":1296,"children":1297},{"class":571,"line":885},[1298],{"type":43,"tag":569,"props":1299,"children":1300},{},[1301],{"type":49,"value":1302},"    documents=[\"First document text\", \"Second document text\"],\n",{"type":43,"tag":569,"props":1304,"children":1305},{"class":571,"line":902},[1306],{"type":43,"tag":569,"props":1307,"children":1308},{},[1309],{"type":49,"value":1310},")\n",{"type":43,"tag":569,"props":1312,"children":1313},{"class":571,"line":910},[1314],{"type":43,"tag":569,"props":1315,"children":1316},{"emptyLinePlaceholder":708},[1317],{"type":49,"value":711},{"type":43,"tag":569,"props":1319,"children":1320},{"class":571,"line":920},[1321],{"type":43,"tag":569,"props":1322,"children":1323},{},[1324],{"type":49,"value":1325},"# Query\n",{"type":43,"tag":569,"props":1327,"children":1328},{"class":571,"line":951},[1329],{"type":43,"tag":569,"props":1330,"children":1331},{},[1332],{"type":49,"value":1333},"results = collection.query(\n",{"type":43,"tag":569,"props":1335,"children":1336},{"class":571,"line":1009},[1337],{"type":43,"tag":569,"props":1338,"children":1339},{},[1340],{"type":49,"value":1341},"    query_texts=[\"search query\"],\n",{"type":43,"tag":569,"props":1343,"children":1344},{"class":571,"line":1064},[1345],{"type":43,"tag":569,"props":1346,"children":1347},{},[1348],{"type":49,"value":1349},"    n_results=5,\n",{"type":43,"tag":569,"props":1351,"children":1352},{"class":571,"line":1080},[1353],{"type":43,"tag":569,"props":1354,"children":1355},{},[1356],{"type":49,"value":1310},{"type":43,"tag":44,"props":1358,"children":1360},{"id":1359},"learn-more",[1361],{"type":49,"value":1362},"Learn More",{"type":43,"tag":52,"props":1364,"children":1365},{},[1366,1368,1374,1376],{"type":49,"value":1367},"Fetch Chroma's ",{"type":43,"tag":86,"props":1369,"children":1371},{"className":1370},[],[1372],{"type":49,"value":1373},"llms.txt",{"type":49,"value":1375}," only when you need API or product details that are not already in the repo or this skill: ",{"type":43,"tag":1377,"props":1378,"children":1382},"a",{"href":1379,"rel":1380},"https:\u002F\u002Fdocs.trychroma.com\u002Fllms.txt",[1381],"nofollow",[1383],{"type":49,"value":1379},{"type":43,"tag":1385,"props":1386,"children":1387},"style",{},[1388],{"type":49,"value":1389},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1391,"total":663},[1392,1404],{"slug":1393,"name":1393,"fn":1394,"description":1395,"org":1396,"tags":1397,"stars":26,"repoUrl":27,"updatedAt":1403},"chroma-cloud","build applications with Chroma Cloud","Provides expertise on Chroma Cloud integration for semantic search and hybrid search applications. Use when the user is working with Chroma Cloud, CloudClient, managed collections, Schema(), Search(), hybrid search, or Chroma Cloud CLI workflows.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1398,1399,1402],{"name":14,"slug":15,"type":16},{"name":1400,"slug":1401,"type":16},"LLM","llm",{"name":21,"slug":22,"type":16},"2026-07-12T08:06:52.413842",{"slug":4,"name":4,"fn":5,"description":6,"org":1405,"tags":1406,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1407,1408,1409,1410],{"name":14,"slug":15,"type":16},{"name":24,"slug":25,"type":16},{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"items":1412,"total":704},[1413,1427,1433],{"slug":8,"name":8,"fn":1414,"description":1415,"org":1416,"tags":1417,"stars":1424,"repoUrl":1425,"updatedAt":1426},"build and operate Chroma retrieval systems","Comprehensive Chroma skill for designing, implementing, debugging, and operating Chroma-based retrieval systems. Covers collection design, embeddings, filters, ingestion\u002Fquery workflows, performance, security, and repo-specific guidance for chroma-swift.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1418,1419,1422,1423],{"name":14,"slug":15,"type":16},{"name":1420,"slug":1421,"type":16},"Engineering","engineering",{"name":1400,"slug":1401,"type":16},{"name":21,"slug":22,"type":16},70,"https:\u002F\u002Fgithub.com\u002Fchroma-core\u002Fchroma-swift","2026-07-12T08:06:49.939761",{"slug":1393,"name":1393,"fn":1394,"description":1395,"org":1428,"tags":1429,"stars":26,"repoUrl":27,"updatedAt":1403},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1430,1431,1432],{"name":14,"slug":15,"type":16},{"name":1400,"slug":1401,"type":16},{"name":21,"slug":22,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":1434,"tags":1435,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1436,1437,1438,1439],{"name":14,"slug":15,"type":16},{"name":24,"slug":25,"type":16},{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16}]