A two-column model picker for pi. /m opens a selector where ←/→ switches provider and ↑/↓ picks a model, so you can reach any of a hundred models in a few keystrokes instead of scrolling one flat list.
commandcode/gpt-5.6-luna
←→ category ↑↓ model Enter select Esc cancel
› RECENT commandcode/gpt-5.6-luna
PROVIDERS openai-codex/gpt-5.3-codex
CommandCode commandcode/claude-opus-5
OpenAI Codex commandcode/gpt-5.4
opencode-go
commandcode/gpt-5.6-luna · ctx 1,100,000
pi install git:github.com/vi2q/pi-model-pickeror, from npm:
pi install npm:@vi2q/pi-model-picker| Key | Action |
|---|---|
/m |
Open the picker |
← / → |
Previous / next category |
↑ / ↓ |
Previous / next model |
PgUp / PgDn |
Jump 10 models |
Enter |
Switch to the highlighted model |
Esc |
Close without changing anything |
/m also takes a provider name to narrow the left column before opening: /m codex, /m opencode. Provider names complete with Tab.
The left column starts with a RECENT category holding the last four models you switched to, shown as provider/model since they come from different providers. Every model change counts toward it, including ones made with the built-in /model command or Ctrl+P cycling. History lives in ~/.pi/agent/model-picker-recent.json and survives restarts.
If you restrict models with the --models flag or the enabledModels setting, the picker shows only that scoped set, the same way Ctrl+P does. With no scoping it lists every available model.
- Requires TUI mode. In print or JSON mode
/mreports an error instead of opening a dialog. - The built-in
/modelcommand stays as is. This extension only adds/m. - Switching to a model whose provider has no API key keeps the current model and shows a warning.
- The RECENT length (4) is hardcoded.