Feature: In-flight task/sub-agent status in status line
Feature Request
Problem
The status line currently only updates after each assistant message completes (debounced at 300ms). It has no visibility into in-flight operations — running sub-agents, tool executions, or extended thinking phases. When Claude Code spawns multiple sub-agents or runs long tool calls, the user has no real-time feedback on what's happening.
Current Behavior
The status line JSON payload contains only cumulative session metrics:
- Model name, session cost, duration
- Context window usage
- Lines added/removed
- Vim mode state
It does not include:
- Active sub-agent count or status
- Which tool is currently executing
- Extended thinking state
- Task progress (e.g., "3/5 sub-agents complete")
Updates only fire between assistant messages, so the status line goes stale during long operations.
Proposed Behavior
Expose in-flight operational state to the status line script, for example:
{
"active_tasks": [
{"id": "abc123", "type": "Explore", "description": "Searching codebase", "started_at": "..."}
],
"active_task_count": 1,
"tool_in_progress": "Grep",
"thinking": true
}
Key capabilities:
- Active sub-agent tracking — count, type, and short description of running sub-agents
- Tool execution state — which tool is currently running
- Thinking indicator — whether Claude is in an extended thinking phase
- Mid-execution updates — fire status line updates during long operations, not only after message completion
This would let users build status lines like:
⏳ 2 agents running | 🔍 Grep | ctx: 45% | $0.12
Workarounds Considered
- Hooks (
SubagentStart/SubagentStop) can log events externally but can't feed back into the status line in real time - Transcript tailing works but is outside the Claude Code UI
- Running sub-agents in the foreground loses parallelism benefits
Use Case
Power users running complex multi-step tasks benefit from knowing what Claude Code is doing at any moment — especially when multiple sub-agents are spawned in parallel or a single tool call takes a long time. This reduces uncertainty and helps users decide whether to wait or interrupt.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗