Skip to content

Conversation

ali-aljufairi
Copy link
Contributor

@ali-aljufairi ali-aljufairi commented Sep 9, 2025

TLDR

This PR to check is it worth it to 60fps to gemini cli and how will affect Render

Dive Deeper

This

Reviewer Test Plan

enable FPS counter from SettingDialogue and check if FPS logic is correct

Testing Matrix

🍏 🪟 🐧
npm run x
npx x
Docker
Podman - -
Seatbelt - -

Linked issues / bugs

Resolves #8050

@ali-aljufairi ali-aljufairi requested a review from a team as a code owner September 9, 2025 02:54
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.

Summary of Changes

Hello @ali-aljufairi, 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 integrates an FPS counter into the Gemini CLI's user interface, providing a visual metric to evaluate rendering performance. It includes a new configuration option to enable or disable this display, allowing users to monitor the UI's responsiveness.

Highlights

  • New UI Feature: Introduces an approximate Frames Per Second (FPS) counter to the CLI UI footer.
  • User Configuration: Adds a new "showFPS" boolean setting under the 'UI' category, allowing users to toggle the FPS display.
  • Performance Monitoring: The FPS display updates once per second and color-codes the FPS value (green for >=30, yellow for >=10, red for <10) to provide a quick visual indicator of rendering performance.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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 introduces a new feature to display an FPS counter in the UI, along with a corresponding setting to enable it. The implementation is well-structured, adding a new FpsDisplay component and integrating it through the settings schema and existing UI components. My review found one issue in the new FpsDisplay component where a comment incorrectly describes the FPS calculation, which could lead to confusion. I've provided a suggestion to correct it.

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@gemini-cli gemini-cli bot added kind/enhancement New feature or request area/ux Improves the CLI's usability, performance, interactive features, and documentation. status/bot-triaged labels Sep 9, 2025
requiresRestart: false,
default: false,
description: 'Display an approximate render FPS in the footer.',
showInDialog: true,
Copy link
Collaborator

Choose a reason for hiding this comment

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

I would omit this from the dialog.

const diff = total - lastCountRef.current;
lastCountRef.current = total;
// Subtract 1 to account for this update's render, but ensure minimum 0
setFps(Math.max(0, diff - 1));
Copy link
Collaborator

Choose a reason for hiding this comment

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

not sure this is the right way to measure this but perhaps it is the idiomatic practice in React. Think tracking this correctly would probably be a function of looking at the internals of the ink renderer. this number will be bellow 60 just because the the UI isn't continually refreshing. think you would really want to know about what the latency is between ui refreshes being triggered and renders occurring.

@JayadityaGit
Copy link
Contributor

If this FPS setting is part of the UI in settings.json, I’d recommend including it in the migration file. Otherwise, it might get lost whenever a setting changes. For example, the customWittyPhrases feature also belongs to the UI, and when I updated the theme, all my phrases were deleted because I hadn’t added them to the migration schema.

@jacob314
Copy link
Collaborator

jacob314 commented Sep 9, 2025

Fyi @galz10 this FPS counter is only functioning correctly because there is a React state updating bug that Gal is tracking down fixing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ux Improves the CLI's usability, performance, interactive features, and documentation. kind/enhancement New feature or request status/bot-triaged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Currently Gemini Cli use ink library which runs by default on 30 Fps with new update
3 participants