Gobstopper
Local compaction proxy for Claude Code and Codex that compacts more often with local rules and keeps full history searchable.
Overview
Gobstopper replaces the compaction built into Claude Code and Codex. It runs as a proxy on localhost between your agent and the model API; past a token threshold it keeps the system prompt, the first task and the newest three turns verbatim, turns older turns into one summary using local rules with no model call, and forwards the smaller request. Every summarised turn stays in a local vault the agent can search and restore from, and session files on disk are unchanged.
The README reports that on Terminal-Bench 2.1 it used 29% fewer input tokens than Claude Code's built-in compaction while solving 61 versus 60 of 89 tasks, noting single-trial noise and that some trials may have run an earlier build. According to a list summary, Jev is one of the scorers that can decide what stays, and nothing is sent to a scorer until you choose one; the README excerpt reviewed does not describe the Jev scorer.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Should this older turn or item be kept verbatim?(inferred) | yes · no |
How it works
- Agent sends requests through the local proxy
- Past the threshold, keep head and recent turns verbatim
- Summarise older turns with local rules (optional scorer such as Jev)
- Store full history in a searchable local vault
Strengths
- Fewer tokens with similar task success (reported)
- Full history kept locally
- No model call needed for default compaction
Caveats
- Jev scorer optional and not described in the README excerpt
- Single-trial benchmark
Getting started
Ask your agent to set it up via https://gobstopper.sh, then run gobstopper proxy.At a glance
- Type
- Proxy
- Status
- beta
- Language
- Go
- Runtime
- local proxy
- Has code
- yes
Use cases and integrations
How curated lists describe it
A local proxy that compacts long Claude Code and Codex sessions as they run, with Jev as one of the scorers that decide what stays; nothing is sent until you choose one.
MrJev/awesome-jev
Frequently asked questions
Does Gobstopper require Jev?
No, Jev is one optional scorer; default compaction uses local rules.
How much does it save?
The README reports 29% fewer input tokens on Terminal-Bench 2.1.
Is history lost?
No, it is kept in a local searchable vault.
Related projects
Claude Code (and Codex) plugin that trims long Bash output chunk by chunk with Jev before it reaches the model, without summarising.
PluginbetaTypeScriptAgent skill that has Jev pick the few relevant lines from big logs before your coding agent reads them, with a reversible reduce and ledger.
ProjectbetaPythonLocal context-pruning proxy for Claude Code and Codex where Jev decides which history spans can be safely omitted.
ProxyprototypeTypeScriptArchived Go harness finding Jev tool steering does not reliably cut agent tokens in Claude Code or Codex; context trimming helped.
MCP serverresearchGo- fast-jev-compaction★ 7,616
Claude Code plugin and npm library that replaces the compaction summary with Jev keep, truncate or drop scores for every tool call.
PluginbetaTypeScript - winnow★ 110
Calibrated context sieve for Claude Code: Jev judges each block of large tool output and hides confident-no blocks behind recallable stubs.
Projectbeta