SQLite Store
Lightweight SQLite backend using Grove ORM with sqlitedriver.
The SQLite store (store/sqlite) provides a lightweight, embedded backend using the Grove ORM with sqlitedriver. It implements the full store.Store composite interface and is well-suited for single-process deployments, local development, and testing.
Setup
import (
"github.com/xraph/grove"
"github.com/xraph/grove/drivers/sqlitedriver"
"github.com/xraph/cortex/store/sqlite"
)
// Open a SQLite connection via Grove's sqlitedriver.
db := grove.Open(sqlitedriver.New("cortex.db"))
s := sqlite.New(db)
if err := s.Migrate(ctx); err != nil {
log.Fatal(err)
}Internals
| Aspect | Detail |
|---|---|
| Driver | Grove ORM with sqlitedriver (SQLite) |
| Migrations | Grove migration orchestrator with programmatic migrations |
| Transactions | Database-level transactions via SQLite |
Tables
The SQLite store creates the same tables as the PostgreSQL store:
| Table | Entity |
|---|---|
cortex_agents | Agent configs |
cortex_skills | Skills |
cortex_traits | Traits |
cortex_behaviors | Behaviors |
cortex_personas | Personas |
cortex_runs | Runs |
cortex_steps | Steps |
cortex_tool_calls | Tool calls |
cortex_memories | Memories |
cortex_checkpoints | Checkpoints |
Composite store interface
The SQLite store implements all 8 sub-interfaces:
type Store interface {
agent.Store
skill.Store
trait.Store
behavior.Store
persona.Store
run.Store
memory.Store
checkpoint.Store
Migrate(ctx context.Context) error
Ping(ctx context.Context) error
Close() error
}Usage with engine
eng, err := engine.New(
engine.WithStore(s),
)When to use
- Local development -- single-file database, no server process required.
- Testing -- fast, isolated store with no external dependencies.
- Embedded / single-process -- CLI tools, desktop apps, or edge deployments.
- CI pipelines -- deterministic tests without a database container.