feat: redesign header to be compact with ASCII icon#18713
Conversation
|
Hi @keithguerin, 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 @keithguerin, 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 refactors the Gemini CLI's user interface by introducing a more compact and informative header. The changes aim to provide users with essential application and account details at a glance, improving the overall clarity and user experience of the command-line interface. Additionally, the update streamlines the display of initial usage tips and enhances a shared UI component for greater flexibility. 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 well-designed compact header for the CLI, improving the user interface by making it less cluttered. The changes are mostly well-implemented, with a nice enhancement to the HorizontalLine component and simplification of the Tips component. However, I've identified a critical compilation error related to prop handling in the Tips component that needs to be addressed in both Tips.tsx and AppHeader.tsx. Additionally, there's a high-severity performance concern in AppHeader.tsx due to synchronous file I/O during the render cycle, which could negatively impact UI responsiveness.
| )} | ||
|
|
||
| {!(settings.merged.ui.hideTips || config.getScreenReader()) && | ||
| showTips && <Tips config={config} />} |
| const { email, tierName } = useMemo(() => { | ||
| if (!authType) { | ||
| return { email: undefined, tierName: undefined }; | ||
| } | ||
| const userAccountManager = new UserAccountManager(); | ||
| return { | ||
| email: userAccountManager.getCachedGoogleAccount(), | ||
| tierName: config.getUserTierName(), | ||
| }; | ||
| }, [config, authType]); |
There was a problem hiding this comment.
|
Thank you for linking an issue! This pull request has been automatically reopened. |
|
Size Change: -9.32 kB (-0.04%) Total Size: 25.8 MB
ℹ️ View Unchanged
|
| const { email, tierName } = useMemo(() => { | ||
| if (!authType) { | ||
| return { email: undefined, tierName: undefined }; | ||
| useEffect(() => { |
There was a problem hiding this comment.
revert this change. this change. it has no benefit as moving inside a useEffect is just as blocking and the real fix would be harder.
Pull Request Review - PR 18713Thanks for the contribution! Here are some points to address: 1. Conventional CommitsThe PR title "Redesign header to be compact with ASCII icon" is missing a prefix. Please update it to follow Conventional Commits (e.g., 2. Regression: "Authenticated with undefined"In 3. Regression: Onboarding TipsThe dynamic tip about 4. Test Quality (
|
|
I have addressed feedback item #6 by deleting the custom authentication logic I had previously added to I'll follow up with addresses for the remaining feedback items momentarily. |
1fb5d59 to
3e03fab
Compare
fix(ui): move sync file I/O out of render loop in AppHeader test(ui): update AppHeader snapshots test(ui): fix Tips test and update all snapshots for compact header
3e03fab to
f576e5b
Compare
|
I've pushed cleanup to remove slop in render.tsx and remove the png. I'll fast follow with a change to fix the regression in UserIdentity.tsx |


Summary
Redesigns the Gemini CLI header into a compact layout with an ASCII icon and primary/secondary identity text.
Details
AppHeader.tsx: Implements the new compact structure.Tips.tsx: Simplified tips content and formatting.HorizontalLine.tsx: Addedpositionprop ("top", "center", "bottom") supporting‾(overline) and_(underline) styles.HorizontalLineand removed sandbox warning for now as requested.Related Issues
Fixes #18715
How to Validate
npm startnpm run buildto confirm compilation.Pre-Merge Checklist