Skip to content

s1-auto-router

Claude Code plugin where a local Decider model on your Mac picks the model and effort level for each subagent task.

Pluginbeta

Overview

s1-auto-router is a Claude Code plugin (a mod) that routes subagent tasks. When Claude Code launches a subagent without an explicit model or effort, a local Decider model running on the Mac selects both, for example haiku at low effort for listing files. The subagents themselves still run on Claude models through your Claude Code account; only the routing decision is local.

Setup through /s1-setup installs a Python 3.13 environment with uv, downloads the Decider model (2B by default, about 1 GB; 4B optional), starts a background daemon and sends a smoke request. A confidence threshold (0.6 by default) prevents a change when any answer on the decision path is less confident, in which case the plugin abstains and keeps the original values. Decisions are logged to a local JSONL file with applied values and reasons, and subagent prompt data is stored locally, with documented removal. It requires Apple Silicon and Claude Code with mods active.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich Claude model should this subagent task use?(inferred)haiku · sonnet · opus
ChoiceWhich effort level should this subagent use?(inferred)low · medium · high

How it works

  1. Claude Code starts a subagent without explicit model/effort
  2. Plugin sends the assignment text to the local Decider daemon
  3. Decider answers model and effort questions
  4. Apply if confidence clears 0.6, else abstain; log the decision

Strengths

  • Routing runs locally with no extra API cost
  • Abstains rather than guessing when unsure
  • Decisions logged with reasons

Caveats

  • Apple Silicon only
  • Stores subagent prompt data locally
  • Requires recent Claude Code with mods

Getting started

claude plugin marketplace add https://github.com/thomas-dudoux/s1-auto-router.git && claude plugin install s1-auto-router@s1-auto-router --scope user, then run /s1-setup.

At a glance

Type
Plugin
Status
beta
Language
Python
Runtime
Claude Code plugin + local daemon
Has code
yes

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does the Decider decide?

The model and effort level for each subagent task that does not set them.

Does it use TypeSafe's Jev?

No; it uses a local Decider model (2B or 4B) on your Mac.

What happens when it is unsure?

It abstains and keeps the original values if confidence is below the 0.6 threshold.

Related projects

  • Self-hosted Rust LLM gateway that puts OpenAI, Anthropic and Jev-style /v1/systemone backends behind one endpoint with load balancing.

    ServicebetaRust
  • 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.

    Proxybeta
  • TypeScript/Bun launcher that asks Jev which model and reasoning effort each Codex, Claude Code or Pi turn should use.

    ProjectbetaTypeScript
  • CLI, Claude Code plugin and Pi virtual model that pick the right model per prompt from one Jev call with a complexity floor.

    PluginbetaTypeScript
  • Claude Code mod that picks reasoning effort per prompt with a Haiku judge, optionally Jev, and shows cache and context state.

    ProjectbetaTypeScript