Expose active skills and running subagents in statusline JSON data

Resolved 💬 3 comments Opened Apr 14, 2026 by michtio Closed Apr 14, 2026

Problem

The statusline API currently exposes agent.name for the primary agent of a session, but does not surface:

  1. Active skill — when a skill is invoked via the Skill tool, there's no field in the statusline JSON indicating which skill is running
  2. Running subagents — when subagents are spawned via the Agent tool (e.g. subagent_type: "Explore", custom agents), there's no visibility into which ones are active, their names, or their status

This limits what custom statuslines can display. The only agent-related field available is agent.name, which only reflects the primary session agent (set via --agent flag), not dynamically spawned subagents.

Proposed solution

Add two new fields to the statusline JSON payload:

{
  "active_skill": {
    "name": "craft-site"
  },
  "subagents": [
    { "name": "craft-planner", "status": "running" },
    { "name": "Explore", "status": "running" }
  ]
}
  • active_skill — present only when a skill is currently loaded/executing, null or absent otherwise
  • subagents — array of currently running subagents with their name/type and status (running, completed, etc.)

Use case

Custom statuslines that show real-time session state. For example, displaying which skill is guiding the current response, or showing that background agents are working — so users know what's happening without reading the full output stream.

View original on GitHub ↗

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