jev-router
Per-turn model routing for Claude Code and Codex: wraps the real CLI and lets Jev send simple turns to fast models and hard ones to strong.
Overview
jev-router provides two commands, jev-claude and jev-codex, that launch the real Claude Code or OpenAI Codex CLI and let Jev choose the model for each fresh user turn. Simple work goes to the fast tier and difficult work to the strong tier, while each CLI's interface, tools, sessions, permissions and authentication stay unchanged; existing subscriptions mean no Anthropic or OpenAI API key is needed.
In Claude Code it appears as a 'Jev Router' entry in /model; selecting another model pauses routing. A status line shows the model chosen for the last turn and its probability. A bundled explanation skill shows the factors behind the last decision, such as task complexity, reasoning required, tool complexity and context size, plus the recommended tier and confidence. All CLI arguments are forwarded. It is a popular project in the ecosystem (593 stars in the input data) and is MIT-licensed.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which model tier should handle this turn? | haiku · sonnet · opus |
| Score | How complex is this task / how much reasoning does it need? | — |
How it works
- Launch jev-claude or jev-codex
- On each fresh user turn, Jev scores complexity factors
- Jev recommends a tier and the router selects the model
- The upstream CLI runs the turn unchanged
- Use /jev-explain to see the factors
Strengths
- Native CLI experience preserved
- Works with subscription logins
- Transparent per-turn explanations
Caveats
- Requires a TypeSafe key
- Routes only fresh user turns
- Name collision with another npm package noted by a different project
Getting started
npm install -g jev-router, echo "JEV_API_KEY=..." > ~/.jev-router.env, then run jev-claude or jev-codexAt a glance
- Type
- Proxy
- Status
- beta
- Language
- JavaScript
- Runtime
- Node CLI wrapper
- Has code
- yes
- License
- MIT
- Stars
- 593
Use cases and integrations
How curated lists describe it
Developer tooling: routes Claude Code tasks to the cheapest capable model by asking Jev to choose among candidates.
yibie/awesome-jevPer-turn routing for Claude Code and Codex: Jev sends simple work to the fast tier and hard work to the strong tier. `npm i -g jev-router`.
AnotiaWang/awesome-decision-modelsA Claude Code and CLI proxy that asks Jev to score task complexity and pick a model from the account’s available set.
logicrw/awesome-jev-projectsRoute to the cheapest model in claude code for your task using jev-router
wh000wh000/awesome-jev-liveChooses a model for each fresh Claude Code or Codex turn while wrapping the existing CLI.
cobanov/awesome-jevRoute to the cheapest model in claude code for your task using jev-router.
hellogumbo/awesome-jevPer-turn model routing for Claude Code and Codex. Simple work goes to the fast tier and difficult work to the strong tier.
MrJev/awesome-jev
Frequently asked questions
What does Jev decide?
Which model tier should handle each new user turn, based on complexity factors.
Do I need API keys for Claude or OpenAI?
No, if the CLI is already logged in with a subscription; only a Jev key.
Can I override it?
Yes. Picking another model in /model pauses routing.
Related projects
Local router for Claude Code and Codex that has Jev assess each new task, then pins a policy-chosen model and effort for the conversation.
ProxybetaTypeScriptCost-, cache- and quota-aware LLM router that classifies each turn with a Jev-class model, prices every route, and checks cheap answers.
ProjectprototypePythonTypeScript/Bun launcher that asks Jev which model and reasoning effort each Codex, Claude Code or Pi turn should use.
ProjectbetaTypeScriptGo CLI model router that uses one Jev analysis to recommend a model, harness and effort level, then selects deterministically.
CLIbetaGoClaude Code and Codex plugin where Jev judges each turn for model routing, delegation, evidence search and compaction.
ProjectbetaTypeScriptClaude Code, Claude Desktop and Codex plugin where Jev reads a task and ranks live models and reasoning effort by quality, speed and cost.
PluginbetaTypeScript