Installation

Chroma single node is split into two packages: chromadb and chromadb-client. The chromadb package is the core package that provides the database functionality, while the chromadb-client package provides the Python client for interacting with the database.

In addition to the python packages Chroma also provides a JS/TS client package.

Core (Python) - Single Node

The core Chroma package installs the full Chroma version which can be uses for local development and testing.

Backward compatibility

While Chroma strives to be as compatible with older versions as possible, certain releases introduce breaking changes and most importantly database migrations. All database migrations are irreversible and once upgraded to a new version of Chroma, you cannot downgrade to an older version.

Releases

You can find Chroma releases in PyPI here.

Latest ReleaseLatest main branchSpecific VersionFrom PR Branch

  1. pip install chromadb

Directly from Github:

  1. pip install git+https://github.com/chroma-core/chroma.git@main

From test PyPI:

  1. pip install --index-url https://test.pypi.org/simple/ chromadb

Installing a specific version of Chroma is useful when you want to ensure that your code works with a specific version of Chroma. To install a specific version of Chroma, run:

From PyPI:

  1. pip install chromadb==<x.y.z>

Directly from Github (replace x.y.z with the tag of the version you want to install):

  1. pip install git+https://github.com/chroma-core/[email protected]

It is sometimes useful to install a version of Chroma that has still some unrelease functionality. Like a PR that either fixes a bug or brings in a new functionality you may need. To test such unreleased code it is possible to install directly from GH PR branch.

  1. pip install git+https://github.com/chroma-core/chroma.git@<branch_name>

ChromaDB Python Client

Chroma python client package chromadb-client provides a thin client for interacting with the Chroma database. The client interface is fully compatible with the core Chroma package so it can be interchangeably used with the core package.

Releases

You can find Chroma releases in PyPI here.

Latest ReleaseLatest main branchSpecific Version

  1. pip install chromadb-client

From test PyPI:

  1. pip install --index-url https://test.pypi.org/simple/ chromadb-client

Installing a specific version of Chroma is useful when you want to ensure that your code works with a specific version of Chroma. To install a specific version of Chroma, run:

  1. pip install chromadb==<x.y.z>

Default Embedding Function

The thin client is light-weight in terms of dependencies and as such the Default Embedding Function is not supported. It is possible to install onnxruntime dependency and use the chromadb.utils.embedding_functions.ONNXMiniLM_L6_V2 EF in place of chromadb.utils.embedding_functions.DefaultEmbeddingFunction. It is not recommended to run inference (local EFs like the default EF) in resource constrained environments.

Chroma JS/TS Client

To install the Chroma JS/TS client package, use the following command depending on your package manager.

YarnNPMPNPMGitHub

  1. yarn install chromadb chromadb-default-embed
  1. npm install --save chromadb chromadb-default-embed
  1. pnpm install chromadb chromadb-default-embed

To install from GitHub, visit https://github.com/chroma-core/chroma/pkgs/npm/chromadb.

NPM Auth

GitHub requires npm authentication to fetch packages. To authenticate with the GitHub NPM registry, you need to create a .npmrc file in your project directory with the following content:

  1. //npm.pkg.github.com/:_authToken=TOKEN
  2. @chroma-core:registry=https://npm.pkg.github.com

Replace TOKEN with your GitHub token. More info can be found here.

  1. npm install --save @chroma-core/chromadb

July 16, 2024