Skip to content

jev-skills

Claude Code and Codex plugin that removes skills from context and lets Jev decide each turn which SKILL.md bodies to inject.

PluginbetaMIT

Overview

jev-skills treats skill selection as a routing problem rather than a reasoning one. Instead of listing every skill name and description in the model's context, a hook builds a small state (the prompt, the last three assistant turns and any tool output) and asks Jev one yes/no question per skill: would this skill's instructions be used now? Skills at or above the threshold have their full SKILL.md body injected once per session.

It targets Claude Code and Codex users whose skill libraries cost tokens on every turn. The hook also fires after Read, Bash, Grep, Glob, WebFetch and WebSearch results, so a skill can arrive mid-task when a file mentions something relevant. Above 1,200 skills a BM25 prefilter keeps the top 400 before asking Jev. The README reports exact precision in its measured rows and costs from $0.0002 per turn for 23 skills to $0.019 for 3,024 sent directly. Failures fail open.

What the decision model decides

TypeQuestionAnswers
Yes / noWould this skill's instructions be used now?—

How it works

  1. Hook fires on UserPromptSubmit and after selected tool results
  2. Build state from prompt, last three assistant turns and tool output
  3. One Noul per skill (chunked, parallel; BM25 prefilter above 1,200 skills)
  4. Inject SKILL.md bodies scoring above threshold once per session; fail open on error

Strengths

  • Zero always-on context cost for skills
  • README reports 250-450 ms and about $0.0002 per turn for 23 skills
  • Skills can be triggered by tool output, not only the prompt
  • Key stored in Claude's credential store, not settings files

Caveats

  • Jev account rate limits bound very large libraries
  • Jev judges names literally, which the author notes broke a category stage
  • Measurements come from the author's own runs

Getting started

claude plugin marketplace add eran-broder/jev-skills && claude plugin install jev-skills@jev-skills --config typesafe_api_key=<key>

At a glance

Type
Plugin
Status
beta
Language
TypeScript
Runtime
Claude Code / Codex plugin
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Skills without the context tax. Claude Code and Codex plugin: TypeSafe's Jev decides on every turn which skills the model sees. Always-on context cost: 0 tokens.

    logicrw/awesome-jev-projects
  • Skills without the context tax. Claude Code and Codex plugin: TypeSafe's Jev decides on every turn which skills the model sees. Always-on context cost: 0 tokens.

    hellogumbo/awesome-jev

Frequently asked questions

What question does it ask Jev?

One Noul per skill: would this skill's instructions be used now?

How does it scale to thousands of skills?

It chunks requests to fit Jev's 64k-token limit and, above 1,200 skills, prefilters to 400 with BM25.

What happens if Jev is unavailable?

The hook fails open and the prompt continues without injected skills.

Related projects

  • Pre-message hook that keeps or drops SKILL.md files before the first model call, using local overlap or Jev keep/drop judgments.

    HookbetaPython
  • Toolkit where Jev condenses large MCP responses for Claude Code and maps Codex requests to reviewed, fixed repository operations.

    ProjectbetaTypeScript
  • Agent skill that has Jev pick the few relevant lines from big logs before your coding agent reads them, with a reversible reduce and ledger.

    ProjectbetaPython
  • Gives an agent one tool that uses Jev to search a nested capability tree and return only the documented commands a task needs.

    ProjectprototypeTypeScript
  • MCP server with record and recall tools: facts are logged during a session and Jev keeps only those relevant to the next task.

    MCP serverbetaTypeScript
  • Claude Code plugin where Jev asks one yes/no per standing rule and delivers only the rules relevant to each prompt, once per session.

    ProjectbetaJavaScript