Install
Munin is a single local Rust binary. Build from source.
cargo install --path . --force
munin init
munin resume --format prompt
Put munin.exe first on PATH. On Windows, a common layout is %USERPROFILE%\.local\bin before the Cargo bin directory.
Verify
munin --version
munin gain
munin resume --format prompt
If the resume brief returns <startup_memory_brief>, you are wired up. If it returns <memory_packet>, the proof gate hasn't cut over yet — run the promotion check below.
Hook setup
Claude Code and Codex each have their own hook surface. Run the matching initialiser once per home:
munin init # local project hook
munin init --codex # Codex hook wiring
munin init -g # global hook (writes into your home config)
munin init -g --codex # global Codex hook
The read surface
Everything Munin knows is inspectable. Same output for the agent and the human.
Session briefs
munin resume --format prompt
munin pack --preset handoff --format prompt
Memory OS projections
munin memory-os overview --scope user
munin memory-os profile --scope user
munin memory-os friction --scope user
munin memory-os promotion
munin memory-os brief --scope user --format prompt
Project kernel
munin memory-os snapshot --project .
munin memory-os kernel --project .
munin memory-os actions --project .
munin memory-os trust --scope user
Strategy import
For strategy recommend to produce grounded nudges, Munin needs a strategy source to compile into its kernel.
# bootstrap from a template
munin strategy setup --scope sitesorted --template
# or import an existing strategy doc
munin strategy setup --scope sitesorted --import ./strategy/ops.md
# or delegate to the Claude strategic-planning skill
munin strategy setup --scope sitesorted --bootstrap-claude
Once imported:
munin strategy status --scope sitesorted
munin strategy recommend --scope sitesorted
Command compression
Prefix any shell leaf command with munin. If a dedicated filter exists, output compresses. Otherwise it passes through unchanged. Safe to use anywhere.
munin vitest run
munin cargo test
munin tsc
munin next build
munin git diff
munin gh pr view 123
Chain the same way:
munin git add src/foo.ts && munin git commit -m "fix foo"
Proof gate
Resume and handoff only stay on the memory brief while the latest replay/eval against dev-public / proposed-kernel is verified. If proof drops, Munin auto-falls-back to the packet path.
munin memory-os promotion --format text
# establish proof
munin replay-eval run \
--root tests/fixtures/replay_eval \
--split dev-public \
--system proposed-kernel \
--format json
Rollback
Every cutover is reversible via env flag. Useful for A/B comparison with the deterministic packet path.
MUNIN_MEMORYOS_READ_MODEL_V1=0
MUNIN_MEMORYOS_RESUME_V1=0
MUNIN_MEMORYOS_HANDOFF_V1=0
MUNIN_MEMORYOS_STRICT_PROMOTION_V1=0
Where data lives
All state is local. No cloud. No telemetry pipeline. The telemetry salt file is 0600 and device-local. Session history, journal events, and projections live under your home directory.