[BUG] Mobile (iOS): no streaming output visibility for long-running Bash commands
Summary
When running long-running Bash tool calls (container builds, package installs, cargo builds, etc.) through Claude Code on the iOS app, there is no streaming output or progress visibility. The tool call card appears but shows nothing until the command completes.
Environment
- Platform: iPhone, Claude iOS app (research preview)
- iOS: 18+
- Plan: Pro/Max
Steps to reproduce
- Open a Claude Code session on iPhone via the Claude iOS app
- Ask Claude to run a long-running command (e.g. a container build,
cargo build,npm install) - Observe the tool call card — no output is visible while the command runs
Expected behavior
Some indication of progress: streaming stdout/stderr, a byte counter, elapsed time, or at minimum a scrollable log while the command runs.
Actual behavior
Nothing. The tool card shows the command was invoked but is otherwise blank until the command finishes — or fails, with no indication of why.
Why this should be a harness fix, not a model fix
The current workaround is to instruct Claude to pass run_in_background: true on long-running Bash calls and redirect output to a temp log file. This works — it at least keeps the conversation responsive — but it requires the model to remember to do it, which is fragile. It's a behavioral patch on the agent side for a problem that belongs to the harness.
The harness already knows:
- when a Bash command is running
- how long it has been running
- what stdout/stderr is being produced
None of that requires model involvement. Streaming that output into the tool card, or surfacing a "view live output" pane, is purely a harness/UI concern. The model shouldn't need to compensate for missing infrastructure visibility.
This matters more on mobile than desktop because a desktop user can open a second terminal and tail the log file themselves. A user on iPhone cannot.
Impact
This compounds a trust problem inherent to agentic workflows: the user has already ceded execution control to the agent, and then also loses visibility into what's happening. Two things gone at once. On desktop this is tolerable because other visibility tools exist. On mobile it isn't.
Workaround
Ask Claude to use run_in_background: true and redirect output:
podman build -t myimage . > /tmp/build.log 2>&1
This keeps the conversation responsive but provides no in-app visibility into the log. A desktop user can tail it; an iPhone user cannot.
Related
- #28427 — permission prompts not visible on iOS (same theme: mobile UI missing harness-level feedback)
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗