Innings Privacy Sign in

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

What it looks like

~/work/checkout-api
$ npx innings-cli@latest init
  installing hooks      ok
  registering mcp server ok
  merging CLAUDE.md     ok
  restart Claude Code and work as normal
$ innings status
  wal-flush-retry-backoff  in progress  23 turns
  claude-md-merge-safety   done       11 turns
$

AND THIS IS WHAT IT KEPT

decision the cap stays at 60s

beyond a minute, doctor should say unreachable rather than the queue quietly growing

change jitter on every retry delay

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

innings init
Sign in, register the MCP server, install hooks. Global by default, --project for 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 status
Open tasks for this repo, and anything still pending in the local queue.
innings uninstall
Removes every block it wrote, and only those blocks.