[FEATURE] Surface ultraplan agent prompt/response stream in CLI TUI without requiring web access
Problem
When an ultraplan is running, the CLI shows only a minimal status summary:
◇ ultraplan · 17m 35s · running
1 agent working · 0 tool calls
https://claude.ai/code/session_018M8ZB4N2sRzAAQMm3eVSdj
1. Open in Claude Code on the web
❯ 2. Stop ultraplan
3. Back
The only way to see what the agent is actually doing — the prompts being sent, the responses coming back, the reasoning being applied — is to open the web URL in a browser. This defeats the purpose of a CLI-first tool and creates friction in several real workflows:
- SSH/remote sessions where opening a browser is not possible
- Headless CI/CD or automation environments with no GUI
- Developer flow — context-switching to a browser tab breaks focus; you already have the terminal open
- Monitoring multiple ultralplans — tabbing between browser sessions is far less efficient than tailing multiple terminal panes
Proposed Solution
Add a live prompt/response stream view accessible directly in the CLI TUI when an ultraplan is running. Concretely:
Option A: Inline stream (minimal)
Add a 4th menu option or keybinding (e.g., v for view, or l for log) that expands the ultraplan status into a scrollable, real-time feed of:
- Agent prompt messages (what the orchestrator is sending to the sub-agent)
- Agent response chunks (streamed as they arrive)
- Tool calls and their results (collapsed by default, expandable)
◇ ultraplan · 17m 35s · running
1 agent working · 12 tool calls
[14:32:01] → Agent prompt: "Analyze the authentication module..."
[14:32:08] ← Agent: "I'll start by reading the auth middleware..."
[14:32:09] 🔧 Read /src/auth/middleware.ts (243 lines)
[14:32:11] ← Agent: "The middleware uses JWT validation with..."
[14:32:15] 🔧 Grep "validateToken" (3 matches)
...
❯ 1. View live log (streaming)
2. Open in Claude Code on the web
3. Stop ultraplan
4. Back
Option B: Tail mode (power-user)
Support --tail or --follow flag for ultraplan sessions:
claude ultraplan --tail <session-id>
# or
claude session tail <session-id>
This streams the agent's prompt/response exchange to stdout in real-time, similar to kubectl logs -f or docker logs -f. Can be piped, grepped, or tailed in a split pane.
Option C: Both
Option A for interactive use, Option B for scriptable/automation use.
Why This Matters
The ultraplan feature is powerful precisely because it handles long, complex tasks autonomously. But "autonomous" should not mean "opaque." The current UX forces a binary choice:
- Trust blindly — wait 20+ minutes with zero visibility, then discover the agent went in the wrong direction
- Leave the terminal — open a browser to monitor, losing the CLI workflow
A middle ground — observe without interrupting — is standard in every orchestration tool (k8s, CI runners, Docker, tmux). Claude Code should offer the same for its own agent orchestration.
Related Issues
- #27695 —
/statuscommand for multi-agent progress - #30438 — First-class plan system with PlanStatus tool
- #24537 — Agent hierarchy dashboard (consolidates 20+ issues)
- #39008 — Visual progress indicators for background subagents
- #43584 — No observability between PreToolUse and PostToolUse
- #30492 — Real-time steering mid-execution
- #14859 — Agent hierarchy in hook events
Environment
- Claude Code CLI (terminal / SSH / headless)
- All platforms (macOS, Linux, Windows WSL)
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗