jev-free-router
OpenCode plugin where Jev picks the best free Zen or Go model for each new message from the live catalogue.
Overview
Jev for OpenCode (jev-free-router) adds three pseudo-models to OpenCode: jev/jev, jev/jev-free and jev/jev-go. When one is selected, Jev estimates on every new message a distribution of which model in the OpenCode catalogue is best for the request, choosing among free Zen models, Go models when a Go account is connected, or both. OpenAI and Anthropic models are excluded even when listed. It replaces the former Claude Code and Codex launchers from jev-router.
Installation adds a file URL for the plugin to opencode.json and sets a TypeSafe key in the environment that launches OpenCode. The key is required; without it the plugin reports an explicit fallback rather than pretending to compute probabilities. Model quality scores come from a public snapshot, so no other keys are needed. It requires Node 22+ and was verified on OpenCode 1.18.31.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which catalogue model is best for this request? | — |
How it works
- Select jev, jev-free or jev-go in OpenCode /models
- On each message, ask Jev for a distribution over eligible model IDs
- Send the request to the chosen model
- Report an explicit fallback if no key is set
Strengths
- Routes among free models automatically
- Explicit fallback instead of fake decisions
- Uses OpenCode's real catalogue
Caveats
- Requires a TypeSafe key
- Verified on one OpenCode version
Getting started
Clone, `npm ci`, add the printed file:// plugin URL to opencode.json, `export JEV_API_KEY=...`, then `opencode models jev`.At a glance
- Type
- Project
- Status
- beta
- Language
- JavaScript
- Runtime
- OpenCode plugin (Node 22+)
- Has code
- yes
Use cases and integrations
How curated lists describe it
Dynamic per-turn model router on free OpenCode Zen + Go models.
wh000wh000/awesome-jev-live
Frequently asked questions
What does Jev decide?
Which free Zen or Go model should answer each message.
Are OpenAI or Anthropic models used?
No, they are excluded.
What if I have no key?
The plugin reports an explicit fallback rather than routing.
Related projects
OpenCode plugin adding an Auto (Jev) virtual model that routes each turn to one of your configured real models.
PluginbetaTypeScriptOpenCode orchestrator that keeps a cheap sticky parent model and escalates to strong child subagents only when Jev flags a hard turn.
ProjectbetaTypeScriptOpenCode plugin and proxy where Jev picks reasoning effort per step; superseded by reasoning-router.
ProxybetaTypeScriptHost-agnostic routing layer that picks model, effort and provider per round for coding harnesses from trajectory evidence.
ProxybetaTypeScriptCost-, cache- and quota-aware LLM router that classifies each turn with a Jev-class model, prices every route, and checks cheap answers.
ProjectprototypePythonLocal-first, outcome-aware model router for coding harnesses that picks a capability tier per task with Jev and learns from history.
ProjectprototypeRust