Keep it verbatim: Claude Code compaction without summaries
Most context compaction rewrites old turns into summaries, silently erasing exact errors and file paths; this plugin asks Jev to score every tool call and result, dropping only what is stale while keeping the rest word-for-word.

What it does
fast-jev-compaction is both an npm library and a Claude Code plugin that replaces the editor’s default compaction strategy. Instead of asking an LLM to summarize conversation history—which rewrites prose and often discards exact file paths, error strings, or constraints—it sends the full transcript to a model called Jev. Jev scores each tool call and result for relevance; stale pairs are removed or truncated, while everything kept stays verbatim and in original order.
The interesting bit
The project treats summarization as a bug rather than a feature. It avoids any rewriting of kept content by making discrete keep/drop/truncate decisions on individual tool interactions. To stay within token limits, it runs a staged compression pipeline on the conversation state—progressively truncating tool inputs, abridging long texts, and collapsing old messages—before firing parallel batched requests to Jev with the full compressed state repeated each time.
Key highlights
- Verbatim preservation: user messages, assistant text, and kept tool results are never rewritten
- Jev scoring: every non-pinned tool call and result gets a keep/drop probability judged against the full conversation context
- Staged fitting: crams state into ~25k estimated tokens via progressive truncation and collapsing before querying the model
- Parallel batching: splits questions across concurrent requests when history is large, merging answers afterward
- Graceful fallback: throws on failure or insufficient reduction, letting Claude Code fall back to its built-in summarizer
Caveats
- Only tool calls and results are compaction candidates; text messages are never removed from the output (they are only abridged in the state sent to Jev)
- Token counts are rough heuristics based on character counts, not real tokenizer output
- The full state is repeated in every parallel request, so histories near the 25k ceiling generate many requests
Verdict
Worth trying if you run long Claude Code sessions and are tired of summaries swallowing exact error messages or constraints. Skip it if you don’t have a TypeSafe API key or rarely hit context limits.
Frequently asked
- What is tamaratran/fast-jev-compaction?
- Most context compaction rewrites old turns into summaries, silently erasing exact errors and file paths; this plugin asks Jev to score every tool call and result, dropping only what is stale while keeping the rest word-for-word.
- Is fast-jev-compaction open source?
- Yes — tamaratran/fast-jev-compaction is open source, released under the MIT license.
- What language is fast-jev-compaction written in?
- tamaratran/fast-jev-compaction is primarily written in TypeScript.
- How popular is fast-jev-compaction?
- tamaratran/fast-jev-compaction has 3.3k stars on GitHub.
- Where can I find fast-jev-compaction?
- tamaratran/fast-jev-compaction is on GitHub at https://github.com/tamaratran/fast-jev-compaction.