[FEATURE] Expose active task subjects in statusline JSON input
Related Issue
This builds on #16388, which requests adding task/agent tracking data to the statusline JSON. While #16388 focuses on structural metadata (task type, subagent_type, id, count), it does not include the human-readable task description for agents — the short label passed to the Task tool (e.g., "Generating audio", "Building thumbnail").
This issue specifically requests exposing that description field so users can see what each subagent is doing at a glance, not just what type it is.
Note: Lost requirements from duplicate closures
Both #20588 and #24096 explicitly requested the description field in their proposed JSON schemas:
- #20588:
{ "description": "Running tests", "agent_type": "build-validator" } - #24096:
{ "description": "Find auth patterns", "agent_type": "Explore" },{ "description": "Run tests", "agent_type": "general-purpose" }
However, both were closed as duplicates of #16388 — which only includes description for shell tasks ("description": "pnpm dev"), not for agents. The description requirement was lost in the deduplication process.
This issue aims to ensure that requirement is not forgotten.
Problem Statement
When running background subagents (via the Task tool with run_in_background), the status line currently shows only an aggregate count like Tasks: 2. There is no way to see which subagents are currently running without scrolling back through the conversation.
Even with #16388 implemented, the proposed JSON only distinguishes agents by subagent_type (e.g., "Explore", "code-reviewer"), not by what task they are working on. For example, two parallel "general-purpose" agents would be indistinguishable:
{ "id": "agent_def456", "type": "agent", "subagent_type": "general-purpose" },
{ "id": "agent_ghi789", "type": "agent", "subagent_type": "general-purpose" }
Proposed Solution
Include the description field (the 3-5 word summary passed to the Task tool) in each task item within the statusline JSON:
{
"tasks": {
"count": 2,
"items": [
{ "id": "agent_abc", "type": "agent", "subagent_type": "general-purpose", "description": "Generating audio" },
{ "id": "agent_def", "type": "agent", "subagent_type": "general-purpose", "description": "Building thumbnail" }
]
}
}
This would allow custom statusline scripts to render something like:
[Generating audio, Building thumbnail]
When no background subagents are running, the array would be empty:
[]
Alternative Solutions
- Relying on
subagent_typealone (#16388): Insufficient when multiple agents of the same type run in parallel — they become indistinguishable. - Manually checking with
TaskOutput: Works, but interrupts the workflow and is not visible at a glance. - External monitoring: Could parse Claude Code's output externally, but this is fragile and unsupported.
Priority
Medium - Would be very helpful
Feature Category
Interactive mode (TUI)
Use Case Example
Example scenario:
- I kick off three background subagents in parallel: audio generation, infographic creation, and thumbnail generation — all using
subagent_type: "general-purpose" - With only #16388, the statusline JSON would show three identical
"general-purpose"entries - With this feature, each entry includes its
description, so my statusline can show[Generating audio, Creating infographic, Building thumbnail] - When subagents complete one by one, the display updates to
[Creating infographic]and finally[]
Additional Context
- The
descriptionparameter is already required when calling the Task tool and is designed as a short (3-5 word) human-readable label — it maps directly to this use case. - Several other "expose X in statusline JSON" requests exist (session name #18022, effort level #24758, rate limit #25041, billing usage #24489), showing precedent for expanding the statusline data model.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗