-
Couldn't load subscription status.
- Fork 2.3k
Description
Problem (one or two sentences)
Today it takes several clicks to switch API configuration profiles or models during a chat. Keyboard-focused users can’t trigger the existing pickers without leaving the composer.
Context (who is affected and when)
All users who changes profiles or models actively during sessions.
Desired behavior (conceptual, not technical)
Make the model selector available directly in the chat header, allowing users to swap models without leaving the conversation. Users should also be able to open that same picker via /models.
Typing /profiles or /models in the chat input should pop open the respective picker, allow arrow-key navigation, and close automatically after selection, with focus returning to the input.
Constraints / preferences (optional)
- Must preserve existing pickers’ look-and-feel and focus management.
- Needs to honor per-mode “sticky” models so selections persist as they do today.
- UX should work purely via keyboard as well as mouse.
Request checklist
- I've searched existing Issues and Discussions for duplicates
- This describes a specific problem with clear context and impact
Roo Code Task Links (optional)
No response
Acceptance criteria (optional)
- /profiles opens the profile picker, arrow keys cycle entries, Enter selects, Escape closes.
- /models opens the model picker scoped to the active profile and persists the new choice.
- Picker buttons in the chat header stay in sync with slash-command selections.
- Composer focus is restored after closing the picker.
Proposed approach (optional)
Add built-in slash commands that dispatch the same open/close actions as the existing buttons. Reuse the current pickers, expose their “open” state to the chat input, and ensure keyboard/hover behavior stays consistent.
I have already made a working version which can be found in PR #8845 :
Trade-offs / risks (optional)
Need to avoid regressions in existing picker hover behavior and ensure the saved model maps to whatever provider field was previously set.
Working prototype here: #8845
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
