save
/jkz:save preserves the reasoning context of the current session so it survives the chat window. It writes two things: a structured snapshot (consumed by /jkz:load) and a human-readable .claude/context.md. Because multiple Claude Code chats can run on the same project, saving is how knowledge crosses between them — see cross-chat awareness.
Usage
/jkz:saveNo arguments. /jkz:save reads the current session and captures everything relevant.
What it captures
flowchart TD
mem["Read session memory<br/>(incremental, Haiku-maintained)"] --> ctx["Build reasoning context<br/>(done · decisions · next steps · gotchas)"]
ctx --> bg["Capture background tasks<br/>(crons; note for non-enumerable bg)"]
bg --> snap["Write snapshot<br/>state/session-snapshots/<id>.json"]
snap --> md["Write .claude/context.md<br/>(human-readable)"]
- Session memory as the base. Any incrementally maintained session memory seeds the snapshot, then is enriched with what this session adds.
- Reasoning context. A concise record of what was completed, the decisions made (with rationale), what worked and what didn’t, the next steps, and the gotchas to watch for.
- Background tasks (best-effort). Crons are enumerable and recorded. Background subagents and background bash shells are not enumerable — they live inside the session and die when it closes — so if any were started, they’re noted as free text rather than dropped silently.
- The snapshot is written per-session to
state/session-snapshots/<session-id>.json. .claude/context.mdholds the same information in a short, human-readable form (10–20 lines): what was worked on, current state, key decisions, and active branches.
Why it matters
A snapshot is what lets a different chat run /jkz:load and continue your work with full reasoning context — not just the git state. The session id keys the snapshot; if it is unset, the snapshot falls back to anonymous, which weakens cross-chat continuity and token attribution.
You rarely call this directly
/jkz:quit runs /jkz:save internally as its first step, so an orderly shutdown already captures context. Call /jkz:save on its own when you want a mid-session checkpoint without quitting.