Urgent.News

What's breaking now, across thousands of outlets.

World

Why Claude Code Flickered: DEC Mode 2026, Cell Diffs and a 16 ms Frame Budget

Book: System Design Pocket Guide: Fundamentals Also by me: Thinking in Go (2-book series) — Complete Guide to Go Programming + Hexagonal Architecture in Go My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub GitHub issue #769 on the Claude Code repo, "In-progress Call causes Screen Flickering", was opened on April…

In December 2025, a thread on Anthropic's GitHub issue #769 revealed that the Claude Code terminal rendering system had been rewritten to reduce flickering by approximately 85%. Despite this improvement, the issue persisted for some users.

The Claude Code interface operates like a small game engine rather than just a text-based user interface (TUI). It builds a scene graph with React, lays it out, rasterizes it to a 2D screen, and then differentiates the current frame against the previous frame before converting the differences into ANSI sequences. This process can lead to flickering if a frame takes more than one write, as the terminal may paint the screen halfway through the update, resulting in a blank block or half-rendered frames.

To address the flickering issue, Anthropic implemented a solution using DEC private mode 2026, synchronized output. This mode allows the terminal to keep reading and processing input while displaying the last painted frame until the app signals the end of a frame. The terminal then repaints the entire grid in one go, effectively double buffering the output with the app specifying when to swap frames.

To enable this mode, users can use the DECSET 2026 command (ESC [ ? 2026 h) before sending cursor movements or clears, and DECSTR (ESC [ ? 2026 l) after. The Claude Code documentation now explicitly advises tmux users to follow these steps to prevent flickering when streaming output in split panes or Windows Terminal.

However, early adopters faced challenges. tmux, while supporting the app side of the mode, did not initially propagate the markers to the outer terminal. As a result, users had to wait for tmux to support the client-side of the mode. In December 2025, Chris Lloyd opened a pull request for tmux (PR #4744) to hold the output of a pane that sends DEC 2026 until the mode is ended or a one-second timeout occurs.

This fix was later applied to the OpenBSD tree, and tmux also began supporting the client-side of the mode (PR #5453) to ensure proper communication between the app and the terminal.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in World

More from Tuesday 20 October →