Databases

CortexPrism uses multiple SQLite databases, each serving a specific purpose. All databases use WAL mode via @libsql/client for concurrent read/write performance.

Database Overview

DatabaseFileContentsMigrations
Corecortex.dbSessions, turns, jobs, policy rules001, 007, 009
Memorymemory.db5-tier memory, FTS5, embeddings002, 008
Lenslens.dbAudit events (all system activity)003
Vaultvault.dbEncrypted credentials + access log004
Pluginsplugins.dbPlugin registry005
Sessionsess_*.dbPer-session message history006

Migration History

MigrationDatabaseDescription
001_core.sqlcortex.dbCore schema: sessions, turns, jobs
002_memory.sqlmemory.db5-tier memory tables + FTS5 virtual tables
003_lens.sqllens.dbLens audit events table
004_vault.sqlvault.dbVault entries + access log
005_plugins.sqlplugins.dbPlugin registry
006_session.sqlsess_*.dbPer-session message store
007_jobs_v2.sqlcortex.dbJob scheduler columns
008_memory_embeddings.sqlmemory.dbEmbedding + decay columns
009_policy.sqlcortex.dbPolicy rules + default deny seeds

Data Directory Structure

~/.cortex/
├── config.json
├── data/
│   ├── cortex.db
│   ├── memory.db
│   ├── lens.db
│   ├── vault.db
│   ├── plugins.db
│   └── sess_*.db          (one per chat session)

Key Schemas

Memory (memory.db)

TablePurpose
episodic_memoryTurn summaries of user+agent exchanges
semantic_memoryInjected facts and knowledge
reflection_memoryLLM-extracted behavior patterns
episodic_memory_ftsFTS5 virtual table for keyword search
semantic_memory_ftsFTS5 virtual table for keyword search

Lens (lens.db)

TablePurpose
lens_eventsAll system events: LLM calls, tool calls, policy checks, session actions

Vault (vault.db)

TablePurpose
vault_entriesEncrypted credential storage (name, encrypted_data, service)
vault_access_logAudit trail of all credential access

Configuration

Database locations are configured via the data directory (default: ~/.cortex/):

# Override data directory
CORTEX_DATA_DIR=/data/cortex cortex chat