An open-source plugin set that picks a worker model tier for every coding-agent turn using deterministic local scoring instead of an LLM call. Ships as two independent plugins — one for OpenAI Codex, one for Claude Code — sharing the same routing design but adapted to each agent's own plugin, hook and CLI conventions.
Next projectEasyDPICoding agents expose a single model choice for an entire session, so a one-line rename and a multi-file refactor cost the same. Routing per turn is the obvious fix, but the naive implementation — asking a model which model to use — adds latency and cost to every turn and is non-deterministic.
Routing happens in a UserPromptSubmit hook, entirely locally, with no network call:
User prompt
→ UserPromptSubmit hook
→ deterministic score + explicit override + session continuity
→ developer routing context
→ direct low-tier response OR root task calls run_routed_task exactly once
→ plugin-local agent CLI with pinned model and effort
→ worker result returned to the root task
The displayed root model never hot-swaps. For substantive routes the root task calls a local MCP worker that starts a model-pinned execution and returns its result, so the conversation stays coherent while the actual work runs on the tier it deserves.
/luna, /terra, /sol, /auto, …) always beat the score, and an explicit choice is inherited conservatively across a conversation.approval: never, bounded sandbox choices. ADAPTIVE_MODEL_ROUTER_WORKER=1 bypasses both hooks inside workers to prevent recursion.Unofficial community project, not affiliated with or endorsed by OpenAI or Anthropic.