[BUG] Garish progress bar at top of screen appeared in 2.0.52 or .53

Status Fixed / completed
Maintainer reply None cached
Activity 4 comments · opened Nov 25, 2025 · closed Dec 3, 2025

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Using iTerm 2 and running Claude Code v2.0.53 on Linux (Debian 13), this is over SSH, I get this incredibly prominent and distracting progress bar. It seems to only shows up when CC is waiting on a command/task to finish running (or waiting for user input).

https://github.com/user-attachments/assets/ff4febb3-125e-4f38-ae44-02bb2f823175

What Should Happen?

Can this progress bar be turned off or at least made configurable?

Error Messages/Logs

Steps to Reproduce

  1. Open Claude Code 2.0.53 in iTerm2, over SSH (dark theme in terminal). Ask the model to run a long-running shell command, the progress bar will appear.

Claude Model

Opus

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.0.50

Claude Code Version

2.0.53

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

iTerm2

Additional Information

_No response_

View original on GitHub ↗

4 Comments

github-actions[bot] · 10 months ago

---

Found 1 possible duplicate issue:

  1. https://github.com/anthropics/claude-code/issues/12345

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

---

dkulchenko · 10 months ago

Claude Code's analysis of the diff between 2.0.51 and 2.0.53:

Found the bug!

  The issue is with the OSC 9;4 terminal progress indicator - a feature that shows a progress bar in the terminal's
  title bar or tab (supported by ConEmu, Ghostty, and some others).

  What Changed

  In v2.0.51 (cli.js:403280-403330):
  class O81 {
    isAvailable() {
      if (!process.stdout.isTTY) return !1;
      if (S0.terminal === "windows-terminal") return !1;
      let A = S0.terminal?.toLowerCase();
      return A === "conemu" || A === "ghostty";  // ← Only ConEmu/Ghostty
    }
    report(A) {
      if (!this.isAvailable()) return;  // ← Guard check
      // ... outputs OSC 9;4 sequence
    }
  }

  In v2.0.53 (cli.js:220760-220780):
  // New general rendering pipeline
  case "progress":
    B += o06(G.state);  // ← NO terminal compatibility check!
    break;

  function o06(A) {
    // Directly outputs OSC 9;4 to ALL terminals
    return `${lb1}9;4;${Q};${G}${f3A}`;  // \x1b]9;4;...
  }

  The Problem

  The terminal compatibility check was removed in v2.0.53. The OSC 9;4 sequence (which creates the progress bar
  effect) is now being sent to all terminals, not just ConEmu and Ghostty which support it.

  Your terminal doesn't understand this escape sequence, so instead of showing a progress bar in the title/tab area,
  it's rendering the escape codes as visual garbage - the "green scrolling gradient progress bar" you're seeing.

  Workaround

  Until this is fixed, you could try:
  1. Set TERM_PROGRAM or another env var that might trick the detection
  2. Downgrade to v2.0.51
  3. Use a terminal that supports OSC 9;4 (Ghostty, ConEmu)

  This appears to be a regression bug where the refactoring to a new rendering pipeline lost the terminal capability
  check.
dkulchenko · 10 months ago

Closing - #12620 resolved this.

github-actions[bot] · 10 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.