Overview
HybridDB is one embedded database object that unifies SQLite rows, FTS5 keyword search, ChromaDB vectors, optional DuckDB analytics, and NetworkX graphs — with a self-healing journal and versioned tables.
HybridDB gives agents persistent, searchable memory — one embedded database object that coordinates SQLite, FTS5 keyword search, ChromaDB vector search, optional DuckDB analytics, and optional NetworkX graphs, all kept in sync by a self-healing journal.
It is embedded, local, and open source: no cloud APIs, no vector DB services, no internet connection required. Ships as a single Python package with zero external infrastructure dependencies. Used in production by the Executive Assistant agent system.
Every conversation turn is indexed and retrievable via keyword, vector, or hybrid search — with metadata pre-filtering, versioned audit trails, and time-travel reads designed for agent memory.
30-second start
from hybriddb import HybridDB, LONGTEXT, TEXT
db = HybridDB("./my_data")
db.create_table("docs", {"title": TEXT, "body": LONGTEXT})
db.insert("docs", {"title": "Getting Started", "body": "A guide to using HybridDB..."})
db.insert("docs", {"title": "API Reference", "body": "Full API documentation..."})
# Search every text column
db.search_all("docs", "getting started")
# Search one column — hybrid is the default (keyword + vector, RRF-fused)
db.search("docs", "body", "how do I begin", mode="hybrid")
# Structured query with parameters
db.query("docs", where="title LIKE ?", params=("%start%",))
Why HybridDB?
Every serious project that needs both keyword and semantic search ends up wiring SQLite + FTS5 + ChromaDB together by hand: schema creation, FTS5 triggers, Chroma collection management, keeping them in sync, recovering from crashes, rebuilding indexes. HybridDB does all of that once, done right.
What’s inside
Install, create tables, and run your first hybrid search in 60 seconds.
Column types, search modes, versioned tables, journal, chunking.
Constructor, schema, CRUD, search, versioned tables, graph and OLAP facades.
BEIR search accuracy, DuckDB mirror speedups, write-path tuning.
What shipped in each version — currently v0.8.0.
Feature status
| Feature | Status |
|---|---|
| SQL CRUD (insert, update, delete, get, query) | ✅ |
| FTS5 keyword search with BM25 scoring | ✅ |
| ChromaDB semantic/vector search with HNSW | ✅ |
| Hybrid search (RRF fusion of keyword + semantic) | ✅ |
Metadata pre-filtering (where= pushed into the vector scan) | ✅ |
| Versioned tables (tamper-evident history, time travel) | ✅ |
| DuckDB columnar analytics (optional) | ✅ |
| NetworkX graph algorithms (optional) | ✅ |
| Recency-weighted scoring | ✅ |
| Schema management (create, add/drop/rename columns) | ✅ |
| Self-healing journal (crash recovery) | ✅ |
| Long-document chunking helper | ✅ |
| Import/export, backup/restore | ✅ |
| Sync + async APIs | ✅ |
| No external API dependencies (works offline) | ✅ |
| Pluggable embeddings (sentence-transformers, OpenAI, custom) | ✅ |
Built on
| Technology | Role |
|---|---|
| SQLite | Primary store, WAL mode, row-level CRUD |
| FTS5 | Keyword search with BM25 scoring |
| ChromaDB | Vector/semantic search with HNSW index |
| DuckDB | Columnar analytics (optional) |
| NetworkX | Graph algorithms — PageRank, shortest path, community detection (optional) |
Alpha — actively developed, API may evolve. Core CRUD and search are stable with full test coverage (262 tests passing, 48 benchmark tests skipped by default). Currently used in production in the Executive Assistant agent system.
Source of truth for this page: HybridDB · open-assistants-lab/HybridDB