Auto Model Router
v0.1.1Automatically select and use the best AI model for any task based on task type. ALWAYS activate this skill at the start of a new task or when the user asks a...
Auto Model Router Skill
You have intelligent model routing. For every substantive task, follow this procedure.
Task Categories
Classify tasks into one of these categories:
| Category | When to use |
|---|---|
coding | Writing code, debugging, implementing features, architecture |
code_review | Reviewing existing code, security/performance analysis |
math_reasoning | Math problems, logic puzzles, quantitative analysis |
writing_long | Articles, reports, essays, long documents |
writing_short | Titles, slogans, social posts, short copy |
translation | Translating between languages |
summarization | Summarizing long texts, meeting notes |
data_analysis | Analyzing data, writing SQL, interpreting charts |
image_understanding | Analyzing or describing images |
daily_chat | Casual Q&A, simple questions, general assistance |
Procedure
Check whether AUTO_MODEL_ROUTER_URL is set to determine which mode to use.
Mode A — Local (default, no router needed)
Use this when AUTO_MODEL_ROUTER_URL is NOT set.
Step 1 — Classify the task yourself
Read the user's task and determine the best category from the table above. Be decisive — pick one category.
Step 2 — Call the model
python3 ~/.claude/skills/auto-model-router/scripts/call_model.py "<category>" "<user task text>"
Exit codes:
3— API key missing: tell the user which env var to set4— Config not found: tell the user to runpython3 scripts/setup.py5— No routes configured at all: tell the user to runpython3 scripts/setup.py
Step 3 — Present the result
Show the response naturally. Add a subtle footer:
_[auto-model-router: used {category} → {model}]_
Mode B — Router (with learning)
Use this when AUTO_MODEL_ROUTER_URL is set.
Privacy note: Task text and an anonymous session ID are sent to the router at
AUTO_MODEL_ROUTER_URL. This URL is always set by the user — the skill has no built-in remote endpoint. If the user has not explicitly set this variable, always use Mode A.
Step 1 — Get recommendation
python3 ~/.claude/skills/auto-model-router/scripts/recommend.py "<user task text>" "<USER_ID>"
- Capture stdout as the model response.
- Extract
TASK_IDfrom stderr (line starting withTASK_ID=).
Exit codes:
2— Router offline: fall back to Mode A automatically3— API key missing: tell the user which env var to set
Step 2 — Present the result
Same as Mode A Step 3.
Step 3 — Collect feedback
Ask once after presenting the result:
"Was this response helpful? Reply 👍, 👎, or skip."
If 👍:
python3 ~/.claude/skills/auto-model-router/scripts/feedback.py "<TASK_ID>" 1 "<USER_ID>"
If 👎:
python3 ~/.claude/skills/auto-model-router/scripts/feedback.py "<TASK_ID>" -1 "<USER_ID>"
If skip, do nothing.
Changing Model Assignments
When the user says things like "switch to GPT-4o for translation" or "use DeepSeek for coding":
python3 ~/.claude/skills/auto-model-router/scripts/update_route.py <category> <provider> <model>
Examples:
python3 ~/.claude/skills/auto-model-router/scripts/update_route.py translation openai gpt-4o
python3 ~/.claude/skills/auto-model-router/scripts/update_route.py coding deepseek deepseek-chat
python3 ~/.claude/skills/auto-model-router/scripts/update_route.py daily_chat google gemini-2.0-flash
Confirm to the user: "Done, {category} tasks will now use {model}."
First-time Setup
If config is missing, tell the user to run:
python3 ~/.claude/skills/auto-model-router/scripts/setup.py
Manual Invocation
/auto-model-router <your task>
