Keep Claude Code's context clean for sharper answers and lower cost, automatically.
npm i -g sipcode
sipcode initThat is it. Your next Claude Code session will use Sipcode automatically. Verify a few minutes later:
sipcode driftIf the output reads no drift, context health stable, Sipcode is doing its job.
Already installed? Keep it fresh. Sipcode makes zero network calls, so it can't pop an "update available" notice. Build a weekly habit: run
sipcode update(ornpm i -g sipcode@latest) to pull the latest fixes. Full details in Updating Sipcode.
Sipcode is a free command-line tool that sits between you and Claude Code. It does three things:
- It watches Claude Code's context window and warns you when it starts to bloat (we call this "context rot")
- It catches duplicate file reads and other waste before they reach Claude, so you pay less for the same answers
- It gives you receipts. Every saving is measurable in your terminal.
It is open source under the MIT license. It makes zero network calls during normal use. Your data never leaves your laptop.
| Sipcode | Tool A | Tool B | Tool C | |
|---|---|---|---|---|
| Approach | Live PreToolUse hook | Cross-session memory store | Static methodology | RAG retrieval server |
| Caps verbose tool output | ✓ | ✗ | docs only | ✗ |
| Dedups same-session re-reads | ✓ | ✗ | docs only | ✗ |
| Mid-session install support | ✓ Verified Warm-Fill | n/a | n/a | n/a |
| Zero false-dedup by construction | ✓ | n/a | n/a | n/a |
| Reproducible benchmark on locked corpus | ✓ 62.6% median (20 tasks) | ✗ | ✗ | ✗ |
| Self-introspection MCP tools | ✓ 15 tools | ✗ | ✗ | partial |
| Zero network calls in normal use | ✓ | ✓ | n/a | ✗ |
| MIT licensed | ✓ | ✓ | ✓ | ✓ |
Sipcode is complementary to memory tools that persist context across sessions (Tool A in the table). Sipcode keeps each individual session clean. They solve different problems. Run both for maximum effect.
Full feature-by-feature comparison with tool names revealed: anuj7411.github.io/sipcode/compare
If you use Claude Code for real work, you have already felt this:
- Long sessions get expensive fast. A two-hour session on Claude Max can burn through your daily plan
- Quality drops as the context window fills. Claude starts re-reading files, repeating itself, losing the thread of what you asked
- You cannot tell what is bloat and what is signal
Sipcode measures the bloat, then removes the parts Claude does not need. The savings are not theoretical. Run sipcode benchmark on any machine and you will see the same 62.6% median reduction on the locked 20-task corpus.
After installing, here are the five commands that show you what Sipcode is doing.
Tells you if your current Claude Code session is drifting from your normal usage pattern. Bloated context, repeated reads, stale signals are all flagged here.
✓ Sipcode drift: no drift, context health stable vs your recent baseline.
Shows what Sipcode caught in the current session, broken down by rewriter.
Sipcode proxy, rewrite stats
total rewrites: 144
est. tokens saved: ~288,685 (heuristic)
signal kept: 67% (med), weighted across all rewrites
Runs the locked 20-task corpus and produces a verifiable savings number. Anyone, anywhere can run this and get 62.6%.
62.6% median savings on a locked 20-task corpus
range 37.4% to 80.6% 3,567,170 tokens $67.43
Daily spend summary. Tokens used, sessions, output ratio, comparison to your 30-day median.
spend so far $1.20 across 4 sessions
tokens so far 943.8K output ratio 3.7%
Month-end projection based on your last 14 days.
projected month-end $17,674 (range $14,139 to $21,208)
Sipcode works on Mac, Linux, and Windows. You need Node.js 18 or newer.
Skip this step if you already have Node.js. Otherwise:
- Mac:
brew install node - Linux (Ubuntu / Debian):
sudo apt install nodejs npm - Windows: Download from nodejs.org
Verify it worked:
node --versionYou should see v18.0.0 or higher.
npm i -g sipcodeThis downloads Sipcode from npm and makes the sipcode command available everywhere.
If you see permission errors on Mac or Linux, try:
sudo npm i -g sipcodeVerify it installed:
sipcode --versionYou should see 1.6.18 or higher.
sipcode initThis command does four things:
- Creates a small
.sipcode/manifest.mdfile in your current project so Claude knows what your project is about - Adds a small block to your
CLAUDE.md(or creates one) with rules that keep Claude's replies terse - Installs the Sipcode hook into Claude Code, which is the thing that actually saves tokens
- Marks the date so
sipcode impactcan show you before-and-after savings later
You will see a checklist as it runs. Each step shows a checkmark when it completes.
The two questions it asks (and what to pick):
1. Manifest budget. How lean to keep the project summary Sipcode injects.
- tighten (recommended): auto-trims low-signal sections so the summary stays lean, and never blocks you.
- strict: hard-caps the manifest at 2k tokens and refuses if it would go over.
- off: no cap, the manifest can grow to any size.
2. Output compression rules. How terse Claude's replies are in this project.
- default (recommended): diff-style edits, no "here's what I did" preamble.
- strict: telegraphic, clipped replies, for power users who want maximum brevity.
- verbose: extra context and explanation, good while you are still learning the tool.
- skip: don't install reply rules at all.
Not sure? Take the recommended option in each. You can change either choice later: run sipcode rules --mode <default|strict|verbose> for the reply style, or re-run sipcode manifest to regenerate the summary.
Sipcode picks up automatically on the next tool call Claude makes. No restart needed in most cases. To be safe, you can close any existing Claude Code window and open a fresh one.
Now Claude Code will be using Sipcode in the background.
sipcode drift
sipcode proxy --statsIf drift says "no drift" and proxy --stats shows a few dozen rewrites with savings, everything is working.
Sipcode never checks for updates on its own. That would require a network call, and zero network calls in normal use is a guaranteed property of the codebase (a test fails the build otherwise). Updating is always a manual, explicit step.
To update to the latest version:
npm i -g sipcode@latestOr use the built-in helper:
sipcode update # prints your current version + the update command
sipcode update --run # runs the update in place for youAfter updating, confirm with sipcode --version and see what changed in the CHANGELOG. The MCP config never needs re-pasting; Claude asks the server for its tools on every reconnect, so new tools appear automatically.
Release cadence: patch releases ship whenever a fix or improvement is ready, often within a day or two of a reported issue. Since Sipcode can't notify you (zero network calls), a good habit is to run sipcode update about once a week. It's a one-second check, and --run upgrades you on the spot if something's new. Watch or star the repo to catch releases too.
| Feature | What it does for you |
|---|---|
| Context-rot detection | Warns when your Claude Code session is starting to behave worse than your norm |
| Re-read deduplication | Catches duplicate file reads and skips them, saving tokens and time |
| Compression-integrity scoring | For every saving, tells you what percentage of the original signal was kept |
| Spend telemetry | Daily, monthly, projected. All from your own transcripts, no cloud upload |
| Task cost estimation | Predicts what a coding task will cost across Opus, Sonnet, and Haiku before you run it |
| Codebase health score | Rates your repo 0-100 on how easy it is for an AI agent to work in |
| MCP server | 15 tools registered for Claude Desktop, so you can ask Claude itself about your usage |
| Reproducible benchmark | A locked 20-task corpus that anyone can run and verify |
Yes. MIT license. No tracking. No telemetry sent to us. No paid tier. You can read every line of source code on GitHub.
No. Sipcode makes zero network calls during normal use. Everything runs locally on your machine. We have a privacy test that fails if any network code is imported into the source.
See the comparison page. The short version: Sipcode is the only one with a published reproducible benchmark, zero false-dedup by architecture, and mid-session install support.
When Claude's context window fills up with stale, repeated, or off-topic information, the quality of its answers drops. Sipcode measures this with sipcode drift and removes most of the waste with the proxy hook.
Today, only with Claude Code (since Claude Code is the only tool that exposes the hooks Sipcode needs). Support for other CLIs is something we are exploring.
npm i -g sipcode@latestOr run sipcode update to see your version and the command, or sipcode update --run to update in place. Sipcode never auto-checks for updates (zero network calls), so updating is always explicit. See the CHANGELOG for what changed.
sipcode proxy --uninstall
npm uninstall -g sipcode| Command | What it does |
|---|---|
sipcode init |
Set up Sipcode in a project (manifest + CLAUDE.md + proxy hook) |
sipcode update |
Show how to update to the latest version (or --run to update now) |
sipcode hygiene |
Install Session Hygiene: read-once rules + context-pressure hooks |
sipcode rules |
Install, switch, or inspect the output-compression rules in CLAUDE.md |
sipcode manifest |
Generate or refresh the project manifest |
sipcode drift |
Check if the current session is drifting from your norm |
sipcode proxy --stats |
See what the proxy caught this session (also --install / --uninstall) |
sipcode benchmark |
Run the locked 20-task corpus for a verifiable savings number |
sipcode estimate |
Predict what a task will cost across models before you run it |
sipcode today |
Today's spend summary vs your 30-day median |
sipcode stats |
Cumulative token savings across all sessions |
sipcode forecast |
Month-end spend projection from your last 14 days |
sipcode trend |
Track one metric over time, to see if it's getting better |
sipcode why |
Per-session forensics: where your tokens died |
sipcode impact |
A/B compare your spend before vs after Sipcode |
sipcode score |
Audit your repo for AI-friendliness (0-100, tiered badge) |
sipcode receipt |
Generate a shareable PDF receipt of a session |
Run any of them with --help for full options.
Tip: which session do these report on? sipcode why, today, and stats look at your most recent session across all projects by default, not the folder you happen to be standing in. So if you run sipcode why inside project A but project B had the most recent activity, you will see project B. To scope a command to the project you are currently in, add --here (for example, sipcode why --here). Use sipcode why --list to see every session and pick one with --session <id>.
- Node.js 18 or newer
- Claude Code installed (for the proxy hook). Sipcode also works as standalone CLI tools (benchmark, score, etc.) without Claude Code installed.
MIT. See LICENSE.
Built with care for the indie developers who burn through their Claude Max plan in two hours. The 62.6% benchmark methodology is documented in benchmark/METHODOLOGY.md. Anthropic's published research on context-window quality informs the integrity-scoring approach.