Feature: Auto-select model and effort level based on task complexity

Open 💬 4 comments Opened Apr 4, 2026 by tidingman

Problem

Currently, users must manually switch model (/model) and effort level (/effort) depending on task complexity. This creates friction — either you default to a powerful model and waste tokens on simple questions, or default to a lighter model and manually switch for complex tasks.

Proposed Solution

Allow Claude Code to automatically select (or interactively prompt the user to select) the appropriate model and effort level based on the complexity of the user's input.

Possible approaches:

  1. Auto-select: Use a lightweight classifier (e.g., Haiku) to evaluate the user's prompt and automatically set the model/effort before the main model processes it.
  1. Interactive prompt: Before each task, briefly prompt the user with a recommended model/effort choice based on the input, allowing them to confirm or override.
  1. Programmatic API: Expose model/effort switching via hooks or settings so that UserPromptSubmit hooks can dynamically adjust them. For example:

``json
{
"hooks": {
"UserPromptSubmit": [{
"type": "command",
"command": "classify-and-set-model.sh"
}]
}
}
``

Use Case

  • Simple Q&A, formatting, renaming → Sonnet + low effort
  • Daily feature development, bug fixes → Sonnet + medium effort
  • Architecture design, complex refactoring → Opus + high effort

Users shouldn't need to remember to switch manually — the tool should help optimize token consumption automatically.

Context

In a Go project with extensive documentation (4,827 lines of standards), session history analysis shows that model selection is one of the highest-leverage optimizations for token cost (20-40% savings). Currently there's no way to automate this via hooks or any other mechanism.

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗