Memory Layer & Vector Store
Umbra maintains a single SQLite database shared across all your projects. There are no per-project .sqlite files.
Database
Section titled “Database”- Path:
~/.umbra/main.sqlite(or$UMBRA_HOME/main.sqlite) - Mode: WAL (
PRAGMA journal_mode = WAL) for concurrent reads - Vector extension:
sqlite-vecloaded at connection time
Schema
Section titled “Schema”metadata table — general-purpose key-value store, scoped by project_path and namespace. Used for settings, cached values, and any structured data that doesn’t need semantic search.
vectors table + per-project virtual tables — each project gets its own vec_project_{key} virtual table backed by sqlite-vec. Rows in vectors hold the content, source reference, session ID, and the model that produced the embedding. The virtual table holds the raw float vectors for KNN search.
Embeddings
Section titled “Embeddings”Embeddings are generated locally via @huggingface/transformers using the onnx-community/all-MiniLM-L6-v2-ONNX model (384 dimensions). The model weights are downloaded automatically on first use and cached in ~/.umbra/cache/transformers/. No data leaves your machine for embedding.
To check embedding status:
umbra doctor # shows "SQLite readiness" with model name, cache path, and ready=true/falseDisabling auto-download
Section titled “Disabling auto-download”Set embeddings.autoDownloadEnabled to false in ~/.umbra/settings.json if you want to pre-provision model weights manually or run in an air-gapped environment.