feat(cli): refactor model command to support set and manage subcommands#19221
feat(cli): refactor model command to support set and manage subcommands#19221
Conversation
|
Hi @sehoon38, thank you so much for your contribution to Gemini CLI! We really appreciate the time and effort you've put into this. We're making some updates to our contribution process to improve how we track and review changes. Please take a moment to review our recent discussion post: Improving Our Contribution Process & Introducing New Guidelines. Key Update: Starting January 26, 2026, the Gemini CLI project will require all pull requests to be associated with an existing issue. Any pull requests not linked to an issue by that date will be automatically closed. Thank you for your understanding and for being a part of our community! |
Summary of ChangesHello @sehoon38, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly enhances the Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request effectively refactors the /model command to use a subcommand structure, which improves the CLI's consistency and usability. The introduction of /model set for quick model switching and /model manage for the UI dialog is a good enhancement.
My main feedback is on the implementation of the new parent modelCommand's action. The current logic for handling subcommands has a flaw where it defaults to the manage action for any invalid subcommand, which is not ideal for user experience. It's also not easily maintainable. I've left a specific comment with a suggested refactoring to address this by showing a proper error message and making the subcommand lookup more robust.
Overall, this is a solid refactoring. Addressing the feedback will make it even better.
|
Size Change: +1.22 kB (0%) Total Size: 24.4 MB
ℹ️ View Unchanged
|
Summary
Refactored the
/modelslash command in the CLI to support subcommands (setandmanage). This provides a more consistent interface for both opening the model management dialog and quickly switching models via the terminal.Details
subCommandssupport to themodelCommanddefinition./model set <model-name> [--persist]to update the current model./model manageto open the existing model configuration dialog.modelCommand.actionto delegate tomanageModelCommand, consistent with thestatscommand routing.Related Issues
Related to #19166 (improving CLI command structure).
How to Validate
npm run start/modeland press Enter. It should open the model management dialog.managesubcommand: Type/model manageand press Enter. It should also open the dialog.setsubcommand: Type/model set gemini-1.5-flashand press Enter. It should update the model.setwith persistence: Type/model set gemini-1.5-pro --persist. It should update the model and persist it to config./model setwithout arguments. It should show a usage error.Pre-Merge Checklist