Skip to content

Jev Tools & CLIs

Routing Models, Tools, and Skills with Jev

Every coding agent ships more than one model, and picking between them is a narrow decision. How the routers hand model choice, tool activation, and gateway policy to Jev without breaking the harness.
Published
Category
Jev Tools & CLIs
Resources cited
6
Reading time
4 min
Tags#routing#models#coding-agent#gateway

Every coding agent now ships more than one model, and picking between them is a decision — narrow, repeatable, and exactly the kind of question a language model should not be spending reasoning tokens on. A new cluster of tools hands that choice to Jev.

Route the model, keep the harness

jev-router wraps Claude Code and Codex without replacing them: both commands launch the real upstream CLI, and Jev only chooses the model for a fresh user turn. No Anthropic or OpenAI API key is required when the CLI is already logged in with a subscription, and the status line shows the decision it made, for example haiku p=0.98 with 8% context. A bundled /jev-explain skill renders the factors behind the last routing decision, which is what makes the router debuggable.

jev-codex-router takes the same idea into Codex with four Choice questions in one request: mandatory policy, capability tier, thinking depth, and a route lease. It relays the native Responses stream verbatim, so tool calls, reasoning, and compaction behave natively, and it logs every routed turn locally for later calibration. Two defaults are worth knowing: it fails open on any Jev error, and a sentinel-file kill switch routes without Jev instantly.

Route at the gateway

The other half of this category sits between an OpenAI-compatible client and many providers. jev-router (prismhq) points any client at a proxy with the model name jev-router, filters candidates on vision, output length, and tool support before any decision is made, and reports the serving model in the response. Transport is LiteLLM, so it routes across OpenRouter or anything LiteLLM supports, and without an API key a rules-based decider picks the cheapest eligible model.

JevRouter separates the decision from the policy around it: Jev owns the probabilities, while JevRouter owns availability, permissions, risk, and confirmation, and filtered candidates are never re-normalized. On ten Toolathlon tasks predicting the first five tool calls, its serial strategy hit 38% of positions against 24% for DeepSeek V4.1 Flash at 1.58 s per task, and a decompose-plus-thread strategy reached 44% hits on MCP-Atlas.

Route tools and skills, not just models

The same judgment applies inside a single turn. pi-jev activates only the tools and skills a prompt needs instead of loading everything, with one shared threshold of 0.65 across the router, tools, skills, and auto mode, plus a gate CLI that exits 0, 1, or 2 so CI can branch on the verdict. Jevonian narrows it further: only the jevonian/auto alias consults Jev, and it errors instead of guessing when no brain is configured or every configured brain is unreachable.

Design notes

  • Keep the harness native. Route the model, then hand the stream back untouched.
  • Show the decision. A status line and an explain command turn routing from magic into something you can tune.
  • Decide the failure mode deliberately: fail open when routing is an optimization, fail closed when it is a gate.
  • Log every routed turn. Thresholds should come from your own traffic, not the README.

Routers that are the open models

The routers above all call the hosted API. The open ecosystem now offers the router itself as a downloadable checkpoint. Decision 2.0 Vega comes from the vLLM Semantic Router project: 29.37B parameters, JevArena 74.0, Decision Index 56.5, and a 71.4 ms median on one GPU. Strands Decider targets agent plumbing directly — model routing, tool selection, and triage from a 2B checkpoint that serves /v1/systemone locally, with sample outputs published for both routing questions. And Mapika's readout reached #2 of 70 on Decision Index v0.2.1 without any fine-tuning at all, just a config that reads option letters at a fixed answer slot.

The reason to consider one is the same reason the hosted routers exist: routing decisions want to succeed at 60 to 100 ms, not seconds. The reason to hesitate is calibration. A local router's probabilities are yours to fit — GEV-26B's card ships two calibration files, one for leaderboard scoring and a gold variant for gating — so a threshold copied from a hosted router does not transfer. Keep the harness-native and show-the-decision rules above: they are what make either choice debuggable.

The tools category collects the rest, including per-turn routers, gateways, and tool selectors.

From the Jev directory

The resources behind this article.

602GitHub stars
Wrappers for Claude Code and OpenAI Codex that ask Jev to choose a model tier for each fresh user turn while preserving each CLI's native interface, tools, sessions, permissions, and authentication. Ships as the jev-claude and jev-codex commands.
Jev Tools & CLIs#community#javascript#claude-code
275GitHub stars
Local Codex Router extension that asks Jev for a model tier and thinking depth on each model call, including continuations after tools, then relays the native Responses request verbatim. Fails open on Jev errors and logs decisions locally.
Jev Tools & CLIs#community#javascript#codex
14GitHub stars
An OpenAI-compatible LiteLLM proxy where clients send one model id and Jev picks which configured model serves each request, with capability filtering and a cheapest-eligible fallback.
Jev Tools & CLIs#community#python#routing
474GitHub stars
A router that turns models, subagents, skills, MCP tools, CLIs, and plugins into one candidate set Jev answers with a single typed Choice, while the router code owns availability, permissions, and confirmation.
Jev Tools & CLIs#community#typescript#routing
A Pi coding-agent extension that routes tools and skills with Jev: one pass activates only what a prompt needs, with opt-in model selection, tool-call guards, and compaction.
Jev Tools & CLIs#community#typescript#coding-agent
27GitHub stars
An experimental local proxy for coding agents that sends jevonian/auto turns to Jev to pick a model and thinking level after deterministic compatibility and quota filters, while explicit routes skip Jev.
Jev Tools & CLIs#community#typescript#routing
Back to all articles

More Jev articles

How Pydantic AI, Mastra, TanStack AI, DSPy, Spring AI, and LiteLLM expose Jev: where the typed decision sits in the loop, what each integration returns, and which big frameworks are only adjacent.
Jev Integrations & Adapters#agents#frameworks#integrations
Read article
Tool menus can outgrow the context that reads them. The catalog's Jev-based routers and gates narrow the list: benchmarked tool search, per-tool scoring, fail-closed approvals, and WebMCP in the browser.
Jev Agents & MCP#mcp#tool-routing#agents
Read article

From the Jev AI model community

Posts from builders shipping with Jev right now.

Follow @typesafeai