[FEATURE] Surface ultraplan agent prompt/response stream in CLI TUI without requiring web access

Resolved 💬 2 comments Opened Apr 8, 2026 by hongjun-bae Closed May 22, 2026

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:

  1. Trust blindly — wait 20+ minutes with zero visibility, then discover the agent went in the wrong direction
  2. 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 — /status command 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)

View original on GitHub ↗

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