Python GUI Client For ChromaDB
Full Management and Visualisations
Introducing Chroma Flow Studio.
The swiss-army knife to ChromaDB - with every management task at your fingertips!
Promising to be the most comprehensive ChromaDB GUI client available!
Intended for Windows OS
But could be adapted for linux by creating the equivilant .sh scripts instead of .bat files
Whether you're a total beginner or veteran,
The aim is to lower the barrier to entry, and make learning, using, or developing with ChromaDB fast, easy,
and,
dare I say, even a little fun?
A Pure Python ChromaDB Client,
Using Flask HTML and javascript for the Front End UI.
Persists ChromaDB Data to disk by default
With over 15,000 Lines of code, this is one mighty App!
Here's a peek at what Chroma Flow Studio can do for you:
-
Dashboard Overview: Get a clear, concise snapshot of your entire ChromaDB setup right from the dashboard.
-
Collections Page: View all your collections, and perform essential actions like adding, copying, cloning, or deleting them – all with just a click. Plus, we've got handy templates for metadata and default settings to help you hit the ground running without the fuss.
-
Add Documents with Ease: No need to manually assign IDs! Documents can be added with auto-generated IDs, plus customizable metadata templates to save you time.
-
Bulk Document Imports and Updates: Need to add or update a lot of documents at once? No problem. Import documents in bulk with a simple JSON file, or update them in bulk too.
-
Document Management: Whether you need to update a single document, copy one, or delete them (individually, in groups, or all at once), Chroma Flow Studio makes it easy to manage your documents at lightning speed.
-
Document Overview: See all the important details of your documents – from IDs and contents to metadata and embeddings. Want to filter, edit, delete, or review your documents? It's all at your fingertips
-
Document Export: You can easily export documents to JSON, select the content and records you want, and even choose where to send them. Simple as that!
-
Similarity Searches: Run similarity searches - including the ability to filter for both documents and metadata. Precision searching has never been easier.
-
Quick Embedding Model Swaps: Test out different embedding models and compare their performance in mere seconds – perfect for finding the best one for your use case.
-
Cloning and Re-Embedding: Clone your data and re-embed it with a different model – a feature that ChromaDB's Python library doesn't even support natively, but I've added it here just for you!
-
Bulk Deletions Another feature that ChromaDB's Python library doesn't support natively - Clear all documents from a Collection instantly in just a click!
-
Flask Server Configuration: Easily configure the Flask server endpoint to suit your needs, with the flexibility to point to any ChromaDB SQLite file. Switching between them is as easy as flipping a switch.
-
Proxy Support: Using a proxy? No problem! Chroma Flow Studio supports that too.
-
Built-in Tools: UUIDs, Hashes, Timestamps, Embedding generation – all available on the fly. Need to generate synthetic data for testing? It's all ready to go. Plus, there's a handy token counter built right in.
-
Visualize your Data!: Get a graphical representation of your collections by Visualizing your data points! (NOTE: requires chrome/firefox/edge to render, if you have issues, try other browsers)
-
Python Code Snippets: At the bottom of the Collections / Documents / Update / Search Pages are Python code snippets showing how to perform those actions programatically. Just copy, paste, run, and done!
-
And More!
Chroma Flow Studio brings everything you need in one place, wrapped in a simple UI, with a range of tools built-in, detailed overviews, and embedded knowledge, everything is just a click away.
ChromaFlowStudio supports ChromaDB Versions 0.5.20+
including latest version (ChromaDB 0.6.1 as of writing this)
(if later versions of chromadb introduce a breaking change, try downgrading)
So...
Enough talk
How do we get started?
Pre-Requisites:
- ~300MB for the basic app, but ~1.7GB in Drive Space for all other libraries and dependancies (mainly torch)
- Python 3.10 (may also work in 3.11, but hasnt been tested)
- Pip 24.3.1
- VENV installed (optional, but HIGHLY, and STRONGLY recommended)
- ChromaDB 0.5.20+ to support hnsw config specified in metadata - tested and works on v0.6.1 too (latest as of writing this)
- Chroma-hnswlib==0.7.6+
- Set environment variable CHROMA_SERVER_CORS_ALLOW_ORIGINS=["*"]
- Check the requirements.txt for package version info
Install Instructions: (EASY METHOD)
- Download the ChromaFlowStudio#.#.#.####.zip (latest version)
and extract to any folder you like, for example C:\Program Files\ChromaDB\ChromaFlowStudio
- Edit the VENV_Create.bat
Amend the pythonPath to YOUR python 3.10 folder (where python.exe is located)
- Run the VENV_Create.bat to create the Virtual Environment
(it'll create a new 'venv' folder for you)
- Run the Install.bat
Let it install everything in the requirements.txt
- Use the Run.bat to launch Chroma Flow Studio!
OR
Install Instructions: (MANUAL METHOD)
- Download the ChromaFlowStudio#.#.#.####.zip (latest version)
and extract to any folder you like, for example C:\Program Files\ChromaDB\ChromaFlowStudio
- Open a new command prompt window (cmd.exe)
change to the directory where you decided to unzip ChromaFlowStudio:
cd "C:\Path\to\where\you\decided\to\install"
For example:
cd "C:\Program File\ChromaDB\ChromaFlowStudio"
- assuming you already have python 3.10 installed,
enter this command and press enter (this creates the virtual environment):
python -m venv venv
- activate the virtual environment with this command:
venv\Scripts\activate.bat
- Upgrade pip first
venv\Scripts\python.exe -m pip install --upgrade pip
- Install the requirements.txt
venv\Scripts\python.exe -m pip install -r requirements.txt
- Launch Chroma Flow Studio:
venv\Scripts\python.exe" app.py
Getting Started with Chroma Flow Studio
Creating Collections:
On the collections page, creating a collection is simple and easy.
Collection names are autogenerated for convenience, as are the configuration fields and metadata—but you can still configure all of them.
There are options to copy a collection's details to a new empty collection, or clone an existing collection, including all its data.
Deleting collections one at a time or in bulk is just a single button click.
Adding Documents:
You can add documents one at a time, including setting metadata.
There are quick buttons to set metadata templates with many useful attributes you could apply for a document.
Or, import documents in bulk.
You can also update documents individually or in bulk.
Viewing Documents:
On the view documents page:
- select your collection,
- apply filters,
- choose how many results to return,
and quickly see your document IDs, contents, metadata, and embeddings.
Searching:
Similarity search is simple and easy to use.
Plus, there are filter options for specific document contents and/or metadata fields to create dynamic and specific queries.
Quick buttons are provided to create your desired filters with speed, with full customization.
Visualize Data:
The Visualize page gives you a graphical representation of your collections so you can see how similar groups of documents are to one another.
It's also helpful to see how different embedding models generate different visuals on the same data, as a quicker way to see if they’re more accurate for your use case.
Exporting Data:
The export page lets you pick documents, metadata, embeddings, or all of them to export into a JSON file.
You can preview what data would be exported before committing to it
And configure the filename and output directory.
Simple.
Embedded Python Snippets
At the bottom of the Collections / Documents / Update / Search Pages
are Python code snippets showing how to perform those actions programatically.
Just copy, paste, run, and done!
Configure Flask Server and ChromaDB Database File
on the Settings page, you can change the port that Flask runs on if it conflicts with anything else you're running
You can also configure the path the the ChromaDB file - if one doesnt exist, it creates a blank one automatically, but can be used to point to existing chroma.sqlite3 files.
Also, if you're using a proxy, it can be set - leave field blank if proxy is not used.
Configure a prefix for collection names
Ability to set a prefix used in the Auto-name generation during the collection creation process.
Theres also language setting, that if configured, and if you specify a "languague":"" json metadata key, it automatically uses this value
Customize the Embedding Model
Select from a range of embedding models (as the default one that chroma installs with isn't great)
theres plenty to choose from, but you can also specify a custom one from hugging face (not all will work, its trial and error)
import data in bulk
upload a josn file to import 1000s x documents at once rapidly!
Links to Other Chroma DB GUI Clients
heres a list of other GitHub projects for Chroma GUI clients:
ChromaDash
https://github.com/coffeecodeconverter/ChromaDash
This is a HTTP Client UI, only works if you also have a HTTP ChromaDB Server running (default listens on 127.0.0.1:8000).
Ignore, if you're interested in python clients.
Chroma UI
https://github.com/thakkaryash94/chroma-ui
https://chroma-ui.vercel.app/
This is a HTTP Client UI, only works if you also have a HTTP ChromaDB Server running (default listens on 127.0.0.1:8000).
Ignore, if you're interested in python clients.
Chroma Peek
https://github.com/Pawandeep-prog/chroma-peek
A Python client for quickly viewing documents in your collections. Can run basic queries for similarity search
Chromagraphic
https://github.com/msteele3/chromagraphic
A Python client for quickly viewing documents in your collections. Can add documents, but not search them.
Vector Admin
https://github.com/Mintplex-Labs/vector-admin
This is a universal management tool that supports Chroma and pinecone databases, with the aim to support more in future.
Good UI that aims to simplify managing multiple vector databases through a unified interface.
Chroma DB Viewer
https://github.com/ill-yes/chromadb-viewer
This application is a simple ChromaDB viewer developed with Streamlit and Python. It allows you to visualize and manipulate collections from ChromaDB. You can select collections, add, update, and delete items.
Chroma Viewer
https://github.com/avantrio/chroma-viewer
A quick viewer for local Chrome DB
Chroma View Master
https://github.com/clearsitedesigns/chromaViewMaster
ChromaView Master is a Streamlit-based tool designed to help you understand, visualize, and manipulate Chroma database collections.
ChromaDB Web UI
https://github.com/treeleaves30760/chromadb-WebUI
This is a NodeJS Client with a Web UI Front End for viewing Chroma Collections.
ChromaDB UI
https://github.com/BlackyDrum/chromadb-ui
This is a NodeJS Client with a Web UI Front End for viewing Chroma Collections.
ChromaDB UI
https://github.com/seancheong/chroma-ui
This is a NodeJS Client with a Web UI Front End for viewing Chroma Collections.
ChromaDB UI
https://github.com/keval9098/chromadb-ui
This is a Python Client with a Web UI Front End for viewing Chroma Collections.
ChromaDB RAG
https://github.com/leporejoseph/streamlit_Rag
RAG System using ChromaDB to drive it



