Add active plan file path to status line JSON data
Feature Request
Add the active plan file path/name to the status line JSON input
Problem
The status line receives session JSON via stdin with fields like session_id, model, context_window, workspace, etc. However, when plan mode is active, there is no field indicating which plan file is being used.
This makes it impossible to display the current plan name in the status line — which would be very useful for users who:
- Run multiple Claude Code instances simultaneously, each working on different plans
- Want at-a-glance visibility into which plan each instance is executing
Current Workaround Considered
Using ls -t ~/.claude/plans/*.md | head -1 to find the most recently modified plan file. This does not work reliably when multiple instances are active concurrently, since each instance has its own plan but the filesystem approach can't distinguish between them.
Proposed Solution
Add a plan object (or similar) to the status line JSON input when plan mode is active:
{
"plan": {
"file_path": "/home/user/.claude/plans/async-spinning-nebula.md",
"name": "async-spinning-nebula"
}
}
When plan mode is not active, the field could be null or omitted.
Use Case
Users could then display the active plan in their status line script, e.g.:
plan_name=$(echo "$input" | jq -r '.plan.name // empty')
if [ -n "$plan_name" ]; then
printf ' \033[33m[plan: %s]\033[00m' "$plan_name"
fi
Environment
- Claude Code CLI on Linux (Ubuntu)
- Multiple concurrent instances via remote SSH / multiple terminals
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗