Follow Discord
Sweep 22 Sep 2026 · 17:19Z Build v2.1.280 501 read Stable v2.1.267 Latest v2.1.280 Next v2.1.280 Feeds RSS JSON llms.txt Unofficial
Claude Code v2.1.269 ·

Terminal capability detection reworked into a probe-and-settle model

Terminal feature detection (sync output, extended keys, kitty keyboard) now probes the terminal and settles capabilities from its actual reply, and git object-format detection moved to its own helper

TierUnder the hoodhow much it should matter to you
Useful2my rating, 1 to 5
Signal2worth watching, 1 to 5
AreaTerminal UIwhat it touches
KindInternal Changesin v2.1.269,
Group of 4 Under the hood

Terminal feature detection (sync output, extended keys, kitty keyboard) now probes the terminal and settles capabilities from its actual reply, and git object-format detection moved to its own helper

What

  • Synchronized-output detection was restructured into reason-carrying helpers; checks for TMUX, CLAUDE_CODE_FORCE_SYNC_OUTPUT, and JetBrains terminals now live together, returning a reason string (like TERM_PROGRAM=...) instead of a plain boolean. The old Konsole-version allowlist entry and the old runtime terminal self-query for sync-output support were removed.
  • A new Capabilities tracker treats extendedKeys, synchronizedOutput, and kittyKeyboard as either 'settled' (known) or 'pending' (a guess awaiting a probe response), recording a source/reason for each. Probing now also issues a CSI ?u query for kitty-keyboard/extended-key support, alongside the existing DECRPM 2026 sync-output probe, and treats DECRPM status 3 (not just 1 or 2) as 'supported'.
  • The function that used to shell out to git rev-parse --show-object-format to detect a repo's sha256/sha1 object format was rewritten to instead decide whether synchronized terminal output is active (checking CLAUDE_BG_BACKEND, CLAUDE_CODE_FORCE_SYNC_OUTPUT, and the new capability state). The git object-format check itself moved into its own dedicated helper.

Why Detecting terminal features by actually probing and reading the terminal's reply, rather than guessing from TERM or hardcoded version allowlists, makes Claude Code's terminal rendering more reliable across a wider range of terminal emulators.

Read from
Names in the bundleCLAUDE_CODE_FORCE_SYNC_OUTPUT

See this entry in the whole of v2.1.269 →

Feedback