Custom command statusLine never displayed on Windows (Git Bash) — Claude Code 2.1.156
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_SESSIONset),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
statusLinecommand 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
- On Windows with Git Bash, add a
statusLineblock of typecommandto~/.claude/settings.jsonpointing at a bash script via the Git Bash executable. - Confirm the script runs correctly when piped test JSON manually.
- Start Claude Code and observe that no status line is displayed.
- Toggle via
/configand/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.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗