Storage
Squeezy keeps automatic state below one SQUEEZY_HOME, separates durable project records from rebuildable caches, and gives each checkout a stable machine-local project identity.
One home, three configuration tiers
SQUEEZY_HOME defaults to ~/.squeezy on Unix and %LOCALAPPDATA%\Squeezy on Windows. User settings live in $SQUEEZY_HOME/config/settings.toml. A portable squeezy.toml is the Project tier, and $SQUEEZY_HOME/projects/<project-id>/config/settings.toml is the machine-private Local tier.
The random 32-character project ID comes from projects/registry.toml; it is not a hash of the checkout path. Moving a checkout on the same filesystem normally preserves the identity. Use squeezy projects list, show, relink, forget, and prune to maintain aliases without deleting durable project state.
What lives in a project namespace
Each $SQUEEZY_HOME/projects/<project-id>/ namespace has config and trust inputs, durable state, rebuildable cache, process runtime, and explicit artifacts. Sessions live under state/sessions/, plans and checkpoints under state/recovery/, and default exports and reports under artifacts/.
state/state.db is precious. cache/derived.db holds rebuildable tool and session caches, while cache/ledgers.db holds independently versioned savings, shell-shaping, loop, and spend history. cache/graph/graph.db is the materialized query store; parse-cache.db is the independently versioned parse/resolver accelerator.
squeezy storage paths
squeezy projects list Inspect and move storage
Startup resolves project identity before project stores open; derived sources are deleted and rebuilt rather than migrated. Storage and projects JSON output is stamped with schema_version 1.
A home move is explicit: squeezy storage move validates the destination and prints the stop, move, set SQUEEZY_HOME, and restart procedure.
squeezy storage paths --json
squeezy storage move --to /absolute/path Back up durable data; clean derived data
Back up global config, user, auth, and state, projects/registry.toml, and each project's config, trust, ui, state, and artifacts trees.
squeezy storage clean is class-gated. Derived cleanup removes global cache and the current project cache by default, including ledgers.db, graph and search indexes, tool outputs, and derived backups. Add --project <project-id> to limit cleanup to one project. Precious recovery backups, exports, reports, telemetry, registry records, and crash archives are preserved.
squeezy storage clean --class derived --dry-run
squeezy storage clean --class derived --project <project-id> --yes
squeezy storage clean --class runtime --dry-run Portable and explicit external paths
Repository .squeezy/skills, .squeezy/prompts, .squeezy/agents, and .squeezy/shapers remain portable inputs, not automatic state destinations. Managed Git worktrees live at <main-checkout>/.worktrees/<slug>.
An explicit session, browser, editor, export, report, install, or generated-output path remains externally owned. Named browser profiles live under $SQUEEZY_HOME/state/browser/profiles/, while project browser runtime lives under projects/<project-id>/runtime/browser/.