Fix terminal display flickering on macOS#117
Open
tmancino wants to merge 1 commit intovirattt:mainfrom
Open
Conversation
The ShineText animation in WorkingIndicator uses a 30ms setInterval that
triggers ~33 full Ink re-renders/second. Combined with the DebugPanel
(enabled by default) re-rendering on every log entry, this causes visible
screen flickering and jumping on macOS terminals.
- Remove ShineText per-character animation, use static colored Text instead
- Default DebugPanel to show={false} to prevent layout shifts from log churn
The Spinner component still provides a subtle working indicator animation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Owner
|
Thanks @tmancino ! Is there any way to add tests that will validate / verify that the flickering is fixed? |
Owner
|
Also, we like the shine text indicator. Any way to keep the shine while fixing the flicker? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ShineTextper-character animation inWorkingIndicator.tsx— it runs a 30mssetIntervalthat triggers ~33 full Ink re-renders/second, causing visible screen flickering and jumping. Replaced with static colored<Text>. TheSpinnercomponent still provides a working indicator animation.DebugPaneltoshow={false}incli.tsx— it was enabled by default and re-renders on every log entry during agent execution, causing layout height changes that compound the flickering.Reproduction
Observed on a clean macOS install (Darwin 24.3.0) running
bun start. During agent execution the terminal output shimmers and jumps. The root cause is three overlapping animation timers (ShineText 30ms interval + Spinner + DebugPanel log subscription) each triggering full Ink redraws.Test plan
bun startand submit a query — display should be stable during thinking/tool executionSpinnerdots animation still appears in the working indicatorbun run typecheckpasses cleanly🤖 Generated with Claude Code