Skip to main content
Version: MVP

Local state layout

2 min readReferenceUpdated 2026-05-19

What you'll find here

The Craik product-home layout under ~/.craik/ (or $CRAIK_HOME) — what each subdirectory holds, the permissions posture, and the project-local opt-in rule.

One product home, opt-in project metadata.

Project-local .craik/ directories are opt-in only. Resolving local-state paths never creates project-local metadata inside a repository.

Default home

~/.craik/

CRAIK_HOME overrides the default.

Layout

~/.craik/
config/
secrets/
state/
cache/
logs/
receipts/
handoffs/
case-files/
projects/
Directory
Holds
Notes
config/
runtime
Local runtime configuration.
secrets/
credentials
Local credentials and tokens. Owner-only on POSIX.
state/
durable
SQLite databases and other durable runtime state.
cache/
disposable
Rebuildable local cache data.
logs/
operational
Local operational logs.
receipts/
audit
Capability receipts.
handoffs/
durable
Agent handoffs.
case-files/
task
Task case files.
projects/
registry
Project registry and project profiles.

SQLite is single-node local state.

The local store lives at state/craik.sqlite3. It is the persistence foundation for users who run Craik without Stigmem, but it remains single-node local state rather than shared Stigmem-backed truth.

What's next