GitHub · by Natoshi
Jev Codex Router
Jev picks the model and the thinking effort for every Codex turn.
Natoshi’s router sits in front of Codex and chooses a model and a reasoning effort together for each model call, including the continuations after a tool runs. The goal is enough capability for the next decision and no more quota than that. Every route runs at standard speed.
Codex talks to a forked Codex Router on port 4202. Native models go straight to the ChatGPT backend on your own plan; the `jev/auto` route goes through LiteLLM to a local forwarder, which hands Jev a compact decision state and gets back a model and an effort. The response format is never converted — Responses in, Responses out, with the stream relayed verbatim — so tool calls, reasoning and compaction behave natively.
Two projections are kept apart on purpose. Jev sees only the bounded decision state. The model that actually executes receives the complete canonical replay Codex holds: instructions, history or compaction handoff, tool calls and tool results. The embedded fork exempts the `jev/auto` route from conversation windowing and tool-result aging, because those optimisations would corrupt that replay.
The repository publishes a backtest rather than a claim: about a 60% reduction against always using the largest model, over 237 turns under an older policy. Natoshi labels it a historical simulation, not measured quota saved and not evidence for the current policy, with the protocol and its limits written up in BACKTEST.md. The whole thing is a self-contained monorepo — the router fork is embedded, so there is no submodule or second checkout.
0xNatoshi/jev-codex-router on GitHub
- Stars
- 201
- Forks
- 21
- Language
- JavaScript
- Last push
- Sep 22, 2026
Repository created Sep 17, 2026. Counts read from the GitHub API on Sep 22, 2026, and they move daily — quote them with the date.


