Custom command statusLine never displayed on Windows (Git Bash) — Claude Code 2.1.156

Resolved 💬 2 comments Opened Jun 9, 2026 by schelhorn19 Closed Jun 12, 2026

Summary

A configured custom statusLine (type command) is never displayed in the Claude Code UI on Windows with Git Bash. The built-in default status line worked fine; the status line disappeared as soon as a custom command status line was configured and has not reappeared for several days. Toggling the status line off and on via /config does not restore it, and a full restart of Claude Code does not help.

Environment

  • OS: Windows 11 Pro (10.0.26200)
  • Terminal: Windows Terminal (WT_SESSION set), TERM=xterm-256color
  • Claude Code: 2.1.156
  • Shell for status line: Git Bash (C:/Users/<user>/AppData/Local/Programs/Git/bin/bash.exe)

Configuration (~/.claude/settings.json)

"statusLine": {
  "type": "command",
  "command": "\"C:/Users/<user>/AppData/Local/Programs/Git/bin/bash.exe\" \"C:/Users/<user>/.claude/statusline.sh\"",
  "padding": 0
}

Paths are absolute with forward slashes. There is no settings.local.json overriding this.

What works

  • Running the status line script in isolation produces correct, single-line ANSI output with no trailing newline:

``
echo '{"model":{"display_name":"Claude Opus 4.8 (1M context)","id":"claude-opus-4-8[1m]"},"workspace":{"current_dir":"C:/Users/<user>/.claude"}}' \
| "C:/Users/<user>/AppData/Local/Programs/Git/bin/bash.exe" "C:/Users/<user>/.claude/statusline.sh"
# -> Opus 4.8 | [....] 4% | 46k/1M | $1.86 | .claude | 09:53
``

  • The default (built-in) status line was visible before a custom command status line was configured.

What fails

  • With the custom statusLine command configured, nothing is rendered at the bottom of the Claude Code UI.
  • A status-line debug log (the script appends to a log on each invocation) shows no invocations originating from Claude Code while the config is active — only manual test invocations appear. This suggests Claude Code is not invoking the configured command at all, rather than invoking it and failing to render the output.
  • Toggling the status line via /config (off, then on) does not produce any new invocation in the log and does not restore the display.
  • Fully quitting and relaunching Claude Code does not help.

Steps to reproduce

  1. On Windows with Git Bash, add a statusLine block of type command to ~/.claude/settings.json pointing at a bash script via the Git Bash executable.
  2. Confirm the script runs correctly when piped test JSON manually.
  3. Start Claude Code and observe that no status line is displayed.
  4. Toggle via /config and/or restart; status line still does not appear.

Expected

The configured custom status line is invoked on each render and displayed at the bottom of the UI, as the built-in default status line was.

Workaround

Removing the statusLine block from settings.json restores the built-in default status line.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗