LLM routing · live API · Claude Code plugin

ActRouter. The right model for every call.

Give it a function name or a sentence about a piece of work. ActRouter classifies the task, picks the cheapest model that can do it well, and prices the call against the model you would otherwise have used.

What it does

The right model for every function, prompt and subagent — and the bill you just avoided.

ActRouter is a model router. Give it a function name or a sentence about a piece of work: it classifies the task, ranks the catalog against your cost and latency budgets, and prices the call against the model you would otherwise have used. ActDecor calls it for every decorated Python function, and the Claude Code plugin calls it for every prompt and subagent — so a big task’s subtasks each run on the cheapest model that can do them well.

  • One field is enoughA bare function name or a one-line task classifies the work; anything more only sharpens it
  • Built into Claude CodeA marketplace plugin routes every prompt and subagent to Haiku, Sonnet or Opus
  • Metadata onlyNothing your function processes is ever sent, logged or stored
  • A broad model catalogOpenAI, Anthropic, Google, DeepSeek, xAI, Mistral, Cohere, Llama, Qwen and more
  • Priced before you callEvery route comes back with its estimated cost, latency and what it saves against your baseline
  1. Describea function name or a subtask
  2. Classifytask type, family, confidence
  3. Routemodel, cost, latency
  4. Savepriced against your baseline

Start in three steps

  1. Get a free API key Sign up on the free plan. Registering gives you the key every API call needs. Get a free API key
  2. Try it on this page Paste the key into the demo below. It stays in this browser and goes only to the ActRouter API. Go to the demo
  3. Use it everywhere Send it as the x-api-key header from your code, or install the Claude Code plugin. Install in Claude Code
curl -X POST https://r93hdy7zti.execute-api.us-east-1.amazonaws.com/v1/route -H "content-type: application/json" -H "x-api-key: YOUR_KEY" -d '{"function": {"name": "summarize_article"}}'

Try it live

No key yet? Get a free API key, then paste it here. It is kept in this browser only and sent only to the ActRouter API.

One field, live API

Type a Python function name and nothing else. ActRouter classifies the task from the name alone, picks a model and prices the call against a frontier baseline. Only what you type here is sent.

Or try one of these:

Optional detail — signature, docstring, budgets, baseline

Six names, six verdicts

No signatures, no docstrings, no task labels — six function names, classified and routed by the live API, each priced against claude-opus-5-5 at 3,000 prompt and 300 completion tokens.

Function nameTaskConfidenceModel chosenCheaper
summarize_article————
classify_claim_severity————
extract_invoice_fields————
translate_policy_to_spanish————
review_pull_request_diff————
solve_reserve_equation————
New · Claude Code plugin

One main task, every subtask on the right model

In Claude Code, a big task fans out into subagents — and without routing, every one of them inherits the session’s model, so a codebase search runs on Opus. The ActRouter plugin routes each subtask on its own words: searches and log summaries go to Haiku, tests and reviews to Sonnet, and only the genuinely hard work stays on Opus. Edit the subtasks below and route them through the live API with your key.

Install it in Claude Code

ActRouter is on the Claude Code plugin marketplace. One command inside Claude Code:

/plugin install actrouter --marketplace jzhng105/actrouter

Or from a shell:

claude plugin marketplace add jzhng105/actrouter && claude plugin install actrouter@actrouter
  • Every subagent routedSubagents started without a model get Haiku, Sonnet or Opus to fit the work. A model you chose is never changed.
  • Every prompt routedWhen your request fits another model than the session’s, Claude does it there through a subagent — or just tells you, if you prefer.
  • Savings you can proveactrouter-route report --html savings.html prices each routed subagent’s real tokens against the model it replaced.
  • Private by defaultRouting runs in-process on your machine and nothing is sent. The ledger keeps models and token counts, never prompts.

Also in the plugin: MCP tools to route functions and tasks on demand, a skill that tells Claude when to use them, and a matching plugin for Codex.