Skip to content

Jev Harness Router

TypeScript router that spends one Jev call deciding how an agent turn should run — model tier, effort budget, which tools are on offer and which skill applies — then your own harness runs the turn on whatever provider it already talks to.

Stars
4
Language
TypeScript
License
MIT
Published by
Community
Author
JoacoMarc
Last verified
Oct 2026

About this project

One fast call decides how an agent turn should run — then runs it. Before a harness spends a second on the real work, it has to answer four questions about the turn in front of it. This asks all four in a single Jev call, in about 350 ms, behind a deadline it is not allowed to miss.

Quoted from the project's README. Read the full README.

Highlights

  • Model tier and effort are derived in code from a single score rather than asked, so one call covers four routing decisions.
  • Tools are gated by risk level: read at 0.35, write at 0.6, execute at 0.8, with a per-tool override available.
  • defineCatalog keeps literal names, so route.tier and route.skill are unions of your own tiers and skill ids.
  • Regex hints feed only the offline heuristic that acts as the deadline fallback and the eval baseline; Jev never sees them.

Watch out

The shipped 600ms deadline was fitted on one machine in Buenos Aires, and the README tells you to run npm run calibrate for your own or pass deadlineMs explicitly. The eval set is 181 labelled turns of which 127 are the author's own Claude Code sessions, so the labelled data is not independent of him. Past the deadline the router falls back to a regex heuristic, which means a routed turn can silently come from keyword matching rather than Jev — route.source reports which path answered. Per-tool risk floors live in code on purpose, because the message driving the decision is untrusted input and Jev does not treat state as hostile by default. createRouter() with no catalogue runs a shipped example, which the README says is fine to try and wrong to ship. Copy reviewed against the repository README on 2026-10-04, not from running it.

Questions about this entry

Short answers drawn from the linked project or page.

More Jev resources like this

11GitHub stars
Standalone Flue example that routes support chat through Cloudflare Workers AI, using gpt-4o-mini for chat and Jev for typed intent and urgency routing.
Jev Demos & Experiments#community#awesomejev#catalog-import
8GitHub stars
Zod 4 companion that adds Jev meaning checks to shape checks: one parseAsync call sends every semantic rule as noul questions in a single request and turns probabilities into ordinary Zod issues.
Jev Repos & SDKs#community#jevbest#catalog-import
8GitHub stars
Early-alpha Haskell DSL for building Jev question packets as expressions with inferred types, exact request rendering, and exhaustive typed answer handlers.
Jev Repos & SDKs#community#jevbest#catalog-import
6GitHub stars
Terminal coding agent on Pi where Jev shortlists skills, ranks retrieved excerpts, and triages tool failures while the coding model handles reasoning and edits.
Jev Agents & MCP#community#awesomejev#catalog-import
3GitHub stars
TypeScript layer that binds a Standard Schema state to Jev Choice, Score, and Noul questions, validating locally before sending one parallel request with typed projections.
Jev Repos & SDKs#community#jevbest#catalog-import
5GitHub stars
Zero-dependency Node bridge that exposes Jev through OpenAI-style chat and responses endpoints with streaming, plus a CLI, a code-audit tool, and an auto-fix loop.
Jev Repos & SDKs#community#awesomejev#catalog-import

From the Jev guides

Original write-ups on what this entry is for.

Closed weights have not stopped the ecosystem from rebuilding the shape in the open. API-compatible servers, retrained heads on small models, and inference-time tricks that skip generation entirely.
Jev Repos & SDKs#open-models#research#local
Read article
Back to all resources

From the Jev community

Posts from builders shipping with Jev right now.

Follow @typesafeai