Claude Code 2.1.90 adds an experimental NO_FLICKER fullscreen renderer with mouse support and virtualized scrolling. The release also fixes rate-limit loops and resume regressions, so update if you want the new UI while watching for selection and table-rendering bugs.

CLAUDE_CODE_NO_FLICKER=1 mode switches the CLI onto a fullscreen rendering path with mouse support, fixed input, and virtualized scrollback Anthropic announces NO_FLICKER Virtual viewport explanation./powerup, an auto mode boundary fix, and a rate-limit loop fix 2.1.90 release headline Version delta and surface changes.You can read the fullscreen docs, compare the v2.1.89 release against v2.1.90, and there is already an open GitHub issue about mouse scroll input leaking into the prompt. The weird part is how fast the iteration loop is running: the renderer shipped, the docs went live, and the follow-up release landed the next day with fixes outside the renderer too.
Anthropic is pitching NO_FLICKER as a terminal renderer rewrite, not a cosmetic toggle. The prompt stays pinned to the bottom, mouse events get routed into the app, and the interface stops appending raw output into native scrollback.
The official docs call it an opt-in research preview for Claude Code v2.1.89 and later. Activation is a single environment variable: CLAUDE_CODE_NO_FLICKER=1.
The implementation detail that matters is viewport virtualization. Anthropic says the app hooks keyboard and mouse events itself, then decides what to render at the application layer instead of letting the terminal own the whole scrollback.
The docs spell out the trade: Claude Code draws on the terminal's alternate screen buffer, like vim or htop, and only keeps visible messages in the render tree. That changes a few defaults:
That design is aimed squarely at terminals where rendering throughput is the bottleneck, including VS Code's integrated terminal, tmux, and iTerm2, according to the docs.
The renderer news and the version bump are easy to blur together. The NO_FLICKER path shipped in v2.1.89. v2.1.90 is the rapid follow-up release.
The standout changes in 2.1.90 are a mixed bag of onboarding, correctness, and plumbing:
/powerup, an interactive lesson flow with animated demos--resume no longer forces a full prompt-cache miss on first request for some deferred-tool and MCP setupsClaudeCodeLog also notes the release added AWS-flavored Anthropic environment variables and proxy-related config keys, while removing a few older keys and TMPDIR from the CLI surface Surface area changes.
The community read on this release is basically, finally, a real TUI, with bugs. Will McGugan praised the move to a full-screen terminal UI while immediately posting rendering defects in wrapped tables and styled table borders.
The rough edges are not just cosmetic. McGugan also showed selection staying in screen space after a window resize, and a separate GitHub issue reports fast mouse-wheel scrolling in Ghostty dumping coordinate-like escape data into the input box. Another open issue says some messages disappeared from terminal display after v2.1.89 while context remained intact.
That makes this one of those releases where the architectural direction is already obvious before the bug curve has flattened out.
Today we're excited to announce NO_FLICKER mode for Claude Code in the terminal It uses an experimental new renderer that we're excited about. The renderer is early and has tradeoffs, but already we've found that most internal users prefer it over the old renderer. It also Show more
not an April Fools joke, we rewrote the Claude Code renderer to use a virtual viewport you can use your mouse, the prompt input stays at the bottom, and a lot more small UX wins people have been asking for it's experimental so give us your feedback
Today we're excited to announce NO_FLICKER mode for Claude Code in the terminal It uses an experimental new renderer that we're excited about. The renderer is early and has tradeoffs, but already we've found that most internal users prefer it over the old renderer. It also
Our new experimental NO_FLICKER renderer solves this by virtualizing the entire viewport. We hook into keyboard and mouse events to make scrolling work, and we virtualize the viewport to move control over what is rendered into the application layer. This approach has tradeoffs, Show more
Claude Code 2.1.90 has been released. 19 CLI changes Highlights: • Added /powerup interactive lessons with animated demos to speed hands-on Claude Code onboarding • Auto mode respects explicit boundaries like 'don't push' or 'wait for X before Y', avoiding unintended actions Show more
Claude Code CLI 2.1.90 changelog: New features: • Added /powerup — interactive lessons teaching Claude Code features with animated demos • Added CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE env var to keep the existing marketplace cache when git pull fails, useful in offline Show more
I applaud @claudeai for going full TUI. They have even attempted wrapping tables! The word-wrapping is broken though. It looks like they are wrapping white-space on to the next line.
A bug with @claudeai code's text selection. The selection stays in screen-space. If you resize the window it selects the wrong text. Claude on the left, Toad on the right.