Product Introduction
Definition: Claude Code NO_FLICKER Mode is an opt-in Terminal User Interface (TUI) rendering engine designed specifically for the Claude Code Command Line Interface (CLI). Technically, it is a high-performance rendering path that utilizes the terminal's alternate screen buffer—similar to how text editors like Vim or system monitors like htop operate—to manage the display of AI-generated content and tool outputs.
Core Value Proposition: This mode exists to solve the performance limitations of standard terminal scrollback buffers during long-form AI interactions. By virtualizing the viewport and only rendering visible messages, it eliminates terminal flickering, prevents the "jumping" scroll position common in VS Code’s integrated terminal, and maintains flat memory usage regardless of conversation length. It is essential for developers who require a stable, interactive, and GUI-like experience within a CLI environment.
Main Features
Alternate Screen Buffer Rendering: Unlike standard CLI output that appends text to the terminal's history, NO_FLICKER mode takes over the terminal's entire drawing surface. This allows Claude Code to fix the input box at the bottom of the screen while dynamically updating the stream above it. This architecture drastically reduces the amount of data sent to the terminal emulator, effectively bypassing rendering throughput bottlenecks in iTerm2, tmux, and xterm.js-based terminals.
Comprehensive Mouse Support and Event Capture: The renderer intercepts mouse events to provide an interactive developer experience. Users can click to position the cursor within the prompt, click collapsed tool results to expand/collapse them, and click URLs or file paths to open them in browsers or default IDEs. It includes built-in click-and-drag selection that automatically copies text to the clipboard upon release, matching the behavior of modern desktop applications.
Virtualized Viewport for Memory Optimization: In standard rendering modes, long conversations consume increasing amounts of system memory as the terminal stores the full history in the render tree. NO_FLICKER mode uses viewport virtualization, keeping only the currently visible messages in the active render tree. This ensures that even after hours of pair programming or thousands of lines of code generation, memory usage remains constant and performance does not degrade.
Advanced Transcript and Search Mode: Accessed via Ctrl+o, this mode provides a "Less-style" navigation system. It allows users to perform regex-based searches within the conversation using the / key and navigate matches with n/N. Furthermore, it offers a bridge to native terminal features: the [ key writes the entire expanded conversation into the terminal’s native scrollback buffer, while the v key exports the transcript to an external editor like $VISUAL or $EDITOR for deep review.
Problems Solved
Terminal Rendering Bottlenecks: Solves the issue where terminal emulators (specifically VS Code's integrated terminal) flash or "flicker" when high volumes of data, such as streaming tool outputs or large diffstats, are pushed to the screen.
Disrupted Focus from Auto-Scrolling: In traditional CLI modes, new output often forces the scroll position to the bottom, interrupting a developer's attempt to read previous lines. NO_FLICKER mode’s auto-follow logic pauses as soon as the user scrolls up, allowing for uninterrupted review while Claude works in the background.
Target Audience: This feature is built for Software Engineers, AI Engineers, and DevOps Professionals who use Claude Code as their primary pair-programming tool within terminal multiplexers (tmux), integrated development environments (VS Code), or high-functionality terminal emulators (Kitty, Alacritty, WezTerm, iTerm2).
Use Cases: Essential for long-running debugging sessions involving multiple tool calls, reviewing large code diffs within the terminal, and performing AI-assisted coding over SSH where network latency makes standard terminal scrolling jittery.
Unique Advantages
Differentiation: Traditional CLI tools are "append-only," which leads to messy scrollbacks and high memory overhead. Claude Code NO_FLICKER mode differentiates itself by behaving like a full-screen application, offering a cleaner interface where the prompt stays anchored and the conversation history is managed as a stateful UI rather than a text stream.
Key Innovation: The "Transcript Bridge" is a significant innovation. By allowing users to selectively "hand back" the virtualized conversation to the native terminal scrollback (using the [ key), it solves the primary drawback of TUI applications: the inability to use native OS-level search (Cmd+f) or terminal-specific copy modes.
Frequently Asked Questions (FAQ)
How do I enable the flicker-free mode in Claude Code? To activate the new renderer, run the command /tui fullscreen inside any active Claude Code conversation (requires version 2.1.89 or later). Alternatively, you can set the environment variable CLAUDE_CODE_NO_FLICKER=1 in your shell configuration to make it the default for all sessions.
Why is the mouse wheel not scrolling in my terminal? Mouse wheel support requires your terminal to forward mouse events. If you are using iTerm2, ensure "Enable mouse reporting" is turned on in your Profile settings. If you are using tmux, you must have set -g mouse on in your tmux.conf file. You can also adjust the scroll sensitivity by setting the CLAUDE_CODE_SCROLL_SPEED variable (values 1-20).
Can I still use my terminal's native copy-and-paste? When NO_FLICKER mode is active, Claude Code captures the mouse to enable internal selection and URL clicking. If you prefer your terminal's native text selection, you can opt out of mouse capture while keeping the flicker-free rendering by setting CLAUDE_CODE_DISABLE_MOUSE=1. This allows the terminal to handle selection natively while Claude Code manages the display.
