system-one-router
OpenAI/Anthropic-compatible Go gateway where Jev or Laya rates topic, complexity, risk and privacy to pick the cheapest adequate LLM.
Overview
system-one-router is a Go gateway that exposes /v1/chat/completions and /v1/messages. Clients send model "auto" and a System One decision model, Jev through OpenRouter or Laya running locally, answers four typed questions about the prompt in one call: topic, complexity, risk and whether it contains private data. Plain arithmetic over config.yaml then picks the cheapest model that clears the quality floor, with load penalties and daily budgets included in the cost estimate.
It is for teams that want to cut LLM spend without an LLM-as-router prompt. A pre-check catches secrets and PII before anything leaves the machine, and a local_only mode keeps private requests on local models. An optional check-and-escalate step uses one yes/no call to judge the answer and resend weak ones to a stronger model. Decisions and ratings are logged so model skills can be refit, and a built-in dashboard shows spend and routing reasons. The README reports, on 80 labelled prompts with Jev 1.13, 89% topic accuracy and 43% lower model cost than always using Opus.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | What is the topic of this prompt? | — |
| Score | How complex is this prompt? | — |
| Score | How risky is this request? | — |
| Yes / no | Does the prompt contain private data? | — |
How it works
- Client sends a request with model auto to the gateway.
- Pre-check scans for secrets, PII and size.
- The decision model answers topic, complexity, risk and private-data questions in one call.
- Config arithmetic picks the cheapest model above the quality floor.
- Optionally judge the answer and escalate once to a stronger model.
Strengths
- Drop-in for OpenAI SDKs, OpenCode and Claude Code.
- Private requests can be restricted to local models.
- README reports decision latency of 268 ms p50 and $0.04 per 1k decisions with Jev.
Caveats
- Benchmark covers 80 labelled prompts.
- Jev use goes through OpenRouter and needs a key; Laya is the local alternative.
Getting started
cp .env.example .env (add an OpenRouter key), then go run ./cmd/gateway, which listens on 127.0.0.1:8787.At a glance
- Type
- Benchmark
- Status
- beta
- Language
- Go
- Runtime
- HTTP gateway + MCP server
- Has code
- yes
- Has tests
- yes
- License
- Apache-2.0
Use cases and integrations
How curated lists describe it
A fast System One decision model (Jev or local Laya) picks which LLM answers each prompt: OpenAI-compatible Go gateway + decision benchmark.
hellogumbo/awesome-jev
Frequently asked questions
What does the decision model decide?
Topic, complexity, risk and private-data presence for each prompt; code then picks the model from those answers.
How is it different from an LLM router?
There is no router prompt; typed probabilities feed fixed arithmetic over a config file.
Can I use it with Claude Code?
Yes, it speaks the Anthropic messages API and also provides an MCP server with route, delegate and feedback tools.
Related projects
Host-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- 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 Claude Code mod that sets model and effort per turn and subagent from a prompt classifier: Jev by default, or Clef, OpenAI or Ollama.
ProxybetaTypeScript/Bun launcher that asks Jev which model and reasoning effort each Codex, Claude Code or Pi turn should use.
ProjectbetaTypeScript