Your agent forgets. This doesn't.
Every turn of every session, plus the findings and decisions the agent chose to keep. Pick
a task back up tomorrow, after
/clear, or on another machine.
npx innings-cli@latest init
npx innings-cli@latest init --project
hooks in every project on this machine
hooks in this repo only
Node 20+ · secrets scrubbed before upload · uninstall removes only what it wrote
Get started
Four steps, once per machine. Nothing changes in how you use Claude Code afterwards.
-
01
Check what you have
Claude Code, installed and opened at least once — init installs into it, and stops if it can't find it. And Node 20 or newer:
node -v -
02
Sign in and create a token
The token is how this machine's sessions reach your account. Sign in with Google or GitHub, open Settings, and create one under API tokens. Keep the tab open — you paste it in the next step.
Sign in and create a token -
03
Run init in a terminal
For every project on this machine:
npx innings-cli@latest initOr only the repo you're in: add
--project. To see every file it would change first, add--dry-run.It installs three hooks, registers its tools with Claude Code, then asks for the token — paste it and press Enter. Your own hooks are left untouched, and your settings are backed up first.
-
04
Restart Claude Code
Quit and reopen it — the hooks and tools load when a session starts. Your first session asks what to call the task you're working on; that question is how you know it's working. Answer, or type
skip, and work as normal. Turns appear on your dashboard as you go.
If something's off
zsh: command not found: innings
Expected — installing through npx puts nothing on your PATH, and Claude Code
doesn't need it to. To type innings
commands yourself, add it once (init prints the line for your shell; this is zsh):
echo 'export PATH="$HOME/.innings/bin:$PATH"' >> ~/.zshrc
Then open a new terminal. Or skip it and use the full path:
~/.innings/bin/innings doctor.
Claude Code was not found on this machine
Install Claude Code and open it once, so it creates its settings, then run init
again. If it lives somewhere unusual, add
--force.
that token was rejected, or you skipped it
The install itself is done. Create a fresh token in Settings and paste it here:
~/.innings/bin/innings login
nothing shows up on my dashboard
Make sure Claude Code was restarted after init. If it was, doctor checks every piece — hooks, tools, token, server, and whether anything is stuck in the local queue — and says what to run for whatever is wrong:
~/.innings/bin/innings doctor
Upgrading: when a new version is out,
your next session says so, with the exact command to run.
Removing:
npx innings-cli uninstall takes
out the hooks and tools, and nothing else.
What it looks like
AND THIS IS WHAT IT KEPT
beyond a minute, doctor should say unreachable rather than the queue quietly growing
two machines that lost the server together were retrying in lockstep
2 secrets scrubbed before upload — jwt, aws-key
Exactly two things get captured
No summaries you didn't ask for, no telemetry. The log is the conversation itself, plus what the agent chose to pin to it.
01 Raw turns
The prompt you sent and the response you got, verbatim, appended once per turn. Entries are immutable — nothing is edited after the fact, so the log reads the way the session actually went.
02 Context, when it earns its place
After each turn the agent decides whether anything else is worth keeping — a finding, a decision, a constraint. If yes, it is attached with a one-line reason. If not, nothing extra is stored.
Wired in, not just written down
Instructions alone don't survive a long session. Innings installs Claude Code hooks, so the protocol holds even when the context doesn't.
- a session starts, clears, resumes or compacts
- re-injects the protocol, and briefs the agent on the open task
- every turn, on Stop
- appends the raw turn, scrubbed, and queues it if the server is down
- a turn edits files but logs nothing
- nudges the agent to record what it decided
Claude Code only, for now.
The whole CLI
After init these run as
~/.innings/bin/innings <command>,
or as plain innings once
it's on your PATH.
- innings init
-
Sign in, register the MCP server, install hooks. Global by default,
--projectfor one repo. Idempotent, and supports--dry-run. - innings doctor
- Is the MCP server registered, is the token valid, is the server reachable, did the hooks fire recently.
- innings login
- Store a new API token, when the one from init was skipped, rejected or revoked.
- innings uninstall
- Removes every block it wrote, and only those blocks.