-
Notifications
You must be signed in to change notification settings - Fork 1.9k
feat(cli): add interactive model catalog for /model command #4905
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(cli): add interactive model catalog for /model command #4905
Conversation
Replaces /model list and /model select with an interactive, searchable, paginated model catalog interface. Features: - Shows all models from all providers, grouped by provider - Realtime search filtering as user types - Pagination (10 models per page) - Sort options (preferred/name/context/price) - press s - Capability filters (images/cache/reasoning/free) - press f - Provider filter - press p to cycle through providers - Current model marked with ⭐ - Keyboard navigation: ↑↓ navigate, ←→ pagination, Enter select, Esc exit - Deprecation warnings for /model list and /model select New files: - cli/src/types/modelCatalog.ts - Type definitions - cli/src/state/atoms/modelSelection.ts - State atoms for catalog mode - cli/src/ui/components/ModelCatalogMenu.tsx - UI component Modified: - cli/src/constants/providers/models.ts - Added helper functions - cli/src/state/atoms/ui.ts - Added modelCatalog to InputMode - cli/src/state/atoms/keyboard.ts - Added keyboard handler - cli/src/state/hooks/useCommandContext.ts - Added openModelCatalog - cli/src/commands/core/types.ts - Added openModelCatalog to context - cli/src/ui/UI.tsx - Integrated catalog menu - cli/src/commands/model.ts - Updated handler with deprecation warnings
🦋 Changeset detectedLatest commit: efc9bfb The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Ari4ka
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
I like where this is going @Githubguy132010! I have a few suggestions to get it even better for Kilo users:
-> In order to be consistent we want to show the same meta info in your new UI as in the standard `/model select `
Why the abbreviation |
|
I cannot search for models with letters |
|
@marius-kilocode Review comments should now be adressed. I'm going to add tests later in a seperate commit. I will also look at the continuous scrolling idea later. |
Fixed in commit a5d0fad |
Ari4ka
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.
@Ari4ka Could you explain what '.' means? |
…catalog - Change navigation from page-based to item-based with a fixed visible window - Update selection logic to wrap around the entire list - Remove page atoms and keyboard handlers for left/right navigation - Add total items and window start atoms for UI display - Update tests and UI to reflect new scrolling behavior BREAKING CHANGE: Model catalog navigation now uses continuous scrolling instead of pagination, changing user interaction from page navigation to item-by-item with wrap-around.
Remove unused modelCatalogPageAtom, modelCatalogPageCountAtom, nextModelCatalogPageAtom, and prevModelCatalogPageAtom imports as part of replacing pagination with continuous scrolling.
@marius-kilocode Implemented virtual scrolling, but it's a breaking change. I removed the pagination for this to work, so that should be taken into consideration. |
|
Will close this due to CLI 1.0 launching soon. |



Context
Replaces
/model listand/model selectwith an interactive, searchable, paginated model catalog interface in the CLI so users can discover and pick models more easily across providers. This is intended to make the/modelworkflow faster and more discoverable while keeping backwards-compatible behavior (with deprecation warnings for the old commands).Implementation
High level
/modelcommand entrypoint but opens the new interactive catalog;/model listand/model selectwill show deprecation warnings directing users to the new catalog.Files added
Files modified
modelCatalogto InputMode enum/stateopenModelCatalogto programmatically open the catalogopenModelCatalogto command context typesFeature list
sfps— sort optionsf— capability filtersp— provider filter/model listand/model selectthat point users to the new interactive catalogNotes and tradeoffs
Screenshots
/model listoutput)(If you want, I can attach animated GIFs or terminal recording showing search, pagination and selection.)
How to Test
clipackage (e.g. run the CLI in dev mode or your local binary that executes the CLI UI)./modelcommand in the CLI.sto cycle sort options (preferred / name / context / price) and observe that results reorder.fto toggle capability filters; check images/cache/reasoning/free flags filter results.pto cycle provider filter and confirm provider grouping filters to the selected provider./model listand/model select— confirm a clear deprecation warning is printed that points to the new/modelinteractive catalog.If you want exact dev-run commands added to the README or the PR body (e.g., the pnpm command to boot the CLI dev mode), tell me which runner you use and I’ll add precise steps.
Get in Touch
If you have questions or want a demo recording, ping me on GitHub @Githubguy132010 or leave comments on this PR and I’ll respond. I’m also available in the Kilo Discord server as thomas07374 if you prefer a quick walkthrough.