Add active plan file path to status line JSON data

Resolved 💬 3 comments Opened Mar 28, 2026 by undenuicap Closed Apr 1, 2026

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

View original on GitHub ↗

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