Skip to main content
Fullscreen rendering is a research preview. If you first used Claude Code on or after May 6, 2026, Claude Code renders fullscreen by default; run /tui default to switch back. If you started earlier, you keep the classic renderer; run /tui fullscreen to switch in your current conversation. Behavior may change based on feedback.
Fullscreen rendering is an alternative rendering path for the Claude Code CLI that eliminates flicker, keeps memory usage flat in long conversations, and adds mouse support. It draws the interface on the terminal’s alternate screen buffer, like vim or htop, and only renders messages that are currently visible. This reduces the amount of data sent to your terminal on each update. The difference is most noticeable in terminal emulators where rendering throughput is the bottleneck, such as the VS Code integrated terminal, tmux, and iTerm2. If your terminal scroll position jumps to the top while Claude is working, or the screen flashes as tool output streams in, this mode addresses those.
The term fullscreen describes how Claude Code takes over the terminal’s drawing surface, the way vim does. It has nothing to do with maximizing your terminal window, and works at any window size.

Enable fullscreen rendering

Run /tui fullscreen inside any Claude Code conversation. The CLI saves the tui setting and relaunches into fullscreen with your conversation intact, so you can switch mid-session without losing context. Run /tui default to switch back to the classic renderer, or /tui with no argument to print which renderer is active. In screen reader mode, Claude Code always uses the classic renderer except in attached background sessions, which still render fullscreen. If you run /tui fullscreen in any other session, Claude Code prints an explanation instead of switching and doesn’t change the saved tui setting. Claude Code carries these into the relaunched session:
  • The conversation as it appears on screen. After a /rewind, that means:
    • If you rewound earlier in the session, Claude Code relaunches from the rewound point, not from the longer transcript saved on disk. For example, if you rewound past your last three messages, the relaunched session opens without them
    • If you rewound to before your first message, Claude Code relaunches with an empty conversation
  • Your permission mode and effort level
  • The model you last picked with /model
  • Rules you passed with --allowed-tools or --disallowed-tools
Claude Code declines to relaunch if the session has a restriction it can’t pass to the restarted process. Restrictions it can’t pass include: In that case Claude Code prints Cannot switch renderers in this session with the reasons. It doesn’t switch or save anything.
If you first used Claude Code before May 6, 2026 and haven’t saved a tui setting, Claude Code may open a dialog at startup offering the switch. If you accept, Claude Code saves the setting and relaunches the same way /tui fullscreen does, carrying the same session state.
You can also set the CLAUDE_CODE_NO_FLICKER environment variable before starting Claude Code:
The tui setting and the environment variable are equivalent. The /tui command clears CLAUDE_CODE_NO_FLICKER from the relaunched process so the setting it writes takes effect.

What changes

Fullscreen rendering changes how the CLI draws to your terminal. The input box stays fixed at the bottom of the screen instead of moving as output streams in. If the input doesn’t move while Claude is working, fullscreen rendering is active. Only visible messages are kept in the render tree, so memory stays constant regardless of conversation length. Because the conversation lives in the alternate screen buffer instead of your terminal’s scrollback, a few things work differently: If mouse capture interferes with your workflow, you can turn it off while keeping the flicker-free rendering.

Use the mouse

Fullscreen rendering captures mouse events and handles them inside Claude Code:
  • Click in the prompt input to position your cursor anywhere in the text you’re typing.
  • Click a suggestion in the / command or @ file list to accept it. Hovering highlights the row under your cursor.
  • Click an option in a select menu to choose it. This covers permission prompts, /model, /config, and other dialogs that show a list of options. Hovering shows a pointer on the row under your cursor. Requires Claude Code v2.1.187 or later.
  • Click an option in a multi-select menu to toggle it, and click the submit button to confirm your choices. Clicking a free-text row, such as the Other row in a multiple-choice question, focuses its input field so you can type an answer. Requires Claude Code v2.1.208 or later.
  • Click a collapsed tool result to expand it and see the full output. Click again to collapse. The tool call and its result expand together. Only messages that have more to show are clickable.
  • Hold Cmd on macOS, or Ctrl on Linux and Windows, and click a URL or file path to open it. Plain http:// and https:// URLs open in your browser, and file paths in tool output, like the ones printed after an Edit or Write, open in your default application. A plain click without the modifier doesn’t open links, matching native terminal behavior.
    • Claude Code renders a network (UNC) path, such as \\server\share\file.ts, as plain text with no link, because opening a network path can send your Windows credentials to the host it names.
    • Some macOS terminals forward Cmd+click to the running app instead of opening the link themselves, and the terminal mouse protocol has no way to encode the Cmd key, so Claude Code receives a plain click. In Ghostty, and in Warp on macOS, Claude Code detects this and lets a plain click on a link open it, and holding Cmd still works.
    • In the VS Code integrated terminal and similar xterm.js-based terminals, Claude Code defers to the terminal’s own link handler, which uses the same gesture.
  • Click and drag to select text anywhere in the conversation. Double-click selects a word, matching iTerm2’s word boundaries so a file path selects as one unit. Double-clicking a URL selects the whole URL, including the scheme. Triple-click selects the line.
  • Scroll with the mouse wheel to move through the conversation.
Selected text copies to your clipboard automatically on mouse release. To turn this off, toggle Copy on select in /config. With Copy on select off, press Ctrl+Shift+c to copy manually. On terminals that support the kitty keyboard protocol, such as kitty, WezTerm, Ghostty, and iTerm2, Cmd+c also works. If you have a selection active, Ctrl+c copies instead of cancelling. With a selection active, hold Shift and press the arrow keys to extend it from the keyboard. Shift+↑ and Shift+↓ scroll the viewport when the selection reaches the top or bottom edge. Shift+Home and Shift+End extend to the start or end of the current line.

Scroll the conversation

Fullscreen rendering handles scrolling inside the app. Use these shortcuts to navigate: