Skip to content

jevprune

Prunes long command output for coding agents by asking Jev which lines matter for the task, keeping original text and order.

Projectbeta

Overview

jevprune filters long command output, such as test logs, before a coding agent reads it. Given a task description and the command, it sends candidate output lines to Jev, which selects the ones relevant to the task; retained lines keep their original text and order, and dropped runs collapse into a marker pointing to the full log saved on disk. The README shows a 2,979-line test log reduced to 54 lines for the task 'fix the failing auth test'.

It ships as a Claude Code plugin using early-access function hooks that prune eligible Bash results after they return, a global CLI and a library. Without a key, or on any error, rate limit or malformed answer, it falls back to rules: the first and last 40 lines plus every error line with three lines of context, and it names the reason in a footer. The plugin passes results through untouched until a key is configured. Blank lines and rule-kept lines are not sent to TypeSafe.

What the decision model decides

TypeQuestionAnswers
Yes / noIs this output line relevant to the task?(inferred)—

How it works

  1. Command finishes with long output
  2. Rules keep head, tail and error context; remaining candidate lines go to Jev with the task
  3. Jev's selections are kept in original order; dropped runs become markers
  4. Footer reports line counts and the full-output log path
  5. On any failure, rule-based fallback is used and the reason shown

Strengths

  • Large context savings on long logs
  • Original lines preserved verbatim with pointers to full output
  • Graceful fallback that never fails the command

Caveats

  • Needs an early-access TypeSafe key for model selection
  • Claude Code function hooks are early access
  • Output lines are sent to the hosted API

Getting started

claude plugin marketplace add ibrahemid/jevprune && claude plugin install jevprune@jevprune, or npm i -g jevprune; set CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 and a TypeSafe key.

At a glance

Type
Project
Status
beta
Language
TypeScript
Runtime
Claude Code plugin, CLI, Node library
Has code
yes

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does Jev decide?

Which lines of a command's output are relevant to the current task.

What if I have no key?

The CLI uses rule-based pruning; the plugin passes output through unchanged.

Can the agent still see dropped lines?

Yes, the full output is saved to a log file referenced in the footer.

Related projects

  • Pi extension that dedupes repeated file reads and, opt-in, has Jev mark passing-test noise in long logs, with verbatim recall.

    BenchmarkbetaTypeScript
  • 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
  • Recursive language model layer for coding agents that keeps inputs in a local evaluator, with optional Jev judge_many for typed calls.

    ProjectbetaRust
  • Local proxy for Claude Code that uses Jev to remove stale tool results from the context once it reaches about 120K tokens, failing open.

    ProjectbetaJavaScript
  • Agent plugin that asks Jev whether the session is at a safe boundary to /compact and can trigger it on Pi and Claude Code.

    PluginbetaTypeScript