Automatic Claude model routing for Claude Code

jev-router is a free Claude Code plugin that picks the right model (Haiku, Sonnet, Opus) and reasoning effort for every prompt, step and subagent, caps expensive effort, protects your prompt cache and shows the choice above your prompt.

Install in 30 seconds View on GitHub See the benchmarks jev-router sends each Claude Code task down the right track: haiku, sonnet, opus or fable

Install the Claude Code plugin

/plugin marketplace add dominicrico/jev-router
/plugin install jev-router@jev-router

Then /jev key <your TypeSafe key> (or set TYPESAFE_API_KEY) and run /jev status. That is the whole setup: the lean preset is on by default.

Measured against always using Opus: minus 97 percent on small tasks, minus 65 percent on everyday work, minus 61 percent on hard tasks with 39 of 40 done, minus 56 percent on agent runs with subagents with 18 of 18 done.

See every pick, live

The band above the prompt stepping through its states: idle, running, haiku, sonnet, capped opus, ceiling, pinned, escalated, paused, off.

What you get

Nine features: right model per prompt, re-routes every step, routes subagents, effort cap, Sonnet ceiling, cache guard, live band, per-prompt control, privacy controls. How it works in six steps: a task arrives, ask Jev, check the cache, cap the effort, re-ask each step and route subagents, show it above the prompt.

Does it reduce Claude Code costs?

Yes, on most work, and the benchmarks say where it does not. Every number is a real Claude Code run (hard tasks are graded by hidden tests the agent never sees), and the raw runs are in the benchmarks folder.

Harder tasks graded by hidden tests, mean cost per run as a percentage of always opus: always sonnet 38 percent, jev-router lean 39 percent with 39 of 40 done.

Is it for you?

Great for Opus-by-default users, many small tasks, agent runs with subagents and anyone who wants to see which model runs. Skip it if plain Sonnet already does all your work or you live in one huge warm session.

Long warm sessions are the honest weak spot: the cache guard cuts model switches from 6 to 1 and halves cache re-writes, but the bill stayed the same, and lean averaged Opus cost there while plain Sonnet was 43% cheaper.

Measured long sessions, 5 per strategy: always opus 48 cents, always sonnet 27, jev-router balanced with and without the cache guard 67 and 68, lean 48 with a range of 26 to 63 cents.

Commands

Cheat sheet: /jev status, /jev preset, /jev ceiling, /jev cap, /jev full, /jev key, and the prompt markers !opus, !sonnet, !haiku, !full, !cheap.

Every option, preset and the privacy details are in the reference.

FAQ

How do I switch between Opus, Sonnet and Haiku automatically in Claude Code?

Install jev-router. It picks per prompt, again before each step, and once per subagent. Pin one prompt with !opus, !sonnet or !haiku.

How do I reduce Claude Code token cost?

Send easy tasks to cheaper models and cap the reasoning effort. jev-router does both: small tasks −97%, everyday work −65% against always Opus. If plain Sonnet already does your work, use that; it was cheapest on the hard set.

What is the effort cap?

Jev often asks for xhigh reasoning on hard tasks, which can triple the tokens. The default lean preset limits effort to medium; !full lifts it for one prompt.

Does the prompt cache guard work?

On switches, yes: 6 to 7 down to 1, and cache re-writes halve. It did not lower the bill in long warm sessions, where plain Sonnet is the cheapest safe choice.

Does it send my code anywhere?

The prompt, optionally recent messages, and subagent task text go to api.typesafe.ai. Keys, tokens, private keys and password= style values are redacted first, and sendHistory turns the history off. Pattern redaction is not a guarantee.

Will it slow Claude Code down?

Each Jev call adds about 250 ms. After three failed calls in a row it pauses for a minute and keeps the current model.