[Bug] Status line displays incorrect model across multiple Claude Code sessions
Bug Description
---
Title: Status line displays wrong model when changed in a different Claude Code session
Description:
When running multiple Claude Code sessions in different terminals, changing the model in one session incorr
Steps to Reproduce:
- Open Terminal 1 and start Claude Code
- Change model to Opus: /model opus
- Verify with /model - confirms Opus is active
- Verify status line shows "Opus"
- Open Terminal 2 and start a second Claude Code session
- In Terminal 2, change model to Sonnet: /model sonnet
- Check the status line in Terminal 1 (the Opus session)
Expected Behavior:
- Terminal 1 status line should continue to display "Opus" because that session is still running Opus
- Terminal 2 status line should display "Sonnet" because that session is running Sonnet
- Each Claude Code session should maintain its own independent status line display
Actual Behavior:
- Terminal 1 status line incorrectly changes to display "Sonnet" even though /model in Terminal 1 confirms it's still running Opus
- The status line appears to be global/shared across all Claude Code sessions instead of being per-session
- Asking Claude in Terminal 1 which model it is correctly returns Opus 4.5, but the status line shows Sonnet
Environment:
- OS: Linux (Arch Linux 6.17.9-arch1-1)
- Claude Code version: [output of claude --version]
- Status line script: Custom script at ~/.claude/statusline-command.sh
- Status line script correctly reads from model.display_name via jq
Additional Context:
The status line script implementation:
#!/bin/bash
input=$(cat)
MODEL_DISPLAY=$(echo "$input" | jq -r '.model.display_name')
CURRENT_DIR=$(echo "$input" | jq -r '.workspace.current_dir')
echo "[$MODEL_DISPLAY] ${CURRENT_DIR##*/}"
The issue suggests that either:
- The JSON context passed to status line scripts is shared/global across all Claude Code instances instead of being per-session
- Model changes trigger status line updates in all running sessions instead of only the session where the change occurred
- Multiple sessions may be reading from a shared state file
Each Claude Code session should maintain completely independent status line state.
Environment Info
- Platform: linux
- Terminal: alacritty
- Version: 2.0.76
- Feedback ID: 522000f0-7446-46be-9f81-36f2d960df53
Errors
[{"error":"Error: Request was aborted.\n at OT.makeRequest (file:///home/antavelis/bin/npm/lib/node_modules/@anthropic-ai/claude-code/cli.js:857:3940)\n at process.processTicksAndRejections (node:internal/process/task_queues:103:5)","timestamp":"2026-01-07T09:51:01.642Z"},{"error":"Error: EISDIR: illegal operation on a directory, read\n at Module.readFileSync (node:fs:435:20)\n at file:///home/antavelis/bin/npm/lib/node_modules/@anthropic-ai/claude-code/cli.js:9:429\n at oI (file:///home/antavelis/bin/npm/lib/node_modules/@anthropic-ai/claude-code/cli.js:8:8084)\n at Object.readFileSync (file:///home/antavelis/bin/npm/lib/node_modules/@anthropic-ai/claude-code/cli.js:9:404)\n at zdB (file:///home/antavelis/bin/npm/lib/node_modules/@anthropic-ai/claude-code/cli.js:4739:22342)\n at Object.call (file:///home/antavelis/bin/npm/lib/node_modules/@anthropic-ai/claude-code/cli.js:1027:942)\n at Au5 (file:///home/antavelis/bin/npm/lib/node_modules/@anthropic-ai/claude-code/cli.js:2207:17446)\n at runNextTicks (node:internal/process/task_queues:64:5)\n at process.processImmediate (node:internal/timers:472:9)","timestamp":"2026-01-07T09:52:39.151Z"}]This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗