Pinecone Publishes Guide for Moving Off Chroma Cloud Before Shutdown

Pinecone has released a step-by-step guide for moving collections from Chroma Cloud to Pinecone Database, as Chroma winds down its hosted service. According to Pinecone, Chroma Cloud stops accepting writes on November 22, 2026 and stops serving reads on December 22, 2026.
- Chroma Cloud stops accepting writes on November 22, 2026 and stops serving reads on December 22, 2026.
- Pinecone published a ten-step guide and a six-script Python toolkit to move a collection to a serverless index.
- The toolkit reuses existing vectors and is provided as-is, with no guarantees, according to Pinecone.
- Chroma where_document queries and some $contains filters have no Pinecone equivalent and need redesign.
- Chroma Cloud users can start a 3-week Pinecone Standard trial with $300 in credits.
Two deadlines for Chroma Cloud users
Pinecone's post, written by Aaron Kao and dated October 26, 2026, summarizes the schedule set in Chroma's notice. On November 22, 2026, Chroma Cloud becomes read-only, with no creates, updates or deletes. On December 22, 2026, it no longer serves queries.
Chroma recommends that users start exporting and validating data before November 22 and finish exporting before December 22. Open-source Chroma is not affected and remains available under Apache 2.0, according to the post.
For teams that prefer a managed service over running Chroma themselves, Pinecone says its Database is serverless and fully managed, with no clusters to operate and no index to size or provision before loading data. Chroma Cloud users can start with a 3-week Pinecone Standard trial that includes $300 in credits.
What the migration toolkit does
The guide covers moving one Chroma Cloud collection that already has dense embeddings, document text and metadata into a Pinecone serverless index. It reuses existing vectors and re-embeds nothing. It assumes a planned write pause, during which the app is read-only for the cutover window. Several collections can be moved by repeating the process for each.
The process relies on a toolkit of six Python scripts: preflight, create index, export, convert, load and validate. The toolkit is hosted at pinecone-field/chromacloud-migration. Pinecone states it is provided as-is, with no guarantees, and tells users to run the scripts against their own data, review every finding and confirm that validation fits their app before switching production traffic.
The post maps Chroma concepts to Pinecone equivalents. A Chroma tenant and database correspond to a Pinecone organization and project. A collection becomes an index, or a namespace in a shared index when collections share dimension and metric. Distance settings l2, cosine and ip map to euclidean, cosine and dotproduct. Metadata becomes top-level document fields that are filterable automatically.
Not everything carries over directly. Chroma where_document queries, and $contains or $not_contains filters on non-array keys, have no equivalent in Pinecone and need to be redesigned. Some data also changes along the way, including remapped IDs and renamed metadata keys.
The ten-step sequence
Pinecone lays out ten steps: rehearse and size the window, create the index and ship a read/write switch, pause writes, snapshot the count and export, convert and load into a fresh namespace, validate, make a decision, flip reads and writes together, monitor after cutover, and retire Chroma Cloud.
- Preflight: scans the collection and reports count, embedding dimension, distance space, metadata keys and types, empty documents and IDs Pinecone would reject. Findings are labeled BLOCKING, TRANSFORM, WARNING or INFO and saved to preflight.json. Blocking issues include all-zero vectors, mixed dimensions, metadata over 40 KB, unsupported types and numeric or boolean arrays.
- Create index: reads dimension and metric from preflight.json and creates a document index in AWS us-east-1 by default. A full-text-search variant is available if documents exceed about 40 KB.
- Export: records the collection count and streams pages to export.jsonl. It exits 0 only if unique exported IDs equal the count, no ID repeats and the count did not change. The post warns that this check cannot detect an update that leaves the count unchanged, so the write pause must be enforced in the app.
- Convert: produces documents.jsonl, field_map.json, id_map.jsonl and transforms.jsonl. IDs Pinecone rejects become chroma-sha256 values, with the original stored in chroma_id.
Pinecone does not quote durations, saying a rehearsal on a copy or small collection is the only reliable way to size the write-pause window.
What it means for Chroma Cloud users
With writes ending November 22, teams using Chroma Cloud have a limited window to rehearse, pause writes and validate a move. The guide gives those who choose Pinecone a concrete path, while the as-is disclaimer means verification remains the user's responsibility. Those who want to stay with Chroma can use the open-source version, which the post says is unaffected.
Pinecone: How to Migrate from Chroma Cloud to Pinecone | Pinecone

