Skip to content

Conversation

@JayadityaGit
Copy link
Contributor

@JayadityaGit JayadityaGit commented Oct 5, 2025

TL;DR

This PR replaces the existing loading-screen witty messages with an updated set that is both clever and genuinely informative. The new messages surface useful tips about commands, keyboard shortcuts, and settings—while noting whether a setting is configurable via the UI or only through settings.json.


Purpose

The goal is to make the CLI experience more engaging and helpful during load times. Instead of filler text, users now see short, fun messages that teach them something useful about the tool.

These improvements aim to:

  • Encourage feature discovery
  • Improve usability
  • Maintain a playful tone without sacrificing clarity

What's Included

The updated messages cover:

  • Commands
  • Keyboard shortcuts
  • Settings (visible and hidden)

For clarity:

  • Settings only configurable via settings.json now include a (settings.json) suffix
  • Settings available through the UI include a (/settings) suffix

✅ Testing Matrix

┌──────────┬────┬────┬────┐
│          │ 🍏 │ 🪟 │ 🐧 │
├──────────┼────┼────┼────┤
│ npm run  │ ❓ │ ❓ │ ✅ │
│ npx      │ ❓ │ ❓ │ ❓ │
│ Docker   │ ❓ │ ❓ │ ❓ │
│ Podman   │ -  │ -  │ -  │
│ Seatbelt │ ❓ │ -  │ -  │
└──────────┴────┴────┴────┘

🔗 Linked Issue

Resolves #10568

@JayadityaGit JayadityaGit requested a review from a team as a code owner October 5, 2025 21:11
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @JayadityaGit, 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 upgrades the user experience during application loading by transforming generic witty messages into informative tips. The new messages guide users through various commands, keyboard shortcuts, and settings, clearly distinguishing between UI-configurable and settings.json-only options. This change is designed to boost feature discovery and usability, making the loading screen a valuable learning tool rather than just a placeholder.

Highlights

  • Enhanced Loading Messages: Replaced generic witty loading messages with an updated set that is both clever and genuinely informative, aiming to make load times more engaging and helpful.
  • Feature Discovery: New messages now surface useful tips about various commands, keyboard shortcuts, and settings, encouraging users to discover and utilize more features of the tool.
  • Setting Configurability Clarity: Messages related to settings explicitly indicate whether they are configurable via the UI (marked with (settings)) or only through settings.json (marked with (settings.json)).
  • Improved User Experience: The update aims to boost usability and maintain a playful tone by transforming the loading screen into a valuable source of actionable information.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a great improvement, replacing generic loading messages with genuinely useful tips about the CLI's features. The new messages will definitely help users discover commands, shortcuts, and settings.

My review focuses on a couple of areas to enhance the clarity and consistency of these new messages. I've identified some minor formatting inconsistencies and a more critical issue with ambiguous setting names that could confuse users. Addressing these points will make this feature even more polished and helpful.

Comment on lines 116 to 117
'You shall pass! `allowed` (settings.json)',
'You shall not pass! `exclude` (settings.json)',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The setting keys allowed and excluded are ambiguous here, as they also exist under the mcp configuration (lines 121-122). Displaying only the leaf key could cause users to edit the wrong setting in settings.json, which is a critical issue.

To be 'genuinely informative' as the PR description states, I recommend using the full setting path (e.g., tools.allowed) to remove ambiguity. This principle should also be applied to the mcp settings and other nested settings in this list that have non-unique leaf names.

Here's a suggestion to improve clarity for the tools settings:

Suggested change
'You shall pass! `allowed` (settings.json)',
'You shall not pass! `exclude` (settings.json)',
'You shall pass! Let your favorite tools run with `tools.allowed` (settings.json).',
'You shall not pass! Block unwanted tools with `tools.exclude` (settings.json).',

Comment on lines 121 to 122
'Allow your favorite MCPs. `allowed` (settings.json)',
"Exclude the MCPs you don't like. `excluded` (settings.json)",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

Similar to my comment on the tools settings, the keys allowed and excluded are ambiguous here. Using the full setting path mcp.allowed and mcp.excluded would prevent any confusion for the user when editing their settings.json file.

Suggested change
'Allow your favorite MCPs. `allowed` (settings.json)',
"Exclude the MCPs you don't like. `excluded` (settings.json)",
'Allow your favorite MCPs. `mcp.allowed` (settings.json)',
"Exclude the MCPs you don't like. `mcp.excluded` (settings.json)",

Comment on lines 28 to 29
'Your secrets are safe with us. `/privacy`',
"Don't let the door hit you on the way out. `/quit`",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

These two messages are missing backticks around the commands and trailing punctuation, which is inconsistent with most other messages in this list. For better consistency and readability, I suggest adding backticks and a period at the end.

Suggested change
'Your secrets are safe with us. `/privacy`',
"Don't let the door hit you on the way out. `/quit`",
'Your secrets are safe with us. `/privacy`.',
"Don't let the door hit you on the way out. `/quit`.",

'Let the AI talk to itself. `skipNextSpeakerCheck`',
'How deep will you go? `discoveryMaxDirs`',
'Load more memories. `loadMemoryFromIncludeDirectories`',
'Ignore your gitignore. Or not. `respectGitIgnore`',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did we forget the "(settings)" suffix for many UI configurable settings or have I misunderstood intent?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah i missed it, thanks for pointing out !

'How many lines is short? `truncateToolOutputLines`',
'Let the tools talk to each other. `enableMessageBusIntegration`',
'Trust no one. Or do. `folderTrust.enabled`',
'Let the model choose. `useModelRouter` (settings)',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe /settings instead of (settings)?

Copy link
Contributor Author

@JayadityaGit JayadityaGit Oct 6, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks will use the slash command, i think that's better.

@JayadityaGit JayadityaGit changed the title feat: add witty messages for commands, shortcuts, and settings feat: rephrase witty messages for commands, shortcuts, and settings Oct 6, 2025
'Have you tried turning it off and on again? (The loading screen, not me.)',
'Constructing additional pylons...',
'New line? That’s Ctrl+J.',
'Squash bugs with `/bug`!',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Squash --> Report

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure !

'Constructing additional pylons...',
'New line? That’s Ctrl+J.',
'Squash bugs with `/bug`!',
'Save your brilliant ideas with `/chat save`.',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to keep the style consistent I would end all of these with ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the suggestion !

@jacob314
Copy link
Collaborator

jacob314 commented Oct 8, 2025

I'd suggest we enable this as a setting rather than the default. In addition, would be ideal if we interleaved the useful with funny settings when the option is enabled. That would align with how we already show a tip about ctrl-J

@JayadityaGit JayadityaGit reopened this Oct 9, 2025
@JayadityaGit JayadityaGit marked this pull request as draft October 9, 2025 06:22
@JayadityaGit
Copy link
Contributor Author

JayadityaGit commented Oct 9, 2025

Hey @jacob314,

I believe that many users — myself included — may not be fully aware of all the useful features available(I really can't decide which are important). Of course, the importance of certain features can vary from person to person, but sometimes users might simply miss out on functionalities that could actually enhance their UNIQUE workflow. That’s the main motivation behind this PR.

Since we already have an option to disable loading phrases, I don’t see a strong reason to introduce an additional setting just for this. If a user prefers fully personalized witty phrases, they can always opt for the custom witty feature.

What I’ve done here is extract about 50% of the original witty phrases and blend them with a new set that’s both educative and witty. I feel this strikes a nice balance — keeping the humor while also subtly teaching or sharing something useful in a lighthearted way.

@JayadityaGit JayadityaGit marked this pull request as ready for review October 9, 2025 06:59
@JayadityaGit
Copy link
Contributor Author

JayadityaGit commented Oct 9, 2025

I'd suggest we enable this as a setting rather than the default. In addition, would be ideal if we interleaved the useful with funny settings when the option is enabled. That would align with how we already show a tip about ctrl-J

I personally feel that if this is placed within the settings, there’s a chance it could be missed by users, which might lessen the impact of the intended change.

'Report bugs with `/bug`!...',
'Save your brilliant ideas with `/chat save`....',
'A fresh slate is just a `/clear` away....',
'Shrink your conversation with `/compress`....',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix cases with four dots and cleanup cases that now have ! and ...

'Feed the beast with `@`....',
'Play in the sandbox with `-s`....',
'Go incognito with `--headless`....',
'Go back in time with checkpoints....',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ops — thank you so much for clarifying, @jacob314!

@jacob314
Copy link
Collaborator

jacob314 commented Oct 9, 2025

Even if we eventually make this the default we will need to have it be a setting so users who already feel they are familiar with the CLI can go back to the witty phrases.

If you make the logic slightly more complex so you get a maybe 5-1 ratio of funny phrases to tips we could roll it out as the default.
You could keep the lists separate and pick a random # each turn with a 5 out of 6 chance you pick a whitty phrase and a 1/6 chance you pick from the list of tips. If that works well we could increase the ratio over time. Would want to slowly increase it to make sure people aren't frustrated the whitty phrases got a lot less whitty.
Other option is you could start by picking the 10 best tips from your list of tips and add those to the normal list.

Introduces a new system to display informative tips to users during loading states.

The phrase cycler logic has been updated to show a tip with a 1-in-6 probability, mixing educational content with the existing witty phrases.

The new `INFORMATIVE_TIPS` array is populated with comprehensive tips covering:
- All application settings, with suffixes indicating where they can be configured (`/settings` or `settings.json`).
- A complete list of keyboard shortcuts.
- A full list of all available slash commands.

Additionally, this commit includes fixes for the `usePhraseCycler.test.ts` and `useLoadingIndicator.test.ts` test suites, which were updated to handle the new non-deterministic nature of the phrase cycler by adding appropriate mocks.
@JayadityaGit
Copy link
Contributor Author

Even if we eventually make this the default we will need to have it be a setting so users who already feel they are familiar with the CLI can go back to the witty phrases.

If you make the logic slightly more complex so you get a maybe 5-1 ratio of funny phrases to tips we could roll it out as the default. You could keep the lists separate and pick a random # each turn with a 5 out of 6 chance you pick a whitty phrase and a 1/6 chance you pick from the list of tips. If that works well we could increase the ratio over time. Would want to slowly increase it to make sure people aren't frustrated the whitty phrases got a lot less whitty. Other option is you could start by picking the 10 best tips from your list of tips and add those to the normal list.

@jacob314 absolutely brilliant suggestion — thank you so much for the clear and thoughtful guidance!

@JayadityaGit
Copy link
Contributor Author

JayadityaGit commented Oct 9, 2025

The npm preflight checks are all passing. I’ve personally tested it, and the 1–6 probability for the educative tips is working as expected. Since the probability is quite low and I wanted the tips to stand out, I chose not to make them witty.

@JayadityaGit JayadityaGit requested a review from jacob314 October 10, 2025 04:39
@JayadityaGit JayadityaGit changed the title feat: rephrase witty messages for commands, shortcuts, and settings feat: Blend educative tips with witty phrases during loading times (fun, subtle learning...) Oct 10, 2025
Copy link
Collaborator

@jacob314 jacob314 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love it! We may need to tweak some of the informative phrases to be a little shorter. I played with it for a bit and had a bit of trouble reading some of them before the phrase changed... but I was entering fairly trivial prompts so users may be less impacted.
lgtm

'Create and use your own custom themes (settings.json)...',
'Hide window title for a more minimal UI (/settings)...',
"Don't like these tips? You can hide them (/settings)...",
'Hide the startup banner for a faster launch (/settings)...',
Copy link
Collaborator

@jacob314 jacob314 Oct 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: not really faster. more just cleaner.

'Hide the startup banner for a faster launch (/settings)...',
'Reclaim vertical space by hiding the footer (/settings)...',
'Show memory usage for performance monitoring (/settings)...',
'Show line numbers in the chat for better context (/settings)...',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is on by default so remove the tip

'Show citations to see where the model gets information (/settings)...',
'Disable loading phrases for a quieter experience (/settings)...',
'Add custom witty phrases to the loading screen (settings.json)...',
'Enable IDE integration mode for a seamless workflow (settings.json)...',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

have these point to /settings wherever possible rather than settings.json. IDE integration is in settings for example.

'Disable loading phrases for a quieter experience (/settings)...',
'Add custom witty phrases to the loading screen (settings.json)...',
'Enable IDE integration mode for a seamless workflow (settings.json)...',
'Help improve Gemini by enabling usage stats (/settings)...',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove as is the default

'Control when chat history gets compressed based on token usage (settings.json)...',
'Define custom context file names, like CONTEXT.md (settings.json)...',
'Set max directories to scan for context files (settings.json)...',
'Expand your workspace with additional directories (settings.json)...',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be /directory not settings.json

@JayadityaGit
Copy link
Contributor Author

JayadityaGit commented Oct 11, 2025

@jacob314

Today I came across a small issue in the settings dialog — there wasn’t a clear visual cue for closing it. Initially, I was closing the CLI with ctrl+c, but later realized that esc works to close the settings dialog. I’ve added that clarification.

Note: Some tests are currently failing. The snapshot tests in SettingsDialog.test.tsx need to be updated to match the new help text. There are also some unrelated test failures in InputPrompt.test.tsx and mcp-client.test.ts.

@JayadityaGit
Copy link
Contributor Author

And since I’m participating in Hacktoberfest, if possible, could you please add the hacktoberfest-accepted label to this PR? It would genuinely motivate me to contribute even more to the open-source community. Thank you so much.

@JayadityaGit
Copy link
Contributor Author

@jacob314 I’ve updated the snapshot test, and the preflight checks are now passing. Thank you for adding the label — I truly appreciate it!

@JayadityaGit
Copy link
Contributor Author

@jacob314, is there anything else I should do on this?

<Text color={theme.text.secondary}>
(Use Enter to select
{showScopeSelection ? ', Tab to change focus' : ''})
{showScopeSelection ? ', Tab to change focus' : ''}, Esc to close)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this change in this pr?

expect(lastFrame()).toContain('User Settings'); // Scope options (no numbers when settings focused)
expect(lastFrame()).toContain(
'(Use Enter to select, Tab to change focus)',
'(Use Enter to select, Tab to change focus, Esc to close)',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is this change in this PR?

Copy link
Collaborator

@jacob314 jacob314 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a settings dialog change accidentally got in this PR. please revert and I will land.

Copy link
Collaborator

@jacob314 jacob314 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@jacob314 jacob314 enabled auto-merge October 16, 2025 17:00
@jacob314 jacob314 added this pull request to the merge queue Oct 16, 2025
Merged via the queue into google-gemini:main with commit 155242a Oct 16, 2025
25 checks passed
thacio added a commit to thacio/auditaria that referenced this pull request Oct 17, 2025
Millsondylan pushed a commit to Millsondylan/gemini-cli-1 that referenced this pull request Oct 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants