StatusLine not executing in VS Code on Windows (2.1.34)

Resolved 💬 3 comments Opened Feb 7, 2026 by Baouse Closed Feb 11, 2026

StatusLine Not Executing in Claude Code 2.1.34 on Windows (VS Code)

Summary

StatusLine is configured correctly in settings.json but the command is never executed. Debug logging confirms zero invocations despite proper configuration.

Environment

  • Claude Code Version: 2.1.34
  • OS: Windows 11
  • Terminal: VS Code integrated terminal (TERM_PROGRAM=vscode)
  • Shell: Git Bash (xterm-256color)
  • Node.js: v25.6.0 (available in PATH)

Configuration

Global Settings (~/.claude/settings.json)

{
  "permissions": {
    "defaultMode": "default"
  },
  "statusLine": {
    "type": "command",
    "command": "node C:\\Users\\Mina\\.claude\\statusline.cjs"
  },
  "autoUpdatesChannel": "latest",
  "theme": "dark",
  "model": "sonnet"
}

Project Settings (.claude/settings.local.json)

{
  "statusLine": {
    "type": "command",
    "command": "\"C:\\Program Files\\nodejs\\node.exe\" C:\\Users\\Mina\\.claude\\statusline-test.cjs"
  },
  "permissions": { ... }
}

Issue Details

Observed Behavior

  1. No status line visible - User sees nothing (not even a default status line)
  2. Command never executed - Debug logging added to the script shows zero invocations
  3. Script works when tested manually - Running the script via pipe produces correct output

Debug Evidence

Added debug logging to the statusline script:

const debugPath = path.join(os.tmpdir(), 'claude-statusline-debug.log');
fs.appendFileSync(debugPath, `[${new Date().toISOString()}] Script invoked\n`);

Result: Debug log file shows ZERO entries from Claude Code, only manual test invocations.

What We've Verified

✅ Settings files are valid JSON
disableAllHooks is NOT set
✅ Script outputs to stdout correctly
✅ Node.js is in PATH and accessible
✅ Script works when piped JSON manually:

echo '{"workspace":{...},"model":{...},"context_window":{...}}' | node statusline.cjs
# Output: 📁 ~/obs  🤖 Opus 4.6  ⌛ 2h 12m until reset at 02:00  🟢 ▱▱▱▱▱▱▱▱▱▱▱▱ 3%

✅ Tested multiple approaches:

  • Relative path: node .claude/statusline.cjs
  • Absolute path: node C:\\Users\\Mina\\.claude\\statusline.cjs
  • Full node.exe path: "C:\\Program Files\\nodejs\\node.exe" script.cjs
  • Minimal test script (outputs immediately without stdin)

✅ Tried both settings.json and settings.local.json at global and project levels

Expected Behavior

Claude Code should execute the statusLine command after each assistant message and display the output as a status line in the terminal.

Actual Behavior

Claude Code never executes the statusLine command. The script is never invoked, as confirmed by:

  1. No debug log entries from Claude Code
  2. No visible status line output
  3. User reports seeing "nothing"

Additional Context

Related Issues

  • Issue #14125 reported similar Windows Terminal rendering problems, marked as resolved in January 2026
  • However, this issue is different: the command isn't being executed at all, not just failing to render

Terminal Check

echo "TERM=$TERM"                    # xterm-256color
echo "TERM_PROGRAM=$TERM_PROGRAM"    # vscode
echo "WT_SESSION=$WT_SESSION"        # (empty - not Windows Terminal)

Running in VS Code's integrated terminal, which according to documentation should support statusLine.

Reproduction Steps

  1. Install Claude Code 2.1.34 on Windows
  2. Launch from VS Code integrated terminal
  3. Configure statusLine in ~/.claude/settings.json:

``json
{
"statusLine": {
"type": "command",
"command": "node path/to/statusline.cjs"
}
}
``

  1. Create a minimal statusline script that logs invocations
  2. Start Claude Code session
  3. Observe: No status line appears, debug log shows no invocations

Questions

  1. Does statusLine work in VS Code integrated terminal on Windows?
  2. Are there additional requirements for statusLine to execute?
  3. Is there a way to enable verbose logging to see why statusLine isn't being invoked?
  4. Could this be related to how Claude Code detects the terminal type in VS Code?

Workaround Attempted

Tested with PowerShell-based statusLine (original approach before switching to Node.js) - same issue, never executed.

---

Note: This is a complete failure to invoke the statusLine command, not a rendering or output issue. The script itself works perfectly when tested manually.

View original on GitHub ↗

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