summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/App.tsx
AgeCommit message (Collapse)Author
2025-06-09feat: Display initial token usage metrics in /stats (#879)Abhi
2025-06-08feat: Introduce session context and add session duration stat for `/stats` ↵Abhi
command (#854)
2025-06-08feat: Add flow to allow modifying edits during edit tool call (#808)Leo
2025-06-07Bryanmorgan/add mcp description support (#825)Bryan Morgan
2025-06-07refactor: rename gemini-code to gemini-cli (#822)cperry-goog
2025-06-07More version simplifiction. (#810)Tommaso Sciortino
2025-06-06clean up version lookup code (#804)Tommaso Sciortino
2025-06-06feat(cli): respect the NO_COLOR env variable (#772)Jacob Richman
2025-06-05Title & Big text Updates (#781)matt korwel
2025-06-05refactor: remove unnecessary useRefs (#780)Brandon Keiji
2025-06-05Fix "npx https:...." header issue (#759)N. Taylor Mullen
2025-06-04CLI_TITLE env var for setting the CLI title (#748)Tommaso Sciortino
2025-06-04feat(accessibility): Add option to disable loading phrases (#745)N. Taylor Mullen
2025-06-03Fix several bugs in prompt history (#734)Marat Boshernitsan
Co-authored-by: Marat Boshernitsan <[email protected]>
2025-06-02feat(cli): Allow custom title in CLI header (#706)Scott Densmore
2025-06-02feat: Add --yolo mode that automatically accepts all tools executions (#695)Tolik Malibroda
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-06-01fix: Display MCP server count in context summary (#674)N. Taylor Mullen
2025-06-01refactor: Centralize tool scheduling logic and simplify React hook (#670)N. Taylor Mullen
2025-05-31feat: allow custom filename for context files (#654)Allen Hutchison
Co-authored-by: N. Taylor Mullen <[email protected]>
2025-05-30feat: Implement delayed Ctrl+C exit promptDaniel Young Lee
This change introduces a small delay after the first Ctrl+C press, prompting the user to press Ctrl+C again to exit. This helps prevent accidental termination of the application. - Added `exitOnCtrlC={false}` to the Ink render options in `gemini.tsx` to enable custom Ctrl+C handling. - Implemented logic in `App.tsx` to: - Display "Press Ctrl+C again to exit." for 2 seconds after the first Ctrl+C. - Exit the application if Ctrl+C is pressed again during this period. - Revert to normal operation if the second Ctrl+C is not pressed within the timeout. - Defined a constant `CTRL_C_PROMPT_DURATION_MS` for the timeout duration.
2025-05-30Rename server->core (#638)Tommaso Sciortino
2025-05-30feat: add --show_memory_usage flag to display memory usage in status bar (#606)Jacob Richman
2025-05-28feat: add git branch name to footer (#589)Brandon Keiji
2025-05-28Cleanup: Remove low value StreamingContextType interface. (#585)Jacob Richman
2025-05-24feat: Add GEMINI.md tip to UITaylor Mullen
- Display a tip to create a GEMINI.md file if one doesn't exist. - Pass config to Tips component so it can inspect the initial GEMINI.md count.
2025-05-24Code review comment fixes and some refactors. (#525)Jacob Richman
No intentional different behavior aside for tweaks suggested from the code review of #506 Refactor: Extract console message logic to custom hook This commit refactors the console message handling from App.tsx into a new custom hook useConsoleMessages. This change improves the testability of the console message logic and declutters the main App component. Created useConsoleMessages.ts to encapsulate console message state and update logic. Updated App.tsx to utilize the new useConsoleMessages hook. Added unit tests for useConsoleMessages.ts to ensure its functionality. I deleted and started over on LoadingIndicator.test.tsx as I spent way too much time trying to fix it before just regenerating the tests as the code was easier to write tests for from scratch and the existing tests were not that good (I added them in the previous pull request).
2025-05-23Make console message support more robust to logging in the middle of ↵Jacob Richman
rendering. (#521)
2025-05-23Add additional readline-like keybindings. (#524)DeWitt Clinton
Adds the following conventional readline-like keybindings: - `Ctrl+H`: Delete the previous character. - `Ctrl+D`: Delete the next character. Additionally, remaps the Debug Console command from Ctrl+D to Ctrl+O, which had been first introduced in PR #486.
2025-05-23feat: Modify loading indicator to support a paused state (#506)Jacob Richman
2025-05-22Refactor: Improve console error/log display in CLI (#486)Jacob Richman
2025-05-21feat: useToolScheduler hook to manage parallel tool calls (#448)Brandon Keiji
2025-05-21Fix: Resolve CLI version reporting in /bug command (#455)Allen Hutchison
2025-05-21Add Logger for command history (#435)Seth Troisi
2025-05-20Merge InputPrompt and multiline-editor and move autocomplete logic directly ↵Jacob Richman
into InputPrompt (#453)
2025-05-20fix system override indicator (#450)Olcan
2025-05-20Implement additional readline-like keybindings, including alt-left arrow and ↵DeWitt Clinton
alt-right arrow. (#443) This change adds keybinding support for: - `Ctrl+B`: Moves the cursor backward one character. - `Ctrl+F`: Moves the cursor forward one character. - `Alt+Left Arrow`: Moves the cursor backward one word. - `Alt+Right Arrow`: Moves the cursor forward one word. Closes b/411469305.
2025-05-20fix(cli): Prevent truncation of first character in shell commandsTaylor Mullen
- The shell command processor was incorrectly truncating the first character of the command (e.g., 'ls' became 's') due to an erroneous `slice(1)` operation, likely introduced during a previous merge. This change removes the slice, ensuring the full command is processed. - Introduces unit tests for the shellCommandProcessor hook. - Fixes a minor grammatical issue in the display of GEMINI.md file count.
2025-05-19ui tweaks (#442)Olcan
2025-05-19fix: Ensure user written `!` is treated opaquely if not in shell mode\n\n- ↵Taylor Mullen
Addresses an issue where commands prefixed with `!` (e.g., `!ls`) were incorrectly handled by the shell command processor if the `!` was added after initially typing the command.\n- Ensures that such commands are correctly forwarded to the Gemini model.\n- Updates `useGeminiStream` to be aware of shell mode to properly manage streaming state.\n\nFixes https://buganizer.corp.google.com/issues/418761305
2025-05-18fix(cli): Disable slash commands and suggestions in shell modeTaylor Mullen
- Prevents slash commands from being triggered and suggestions from being displayed when shell mode is active. This ensures that user input is correctly interpreted as shell commands. Fixes https://buganizer.corp.google.com/issues/418560826
2025-05-18feat(cli): Add ShellModeIndicator componentTaylor Mullen
This commit introduces a new ShellModeIndicator component to visually signify when shell mode is active. - Displays "shell mode enabled (! to toggle)" in the UI. - The AutoAcceptIndicator is now hidden when shell mode is active to prevent UI clutter.
2025-05-18feat(cli): Introduce toggleable shell mode with enhanced UITaylor Mullen
- Implements a toggleable shell mode, removing the need to prefix every command with `!`. - Users can now enter and exit shell mode by typing `!` as the first character in an empty input prompt. - The input prompt visually indicates active shell mode with a distinct color and `! ` prefix. - Shell command history items (`user_shell`) are now visually differentiated from regular user messages. - This provides a cleaner and more streamlined user experience for frequent shell interactions. Fixes https://b.corp.google.com/issues/418509745
2025-05-18fix(cli): Remove duplicate auto-accept indicatorTaylor Mullen
- The auto-accept edits indicator was appearing in two places: once next to the loading indicator and again in the CWD bar. - This was introduced when the CWD bar was made always visible. - This commit removes the duplicate indicator, leaving only the one in the CWD bar. Fixes https://b.corp.google.com/issues/418498237
2025-05-17fix: Ensure CWD and auto-accept indicator are always visibleTaylor Mullen
- This commit addresses an issue where the Current Working Directory (CWD) and the auto-accept indicator were not consistently visible, especially when tool confirmations were displayed. - Previously, the CWD could be hidden during tool confirmation prompts, potentially leading to confusion about the context in which Gemini CLI was operating. Fixes https://b.corp.google.com/issues/414289185
2025-05-17feat: Add auto-accept indicator and toggleTaylor Mullen
- This commit introduces a visual indicator in the CLI to show when auto-accept for tool confirmations is enabled. Users can now also toggle this setting on/off using Shift + Tab. - This addresses user feedback for better visibility and control over the auto-accept feature, improving the overall user experience. - This behavior is similar to Claude Code, providing a familiar experience for users transitioning from that environment. - Added tests for the new auto indicator hook. Fixes https://b.corp.google.com/issues/413740468
2025-05-17Introduce a small easter egg. Woof. (#412)DeWitt Clinton
Also changes auto-completion and /help to skip over slash commands that don't contain a description to avoid spoiling the surprise.
2025-05-16feat: Patch console.debug and display only in debug modeTaylor Mullen
- Patches `console.debug` in `ConsolePatcher.tsx` to capture debug messages. - Updates `ConsoleOutput` to only display debug messages when `debugMode` is enabled. - Passes `debugMode` prop from `App.tsx` to `ConsoleOutput`. Fixes https://github.com/google-gemini/gemini-cli/issues/397
2025-05-15Refactor: Improve UI rendering and address code review commentsTaylor Mullen
This commit addresses several code review comments primarily focused on improving the rendering and stability of the CLI UI. Key changes include: - Passing `isPending` and `availableTerminalHeight` props to `MarkdownDisplay` to enable more intelligent rendering of content, especially for pending messages and code blocks. - Adjusting height calculations in `ToolGroupMessage` and `ToolMessage` to more accurately reflect available space. - Refining the logic in `App.tsx` for measuring and utilizing terminal height, including renaming `footerRef` to `mainControlsRef` for clarity. - Ensuring consistent prop drilling for `isPending` and `availableTerminalHeight` through `HistoryItemDisplay`, `GeminiMessage`, and `GeminiMessageContent`. - In `MarkdownDisplay`, when `isPending` is true and content exceeds `availableTerminalHeight`, the code block will now be truncated with a "... generating more ..." message. If there's insufficient space even for the message, a simpler "... code is being written ..." will be shown.
2025-05-15Fix: Prevent UI tearing and improve display of long contentTaylor Mullen
This commit introduces several changes to better manage terminal height and prevent UI tearing, especially when displaying long tool outputs or when the pending history item exceeds the available terminal height. - Calculate and utilize available terminal height in `App.tsx`, `HistoryItemDisplay.tsx`, `ToolGroupMessage.tsx`, and `ToolMessage.tsx`. - Refresh the static display area in `App.tsx` when a pending history item is too large, working around an Ink bug (see https://github.com/vadimdemedes/ink/pull/717). - Truncate long tool output in `ToolMessage.tsx` and indicate the number of hidden lines. - Refactor `App.tsx` to correctly measure and account for footer height. Fixes https://b.corp.google.com/issues/414196943
2025-05-15UI improvements for suggestions & status (#373)Miguel Solorio