#16741: feat(wizard): add searchable select for model picker
commands
channel: irc
size: M
Cluster:
Wizard Enhancements and Config Fixes
## Summary
When selecting a model during onboarding with providers like OpenRouter (150+ models), users must scroll through a long unfiltered list. This adds an FZF-like searchable select to improve the experience.
### Changes
- Add standalone `searchable-select.ts` component with fuzzy filtering
- Integrate with `WizardPrompter` interface (new `searchableSelect` method)
- Use for model picker in onboarding flow
- Support arrow keys, Page Up/Down, Home/End, Ctrl+P/N navigation
### Before

### After

## Testing
- Tested full onboarding flow with OpenRouter, Gemini, and z.ai
- Verified fuzzy filtering, keyboard navigation, edge cases (no matches, rapid typing)
- Non-TTY environments fall back gracefully
## AI Disclosure
This PR was developed with AI assistance (Warp Agent). I understand what the code does and have manually tested the implementation.
Co-Authored-By: Warp <agent@warp.dev>
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
Adds an FZF-like searchable select component for CLI prompts, integrated into the model picker to improve UX when selecting from providers with 150+ models.
- New `searchable-select.ts` provides standalone fuzzy search with multi-tier filtering (exact substring → word boundary → hint → fuzzy)
- Integrates cleanly via new `searchableSelect` method in `WizardPrompter` interface
- Handles keyboard navigation (arrows, Page Up/Down, Home/End, Ctrl+P/N)
- Properly handles edge cases: non-TTY fallback, empty options, no matches
- Fix included for Enter key cleanup issue (terminal state restoration)
The implementation follows existing patterns and delegates to regular `select` in session mode where the client UI can implement its own searchable behavior.
<h3>Confidence Score: 5/5</h3>
- This PR is safe to merge with minimal risk
- Well-structured implementation following existing patterns, with proper error handling, terminal state cleanup, non-TTY fallbacks, and the previously identified Enter key issue already fixed
- No files require special attention
<sub>Last reviewed commit: c14ad70</sub>
<!-- greptile_other_comments_section -->
<!-- /greptile_comment -->
Most Similar PRs
#7020: feat: add search/filter to model selection in configure wizard
by GuoxiangZu · 2026-02-02
78.4%
#8174: feat(wizard): strict model filtering for preferred providers
by gkamboj-bot · 2026-02-03
75.7%
#6440: feat(ui): add model picker dialog with provider filtering
by igorls · 2026-02-01
72.0%
#22569: [Feature] add provider wizard
by antonidasyang · 2026-02-21
71.0%
#8741: fix(tui): allow j/k keys to be typed in search inputs (#7378)
by revenuestack · 2026-02-04
71.0%
#11115: [AI-assisted] Add /model-set chat command with autocompletion and s...
by dorgonman · 2026-02-07
69.8%
#7762: feat: add 'go back' navigation to onboarding wizard
by SalimBinYousuf1 · 2026-02-03
68.2%
#23117: wizard: add manual endpoint type selection when custom provider det...
by wjonaskr · 2026-02-22
68.1%
#14393: feat: add standalone DeepSeek provider support
by osoulmate · 2026-02-12
67.3%
#13814: feat(web-search): add ZAI Search (zsearch) provider
by strelov1 · 2026-02-11
67.3%