Skip to content

jev-harness-router

Per-turn router: one ~350 ms Jev call picks model tier, effort, tools and skill, with a hard deadline and regex fallback.

Agent skillbeta

Overview

jev-harness-router decides how an agent turn should run before the harness spends time on the real work. It asks four questions about the turn in a single Jev call behind a deadline it may not miss: model tier and effort budget are derived in code from a Score of difficulty and scope; tools are chosen with one Noul per tool plus a ranking Choice; and the skill is a Choice over the catalogue gated by four request-shape Nouls. The route reports its source (Jev, cache, shortcut or fallback), and a regex fallback applies when the deadline passes.

You define a catalogue of models (cheapest first), tools with risk levels and skills. Against a keyword baseline on 181 labelled turns, 127 from the author's own Claude Code sessions, the README reports the right skill 90.0 percent of the time versus 59.4 percent, and under-provisioning the model on 3.3 percent of turns versus 19.9 percent. A Claude Agent SDK adapter is included.

What the decision model decides

TypeQuestionAnswers
ScoreHow hard is this turn and how much does it touch?—
Yes / noDoes this turn need this tool?—
ChoiceWhich skill fits this turn (or none)?—

How it works

  1. Define a catalogue of models, tools and skills
  2. Prewarm the router at startup
  3. For each turn, one Jev call answers all questions under a deadline
  4. Derive tier and effort in code; fall back to regex on timeout

Strengths

  • Single call for four routing decisions
  • Hard deadline with fallback
  • Reported large gains over a keyword baseline

Caveats

  • Evaluation on 181 turns from one author
  • Requires a TypeSafe key

Getting started

`createRouter({ catalog })`, `await router.prewarm()`, then `await router.route({ message })`.

At a glance

Type
Agent skill
Status
beta
Language
TypeScript
Runtime
Library with Claude Agent SDK adapter
Has code
yes

Use cases and integrations

How curated lists describe it

  • Per-turn router for agent harnesses: one 350ms Jev call picks the model tier, effort, tools and skill, behind a hard deadline with a regex fallback. Claude Agent SDK adapter included.

    hellogumbo/awesome-jev

Frequently asked questions

What does Jev decide?

Turn difficulty, which tools are needed and which skill applies; tier and effort are derived in code.

What if Jev is slow?

A hard deadline triggers a regex fallback.

How well does it work?

90.0 percent correct skill versus 59.4 percent for a keyword baseline on 181 turns.

Related projects

  • Orchestrator that probes which coding agents are installed and logged in, then has Jev pick the best one for a task.

    Agent skillbetaPython
  • Hooks for Claude Code, Codex and pi that use Jev to suggest a skill each turn, plus a rule gate for subagent model routing.

    HookbetaJavaScript
  • Claude Code plugin that asks Jev before each turn for reasoning effort, subagent model, strategy and skill, with a decision log.

    Agent skillbetaTypeScript
  • Experimental plugin wiring Jev into coding-agent harnesses to pick skills, tools, models and browser moves, starting with OpenCode.

    Agent skillprototypeTypeScript
  • Chooses the model tier, skills and MCP servers for each coding-agent session with two Jev requests, then launches Claude Code or Codex.

    MCP serverbetaPython
  • Router that puts models, subagents, skills, MCP tools and CLIs in one candidate set and asks Jev one Choice about which handles the step.

    MCP serverbetaTypeScript