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:- EphemeralClient
- PersistentClient
- HttpClient
- CloudClient
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
- HTTP Client
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:Using Docker Compose
For persistent storage, use Docker Compose:docker-compose.yml and run:
Docker Configuration
Common environment variables:IS_PERSISTENT=TRUE- Enable persistent storageCHROMA_OPEN_TELEMETRY__ENDPOINT- OpenTelemetry endpoint for observabilityCHROMA_OPEN_TELEMETRY__SERVICE_NAME- Service name for telemetryOTEL_EXPORTER_OTLP_HEADERS- OTLP headers for authentication
Install from Source
For development or to build from source:Development Setup
For distributed Chroma development with Kubernetes:Run the Server
Once installed, you can run the Chroma server:http://localhost:8000 by default.
Verify Installation
Test your installation by connecting to the server:Troubleshooting
SQLite version error (Python)
SQLite version error (Python)
If you see an error about SQLite version being too old:For more details, see Troubleshooting SQLite.
Port already in use
Port already in use
If port 8000 is already in use:
Connection refused
Connection refused
Make sure the Chroma server is running and accessible:
Native bindings not found (JavaScript)
Native bindings not found (JavaScript)
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