yoshi
Local context-pruning proxy for Claude Code and Codex where Jev decides which history spans can be safely omitted.
Overview
Yoshi sits between Claude Code or Codex and the Anthropic or OpenAI API. Coding agents resend their entire conversation on every request, much of it completed tool input, tool output and teammate reports. Above a configurable size gate (about 50,000 estimated input tokens by default), Yoshi splits eligible content into spans of about 1,200 characters and asks Jev, one span per request with up to eight in flight, two questions: would a required fact be lost, and would a binding user constraint be lost. Each request carries the current task, earlier constraints, action chronology and retained evidence.
Only validated omissions are applied: removed spans become explicit markers, while tool IDs, names, file paths and other fields stay byte-identical, and failed or timed-out judgments keep their span. Human instructions, assistant notes and errors are protected, and cached omissions are replayed without rejudging. It is an MIT-licensed proof of concept with measured benchmarks; the authors say the real version is moving into CompozyOS, where judging will happen between turns to remove request-path latency.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Would a required fact be lost if this span were omitted? | yes · no |
| Yes / no | Would a binding user constraint be lost if this span were omitted? | yes · no |
How it works
- Intercept a request from Claude Code or Codex.
- Above the size gate, split new eligible content into spans.
- Ask Jev two questions per span; apply only validated omissions.
- Forward the pruned request and stream the response back.
Strengths
- Keeps tool protocol structure intact.
- Protects human instructions and errors.
- Benchmarks are measured, not just claimed.
Caveats
- Proof of concept; adds latency on the request path.
- Development moving to CompozyOS.
At a glance
- Type
- Proxy
- Status
- prototype
- Language
- TypeScript
- Runtime
- Bun local proxy
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Context management: proxy for Claude Code and Codex where Jev judges which conversation history is still needed before pruning.
yibie/awesome-jevContext-pruning proxy for Claude Code and Codex, employing Jev to prune redundant history while keeping tool protocols intact.
logicrw/awesome-jev-projectsExperimental Claude Code/Codex proxy that uses Jev to prune request context while preserving tool-call protocol structure.
cobanov/awesome-jevContext-pruning proxy for Claude Code and Codex: Jev judges which history is still needed, measured not claimed. POC here now, heading soon into https://github.com/compozy/compozy.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev decide?
Whether omitting a history span would lose a required fact or a user constraint.
Can pruning break tool calls?
Tool IDs, names and paths stay byte-identical; only span content becomes an omission marker.
Is it production-ready?
No, it is a proof of concept moving into CompozyOS.
Related projects
Local compaction proxy for Claude Code and Codex that compacts more often with local rules and keeps full history searchable.
ProxybetaGoClaude 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.
ProjectbetaPythonArchived Go harness finding Jev tool steering does not reliably cut agent tokens in Claude Code or Codex; context trimming helped.
MCP serverresearchGo- 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 Codex hook that compacts large command and tool outputs, using Jev to rank which chunks matter and keeping the full output retrievable.
ServicebetaPython