[FEATURE] Open the /model picker while the agent is busy and apply the switch next turn
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
When the agent is busy (extended thinking, streaming a response, or running tools), typing /model does not open the model picker. The command is queued like a regular message and only executes after the current turn fully completes.
However, a model change never affects the in-flight request anyway — it can only take effect on the next API request. So making the user wait for the current turn to finish before they can even select a model adds pure latency with no correctness benefit. On long agentic turns (multi-minute tool runs), this means babysitting the session just to press a key later.
The common situation: partway through a long turn I already know the next turn should run on a different model — e.g. drop from Fable/Opus to Sonnet for cheap follow-up edits, or escalate to a stronger model because the task turned out harder than expected. Right now I have to wait, watch for the turn to end, then switch, then send.
Proposed Solution
Let /model open the picker immediately, even while the agent is processing:
- The in-flight turn continues and finishes on the current model (unchanged behavior).
- The selection is stored as a pending model change and applied to the next request.
- Optionally, the status line indicates the pending switch, e.g.
model: opus → sonnet (next turn).
This is consistent with existing UX: plain text typed mid-turn is already queued for later, and /model selections already only take effect on subsequent requests. The change is only about when the picker can be opened, not about when the switch takes effect.
Alternative Solutions
- Wait for the turn to finish (current behavior): works, but on long turns it forces the user to sit and watch the session.
- Press Esc to interrupt, switch, then re-prompt: switches immediately, but throws away the in-flight work and wastes the tokens already spent on that turn.
Priority
Medium - Would be very helpful
Feature Category
Interactive mode (TUI)
Use Case Example
Example scenario:
- Kick off a long refactor on a high-capability model; the turn runs tools for several minutes.
- Midway I can already tell the remaining follow-ups are mechanical and a cheaper model is enough.
- Today:
/modelsits queued until the turn ends, so I have to keep watching the terminal to switch at the right moment. - With this feature: type
/model, pick the cheaper model, walk away — the current turn finishes as-is and the next message automatically goes out on the new model.
Additional Context
- Observed on Claude Code 2.1.233 (macOS, terminal).
- Since model selection is effectively per-request, deferring the application of the switch (rather than blocking the selection UI) should be safe and require no changes to in-flight request handling.