Skip to main content
Chroma is available as a package for Python, JavaScript, and Go. You can also run it in Docker or build from source.

Python

Requirements

  • Python 3.9 or higher
  • SQLite 3.35.0 or higher (automatically handled on most systems)

Install via pip

Verify Installation

SQLite Version Issue: Chroma requires SQLite 3.35.0 or higher. If you encounter an error about SQLite version:
  • Google Colab: Automatically handled with pysqlite3-binary
  • Other systems: Visit Troubleshooting SQLite for upgrade instructions

Python Client Types

Chroma provides several client types for different use cases:
In-memory client that doesn’t persist data. Perfect for testing.

JavaScript

Requirements

  • Node.js 20 or higher

Install via npm

Verify Installation

The JavaScript client (version 3.3.1) includes optional native bindings for better performance on supported platforms:
  • macOS (ARM64 and x64)
  • Linux (ARM64 and x64)
  • Windows (x64 and ARM64)

JavaScript Client Types

In-memory client for testing and development.

Go

Requirements

  • Go 1.23.0 or higher

Install via go get

Usage

The Go client is part of the Chroma server implementation. For client-side usage, consider using the HTTP API with a Go HTTP client.

Docker

Using Pre-built Image

The easiest way to run Chroma server is using the official Docker image:
1

Pull the Image

2

Run the Container

3

Verify It's Running

Using Docker Compose

For persistent storage, use Docker Compose:
Save as docker-compose.yml and run:

Docker Configuration

Common environment variables:
  • IS_PERSISTENT=TRUE - Enable persistent storage
  • CHROMA_OPEN_TELEMETRY__ENDPOINT - OpenTelemetry endpoint for observability
  • CHROMA_OPEN_TELEMETRY__SERVICE_NAME - Service name for telemetry
  • OTEL_EXPORTER_OTLP_HEADERS - OTLP headers for authentication

Install from Source

For development or to build from source:
1

Clone the Repository

2

Set Up Python Environment

3

Install Dependencies

4

Install Pre-commit Hooks

5

Install in Editable Mode

6

Build Rust Bindings (Optional)

For development with Rust components:

Development Setup

For distributed Chroma development with Kubernetes:
Requirements:

Run the Server

Once installed, you can run the Chroma server:
The server will start on http://localhost:8000 by default.

Verify Installation

Test your installation by connecting to the server:

Troubleshooting

If you see an error about SQLite version being too old:
For more details, see Troubleshooting SQLite.
If port 8000 is already in use:
Make sure the Chroma server is running and accessible:
The JavaScript client includes optional native bindings for better performance. If they fail to load, the client will fall back to a pure JavaScript implementation. This is normal and doesn’t affect functionality.

Next Steps

Quickstart

Get up and running with your first collection

Configuration

Configure Chroma for your use case

Deployment

Deploy Chroma to production

API Reference

Explore the full API documentation