Skip to content

Codex Sift

A model router for the Codex CLI: on every user turn Jev judges how hard the task is and a YAML policy picks one of three lanes — flash, craft or forge — so premium quota goes to the prompts that need it.

Stars
8
Language
TypeScript
License
MIT
Published by
Community
Author
romanmeclazcke
Last verified
Oct 2026

Route each Codex turn to the cheapest model that can handle it, judged by TypeSafe Jev.

Forks
2
Last pushed
Updated Sep 2026

Repo stats from the GitHub API, cached Oct 2026.

Languages
TypeScript
Platforms
CLI
Capabilities
Open sourceRequires API key

Highlights

  • Lanes map to models: flash gpt-5.6-luna, craft gpt-5.6-terra, forge gpt-5.6-sol, with the first matching rule in policy.yaml winning.
  • Jev answers atomic signals such as task_kind, difficulty, needs_planning and high_stakes; the policy never asks it which model to use.
  • E2E report: 12 cases routed live at 418 ms average, 11 of 12 matching policy expectations, 53.7% estimated quota saved against always-forge.
  • A loopback Responses proxy intercepts POST /responses through a custom model_provider and forwards your existing login upstream.
  • codex-sift explain and the $sift-explain skill print the last decision from ~/.codex-sift/last.json after any routed turn.

Watch out

MIT, and Codex-only: it runs a loopback Responses proxy and is not an MCP server, so Codex starts through its own command and another model pinned in /model pauses routing. Live routing needs a TYPESAFE_API_KEY; without one, or if Jev times out, it fail-opens to the craft lane and marks the decision degraded.

Questions about this entry

Short answers drawn from the linked project or page.

Reactions & coverage

Posts, threads, and videos about this entry from around the web.

Facebook: Intake Router keeps diagnosis out of the answer space at the front desk.

FacebookClinicnotes

YouTube: Jev explained for routing and judging, with a comparison against LLMs.

Hacker News: Vercel on using Jev for defined decisions and GPT-6 Astra when the job also has to write or use tools.

flashbrew4 pointsTypeSafe AI Jev vs. GPT-6 AstraRead the thread on Hacker News

Hacker News: ASTGL replay chose local Laya routing over hosted Jev on one Mac Studio setup.

Jmeg8r15 pointsDoes an open-weight decision model beat a hosted one? Jev vs. LayaRead the thread on Hacker News

Related terms

Glossary definitions related to this entry.

More Jev resources like this

32.6kGitHub stars
A Claude Code configuration CLI shipping Jev modules for model routing, skill suggestion, tool guardrails, auto-mode gates, and sandbox hooks.
Jev Agents & MCP#community#typescript#coding-agent
7GitHub stars
Launchers for Claude Code, Codex, Grok CLI, and opencode that ask Jev which model-and-effort tier each human turn needs, rewriting only the model field while the real CLI runs unchanged.
Jev Agents & MCP#community#javascript#routing
35.4kGitHub stars
Stencil Labs' coding agent embeds TypeSafe Jev for typed checks, routing, and workflow decisions, with measured Jev tokenizer probes in pi-natives.
Jev Agents & MCP#community#typescript#coding-agent
59GitHub stars
A free Claude Code skill that puts Jev in front of the expensive model: thirteen commands sort, check, score, gate and verify with Jev, so Claude reads only the unsure slice and writes the output. Needs python3 and an OpenRouter key.
Jev Agents & MCP#community#python#claude-code
45GitHub stars
Five typed tools — classify, check, score, rank, and ask — plus a skill, wired into Claude Code, Codex, Pi, and OpenCode in one setup command.
Jev Agents & MCP#community#typescript#mcp
8GitHub stars
A DeepSeek Harness plugin that exposes Jev's noul, choice and score primitives as agent tools, plus configurable guardrails, retries, response caching, a circuit breaker and Web UI result cards.
Jev Agents & MCP#community#typescript#deepseek
Back to all resources

From the Jev community

Posts from builders shipping with Jev right now.

Follow @typesafeai