openclaw-jev-compaction
OpenClaw context engine that asks Jev which tool calls and results are still needed and drops the rest verbatim, never summarising.
Overview
openclaw-jev-compaction is a context engine for OpenClaw that keeps long sessions inside the context window without lossy summaries. It asks TypeSafe's Jev, looking at the whole conversation, which tool calls and results a session still needs, then drops or truncates spent ones such as used directory listings, passing test runs or files read before being rewritten. User and assistant text is never rewritten, so file paths, exact errors and constraints survive.
A single Jev request scores dozens of calls in about a second; the README's example log shows a 71% reduction from about 48K to 14K tokens. It takes OpenClaw's exclusive context-engine slot, compacts at a configurable percentage of context, and can be reverted to the legacy engine. It was built by the Hilo team, inspired by the fast-jev-compaction Claude Code plugin.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Should this tool call or result be kept, truncated or dropped?(inferred) | keep · truncate · drop |
How it works
- When context reaches compactAtPercent, send the conversation to Jev.
- Jev scores each tool call and result.
- Drop or truncate spent ones; keep pinned and protected items.
- Continue with verbatim remaining text.
Strengths
- No summarisation; original text preserved.
- Large token reductions in one request.
- Easy to revert to the built-in engine.
Caveats
- Requires a TypeSafe key.
- Dropped tool output is not recoverable from context.
Getting started
openclaw plugins install openclaw-jev-compaction --accept-capabilities, set TYPESAFE_API_KEY, then restart the Gateway.At a glance
- Type
- Project
- Status
- beta
- Language
- TypeScript
- Runtime
- OpenClaw plugin
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Verbatim context compaction for OpenClaw: a context engine powered by TypeSafe's Jev. Drops stale tool calls and results, never summarizes.
logicrw/awesome-jev-projects
Frequently asked questions
Does it summarise conversation history?
No, it only removes or truncates tool calls and results Jev deems spent.
How fast is it?
A single Jev request scores dozens of calls in about a second.
How do I undo it?
Set contextEngine to legacy or remove it.
Related projects
- 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.
ServicebetaPythonLocal proxy for Claude Code that uses Jev to remove stale tool results from the context once it reaches about 120K tokens, failing open.
ProjectbetaJavaScriptClaude Code /fc command where Jev picks which old tool outputs to keep whole; the rest are trimmed and saved to files.
ProjectbetaTypeScriptLocal 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.
PluginbetaTypeScript