Jevia
Local-first, outcome-aware model router for coding harnesses that picks a capability tier per task with Jev and learns from history.
Overview
Jevia is an open-source model router for coding harnesses such as Claude Code, Codex, OpenCode, Gemini CLI, Cursor Agent or a custom harness. For each task it chooses a capability tier, applies your safety policy, and uses recorded execution history and optional outcome feedback to inform future routes, closing the loop that most routers leave open: task, route, harness, automatic observations, then routing context for next time. Tiers are stable and mapped by an adapter to whichever models your harness exposes, so it is model- and harness-agnostic.
It is local-first: policy, a deterministic cache and history stay in your project or database. Recording is passive and needs no extra tests or manual feedback, though feedback and verification can be added; your verifier or feedback decides success and Jevia does not grade its own work. A CLI installs as a checksum-verified binary, with commands to route, run through a harness, record feedback, view runs and stats, and set up harness presets, plus a typed Node.js SDK. Doctor checks configuration without an API call. The README marks it experimental, with notes about upgrading stores together. MIT licensed.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which capability tier does this coding task need? | — |
How it works
- Task submitted via CLI or SDK
- Jev chooses a capability tier with history as context; safety policy applied
- Adapter maps tier to a concrete model and the harness runs
- Outcomes recorded passively, with optional feedback, for future routing
Strengths
- Learns from recorded outcomes
- Harness- and model-agnostic tiers
- Local-first storage and deterministic cache
- Does not self-grade
Caveats
- Experimental; schema changes require coordinated upgrades
- No managed control plane in the repo
Getting started
curl -fsSL https://jevia.dev/install.sh | sh, then `jevia init` and `jevia route "investigate the failing integration test"`.At a glance
- Type
- Project
- Status
- prototype
- Language
- Rust
- Runtime
- CLI + Node SDK
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
outcome-aware & adaptive model routing for coding agents with deterministic cache powered by Jev
logicrw/awesome-jev-projectsOutcome-aware & adaptive model routing for coding agents with deterministic cache powered by Jev.
hellogumbo/awesome-jevLocal-first, outcome-based router for coding harnesses: it picks a capability tier per task, applies your safety policy, and learns from recorded execution history.
MrJev/awesome-jev
Frequently asked questions
What does Jevia decide?
A capability tier for each task, which your adapter maps to a model.
Does it need manual feedback?
No, recording is passive; feedback and verification are optional.
Which harnesses are supported?
Claude Code, Codex, OpenCode, Gemini CLI, Cursor Agent and custom harnesses.
Related projects
Cost-, cache- and quota-aware LLM router that classifies each turn with a Jev-class model, prices every route, and checks cheap answers.
ProjectprototypePythonLocal OpenAI/Anthropic-compatible proxy where one Jev call picks the model route and thinking level for each coding-agent turn.
ProxybetaGoLocal-first macOS coding workspace that runs your agents and lets a local Laya or hosted Jev selector pick a route the host validates.
ServicebetaRustHost-agnostic routing layer that picks model, effort and provider per round for coding harnesses from trajectory evidence.
ProxybetaTypeScript- jev-router★ 593
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.
ProxybetaJavaScript TypeScript/Bun launcher that asks Jev which model and reasoning effort each Codex, Claude Code or Pi turn should use.
ProjectbetaTypeScript