jev-router (prismhq)
Open-source LiteLLM-based router where clients send one model id and Jev picks which model serves each request.
Overview
jev-router (prismhq) is an open-source LLM router built on LiteLLM. Clients send a single model id, jev-router, to an OpenAI-compatible proxy, and Jev decides which model actually serves each request; the response's model field reports the choice. LiteLLM handles transport, so it can route across OpenRouter or any provider LiteLLM supports with your own keys.
A pre-call hook builds a minimised summary of the request (recent message roles and truncated text plus image and tool signals), filters candidates in a router policy file by capabilities such as vision, output length and tools, then picks with a Jev decider if a TypeSafe key is set or a cheapest-eligible rules decider otherwise. Any failure falls back to a configured model. Without a TypeSafe key routing stays local; with one, the minimised summary goes to TypeSafe, and the README advises against enabling Jev for workloads that cannot share context. It is experimental and MIT-licensed.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which eligible candidate model should serve this request? | — |
How it works
- Client calls the proxy with model jev-router
- Hook summarises the request and filters eligible candidates
- Jev (or the rules baseline) picks a model
- LiteLLM forwards to the chosen model; failures use the fallback
Strengths
- OpenAI-compatible drop-in
- Works without Jev via a cheapest-eligible baseline
- Capability filtering before any decision
Caveats
- Experimental; config may change
- Request summaries go to TypeSafe when enabled
Getting started
pip install "litellm[proxy]" pyyaml, export OPENROUTER_API_KEY (and optionally TYPESAFE_API_KEY), then litellm --config config.yaml --port 4000At a glance
- Type
- Project
- Status
- prototype
- Language
- Python
- Runtime
- LiteLLM proxy hook
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
LLM infrastructure: open-source LiteLLM-based router where a Jev decision picks which model serves each request.
yibie/awesome-jevAn open-source LLM router built on LiteLLM and Jev: dynamically routes requests based on task complexity and context.
logicrw/awesome-jev-projectsOpen-source LLM router that uses TypeSafe's Jev to pick a model, on top of LiteLLM.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev decide?
Which eligible model should serve each request.
Does it work without TypeSafe?
Yes. A cheapest-eligible rules decider runs by default.
What is sent to TypeSafe?
A minimised summary of the request, only when a TypeSafe key is set.
Related projects
Local-first routing engine for long-running agent tasks that uses a Jev decider to pick a model group per turn.
PluginproductionRust, TypeScriptOpen-source AI gateway for 100+ LLMs that can use Jev to classify requests for complexity routing and to compact tool results.
ProxyproductionPythonOpen-source workspace for running and reviewing AI coding agents across devices, with an optional Jev-based automatic model router.
ProjectproductionTypeScript- 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 - jev-codex-router★ 274
Per-call router for Codex where Jev picks the model and thinking effort for every model call, including tool continuations.
ProjectbetaPython Model router where Jev classifies each request's task family and code picks the cheapest capable model on a cost Pareto chain.
ProjectbetaTypeScript