feat(cli): prototype clean UI toggle and minimal-mode bleed-through#18683
feat(cli): prototype clean UI toggle and minimal-mode bleed-through#18683LyalinDotCom merged 39 commits intomainfrom
Conversation
|
Hi @LyalinDotCom, 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! |
|
Hi there! Thank you for your contribution to Gemini CLI. To improve our contribution process and better track changes, we now require all pull requests to be associated with an existing issue, as announced in our recent discussion and as detailed in our CONTRIBUTING.md. This pull request is being closed because it is not currently linked to an issue. Once you have updated the description of this PR to link an issue (e.g., by adding How to link an issue: Thank you for your understanding and for being a part of our community! |
Summary of ChangesHello @LyalinDotCom, 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 user experience of the CLI by introducing a 'clean UI' prototype. The primary goal is to minimize visual clutter upon startup, allowing users to focus on core interactions while still providing immediate access to detailed information when needed. This is achieved through a new toggle mechanism and intelligent 'bleed-through' for essential indicators, making the interface more streamlined and user-friendly without sacrificing critical feedback. 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 introduces a significant and well-executed UX improvement with the clean UI toggle and minimal mode. The implementation is robust, handling the new cleanUiDetailsVisible state with thoughtful logic for both permanent toggling and temporary reveals. The remapping of keybindings from Tab to F6 for shell focus is applied consistently across configuration, documentation, and tests. The fix in MainContent.tsx to move the AppHeader out of the Static component to ensure it re-renders correctly is a clever solution to a tricky problem. The added tests provide good coverage for the new functionality. Overall, this is a high-quality prototype that greatly enhances the CLI's usability.
d6ef101 to
866b291
Compare
|
Size Change: +10.8 kB (+0.04%) Total Size: 24.3 MB
ℹ️ View Unchanged
|
# Conflicts: # packages/cli/src/ui/components/Composer.test.tsx # packages/cli/src/ui/components/Composer.tsx
|
@jacob314 this is ready for your review |
|
Thank you for this PR! The clean UI mode looks like a great addition to reduce visual noise. I've reviewed the code and have identified a critical React anti-pattern that needs to be addressed before merging. React Anti-Pattern in
|
| { | ||
| command: Command.FOCUS_SHELL_INPUT, | ||
| positive: [createKey('tab')], | ||
| negative: [createKey('f', { ctrl: true }), createKey('f')], |
There was a problem hiding this comment.
revert this change. we aren't supporting F6.
|
|
||
| describe('Composer', () => { | ||
| beforeEach(() => { | ||
| composerTestControls.suggestionsVisible = false; |
|
There is a bug in how the
Which is somewhat against the purpose of those two options (hideBanner and minimal UI) Does anyone know where this can be fixed? |

Summary
Prototype a new Focus UI mode for Gemini CLI that is opt-in, keeps existing behavior as default, and can be toggled quickly without losing core controls.
Details
Tab+Tab) toggle that switches between:Tabto its original uses (focus/suggestions/navigation behavior).focusUiEnabled) so once a user opts into minimal mode, that preference is remembered across sessions.Minimal UI behavior implemented:
press tab twice for more.?shortcuts panel remains available from minimal mode and full mode.YOLOplanauto editHeader/layout behavior:
/clearand resize.Also updated shortcuts/help presentation:
!@Esc EscTab TabEsc Esc clear & rewind,Tab Tab focus UI).Related Issues
How to Validate
npm run buildnpm run typechecknpm run test --workspace @google/gemini-cli -- src/ui/AppContainer.test.tsx src/ui/components/Composer.test.tsx src/ui/components/InputPrompt.test.tsx src/ui/components/MainContent.test.tsx src/ui/components/ShortcutsHelp.test.tsxTabonce and verify normal tab behavior still works.Tabtwice quickly and verify UI toggles to minimal mode.Tabtwice again and verify it returns to full UI.?opens shortcuts panel and closes with expected keys.YOLO,plan,auto edit) appear appropriately./clearand resize terminal to verify header/layout stability.Pre-Merge Checklist