Storage Configuration
Crucible uses a daemon-backed storage architecture. All storage operations go through the daemon, which manages SQLite and LanceDB internally.
How It Works
Section titled “How It Works”The daemon is the only storage backend. It starts automatically on first use via DaemonClient::connect_or_start() and manages all data access.
Data is stored in:
<kiln_path>/.crucible/crucible-sqlite.db(notes, metadata, FTS index)<kiln_path>/.crucible/lance/(vector embeddings)
Configuration
Section titled “Configuration”[storage]# Seconds of inactivity before daemon auto-shuts down (default: 300)idle_timeout_secs = 300Daemon Socket
Section titled “Daemon Socket”The daemon listens on a Unix socket, resolved in order:
$CRUCIBLE_SOCKETenvironment variable$XDG_RUNTIME_DIR/crucible.sock/tmp/crucible.sock
Backward Compatibility
Section titled “Backward Compatibility”Old storage.mode values (sqlite, lightweight, daemon) are silently accepted but have no effect. The daemon is always used. Remove storage.mode from your config to avoid the deprecation warning.
Source of Truth
Section titled “Source of Truth”The database is derived data — a cache built from your markdown files. You can delete .crucible/crucible-sqlite.db and rebuild with cru process --force at any time.