A Jev Router Alternative for Claude Code

Jev routers send each Claude Code turn to the cheapest Claude model that can handle it. AgentsRoom does the same job from the agent's own tab: it reads your message, picks the model, and switches before the message is sent. Nothing to install: no plugin, no separate proxy, no extra API key.

This page compares model routing only. Jev is TypeSafe's decision model, and the community has built many Jev tools for Claude Code (compaction, tool-call guards, rule selection). Here we look at the ones that choose the model: jev-router and its forks, and the jev-route plugin.

AgentsRoom: each Claude Code agent runs in its own terminal tab, with its model, status and history in one window.
AgentsRoom: each Claude Code agent runs in its own terminal tab, with its model, status and history in one window.

Two ways to route a turn

Jev routers for Claude Code

  • Community projects built on Jev, TypeSafe's decision model, open source under the MIT license
  • jev-router and its forks start a local proxy and launch the real Claude Code behind it
  • jev-route is a Claude Code plugin that rewrites the model of each request of a turn
  • One Jev call per new user turn picks Haiku, Sonnet or Opus, then the turn keeps that model
  • Needs a Jev key (TypeSafe, or Vercel AI Gateway or OpenRouter on some projects)
  • The decision shows in Claude Code's status line, with a command that explains it

AgentsRoom Adaptive Mode

  • Built into the AgentsRoom desktop app, off by default, switched on in Settings
  • Reads the message you type and suggests the cheapest model of your provider's line-up that fits
  • By default it runs on the first message of a conversation, with a chip you accept
  • Every message option: each later message is analysed too, so the model can change from one message to the next
  • Automatic option: the model of your next message changes before it is sent, with no relaunch, then you rate the choice
  • Suggestions work with Claude, Codex, Antigravity and the other CLIs AgentsRoom runs; Automatic is Claude Code and Codex for now. Nothing to install

Where the switch happens

Both read your prompt before the model answers, and in Automatic mode both change the model on the request path. The difference is what you have to install and run.

Jev: between Claude Code and Anthropic

The proxy, or the plugin's hook, sits on the request path. When a new user turn starts, it asks Jev which tier the prompt needs and rewrites the model of every request of that turn. Claude Code itself does not know it was routed: its interface, tools and sessions stay as they are. Pick another model in /model and routing pauses until you select the router again.

AgentsRoom: built into the app, started with the agent

AgentsRoom reads the first 500 characters of your message when you send it. In Automatic mode, Claude Code and Codex agents start connected to a small local server built into AgentsRoom: the model of the next request changes there, with no relaunch, nothing typed in the CLI and your login untouched. In Suggest mode, applying the chip uses the CLI's own model command. Either way the agent tab shows which model was picked, with thumbs to rate the choice.

Questions that have their own page

Feature comparison

The first rows are where Jev routers are ahead. The comparison is about routing first, then about everything around the agent.

FeatureAgentsRoomJev
Open source✗✓
Avoids switching when it would waste the prompt cache✗✓
Routes sub-agents separately✗✓
Explains each routing decision✗Status line + command
Override by writing "use opus" in the prompt✗✓
New model choice at each messageOption✓
Suggests before switching (your call)✓✗
Rate the routing choiceThumbs up or down✗
CLIs it routesClaude, Codex, Antigravity and moreClaude Code (Codex on jev-router)
What is sent to decideFirst 500 characters, to AgentsRoomPrompt text, to the Jev provider
Nothing to install (no plugin, separate proxy or third-party key)✓✗
Desktop GUI✓✗
Real-time agent status✓✗
Live terminal per agent✓Your terminal
Multi-project workspace✓✗
Drag and drop✓✗
Specialized roles✓✗
Model choice per agent✓Per turn
Agent config editor✓✗
Notifications✓✗
Mobile app✓✗
Setup30 secnpm or plugin + key

What AgentsRoom does not do, said plainly

Routing has trade-offs. These are ours.

It is not cache-aware

Changing model mid-conversation drops the prompt cache of the previous model: the first message on the new model re-reads the history at full price. jev-router refuses downgrades on large conversations and jev-route only leaves a routed model when its thresholds say so. AgentsRoom does not weigh that cost yet.

Automatic mode can add up to 4 seconds

In Automatic mode a message waits for the verdict, at most 4 seconds, then goes out whatever happens. Jev answers fast, and its routers only add latency to the first request of a turn.

A message sent while the agent works is not routed

The switch could only apply after the current turn, so AgentsRoom leaves that message on the current model. Messages between agents, team handoffs, scheduled messages and the queue are not routed either: you did not type them.

Not every agent switches the same way

The built-in local server serves Claude Code and Codex agents started after Automatic was turned on: restart an agent that was already open. An agent on a remote SSH host, or a CLI that already goes through your own proxy or API endpoint, is never rerouted: it switches with the CLI's own model command (Claude, Copilot, Grok, Kimi, Devin, Pi, OMP) or, for Codex, by resuming the conversation on the new model. Other CLIs keep their model until the next launch.

When a Jev router is the better choice

If one of these is you, a Jev router fits better than AgentsRoom.

You live in Claude Code's own terminal

You run one Claude Code session at a time, in your terminal of choice, and you do not want another app. A Jev router keeps Claude Code exactly as it is and only changes the model under it.

Your sessions are long and the cache matters

On a conversation that is already large, a downgrade can cost more in cache writes than it saves. Jev routers take that into account; AgentsRoom does not yet.

You want sub-agents routed too

jev-router pins the main conversation and each sub-agent separately. AgentsRoom picks one model per message you type; it does not choose a separate model for each sub-agent.

You want to read and change the policy

The routers are open source: thresholds, tiers and timeouts sit in the code, and you can fork them. AgentsRoom's routing runs on its servers and is not open source.

Per-message routing in AgentsRoom, in three settings

Settings > Composer > Adaptive Model. The same choices exist per project (project settings > Agents > Adaptive Model) and on the phone (Usage tab).

1

Adaptive Model: On

Off by default. While it is off, nothing reads your message and nothing is sent.

2

Every message: On

Without it, only the first message of a conversation is analysed. With it, each later message is analysed too.

3

When a better-suited model is found: Automatic

Suggest shows a chip you accept. Automatic changes the model before your message goes out, with no relaunch, including messages sent from the phone. It applies to agents started after you turn it on.

Frequently asked questions

What is a Jev router for Claude Code?
Jev is a decision model made by TypeSafe. It does not write code: it returns typed choices, such as which of three tiers a prompt needs. Community projects use it to route Claude Code: jev-router (the jev-claude command) and its forks start a local proxy and launch the real Claude Code behind it, and jev-route is a Claude Code plugin. On each new user turn they ask Jev whether the prompt needs Haiku, Sonnet or Opus, and send the whole turn to that model.
Does AgentsRoom do per-turn routing like Jev?
Yes, with two Adaptive Model options. Every message analyses each message you send, not only the first one, so the model can change from one message to the next. Automatic switches to the chosen model before your message is sent, instead of showing a chip you click: Claude Code and Codex agents change model through a local server built into AgentsRoom, with no relaunch. Both options are in Settings > Composer > Adaptive Model, and per project in the project settings.
Do I need to install anything or bring an API key?
No. Adaptive Mode is part of the AgentsRoom desktop app. There is no plugin to install, no separate proxy to start, no environment flag to set and no third-party key. In Automatic mode AgentsRoom itself starts Claude Code and Codex connected to a small local server inside the app, and your agent keeps talking to its vendor with your own login. Jev routers need a Node.js install or a Claude Code plugin, plus a Jev key.
What is sent to make the decision?
With AgentsRoom, the first 500 characters of your message go to AgentsRoom's servers, only while Adaptive Mode is on. With jev-router, the text of your prompt goes to TypeSafe, according to its README; jev-route sends it to the Jev provider you configured, or keeps it on your machine with Claude Code's built-in classifier when no key is set.
Which is better for the prompt cache?
The Jev routers. Switching model mid-conversation drops the previous model's prompt cache, and the next message re-reads the history at full price. jev-router refuses downgrades on large conversations and jev-route only leaves a routed model when its thresholds say so. AgentsRoom does not weigh that cost: if the cache matters more to you than the per-message saving, keep Every message off.
Does it work beyond Claude Code?
Jev routers for Claude Code route Claude models; the upstream jev-router also ships a jev-codex command for OpenAI Codex. AgentsRoom suggests within the line-up of whichever provider an agent runs on: Claude, Codex, Antigravity and the other CLIs it supports, always validated against the models that provider actually offers. The Automatic option, which switches without asking, works with Claude Code and Codex for now; with the other CLIs the chip suggests the model instead.
Can I use a Jev router and AgentsRoom together?
Yes, but not on the same agent. Two routers on one conversation would fight over the model. Keep your Jev router for the Claude Code sessions you run in your own terminal, and turn Adaptive Mode on for the agents you run in AgentsRoom. If an AgentsRoom agent is already pointed at your own proxy or API endpoint, AgentsRoom never reroutes it and falls back to the CLI's model command.
How many routing decisions do I get?
Adaptive Mode suggestions count against a monthly allowance: 500 on Free and Plus, 10,000 on Pro, and 10 without an account. Each analysed message uses one. When the allowance is spent, messages go out on the current model.

Other comparisons

AgentsRoom next to the other tools people compare it with.

The right Claude model at each message, with nothing to install

Download AgentsRoom, switch Adaptive Model on, and let each message go to the cheapest model that can do the job.

FreeDownload AgentsRoom

Companion app: monitor your agents on the go

Bring your own: Claude, Codex, Antigravity CLI, or other AI provider.

Get the extension
Chrome Web Store

Push bugs and requests straight to your public backlog.

Multiple projects
Multi-provider
Multiple agents
Live status
File diff & commit
Mobile companion
Live preview
Agent teams
Browser automation
Backlog-driven dev
Prompt Library
Skills Library
View all features