[FEATURE] Live progress indicator for backgrounded Bash tasks
Is your feature request related to a problem? Please describe.
When Claude launches a long-running command with run_in_background (e.g. a ~50-minute scraping job), the conversation shows nothing until the task completes. The command itself often emits perfectly good progress output (sites 1070/4439, percentages, tqdm bars…), but it goes to a log file the user never sees unless they manually tail -f it in another terminal, or unless Claude happens to check the log and mention it. From the user's point of view the session just sits there: there is no way to tell 5% from 95%, or a healthy run from a hung one.
Describe the solution you'd like
A live progress line for background tasks, rendered by the harness itself (like the spinner or the subagent/workflow progress tree), showing for each running background task the most recent stdout/stderr line — e.g.:
⏳ background b6ix85d9e (12m) | sites 1070/4439
The last line of output is a good universal proxy for progress: most long-running CLI tools (installers, scrapers, test suites, training scripts) already print counters or percentages. No new protocol needed — just surface the tail of the task's output file, throttled (say once per second), in the status area or task list (/tasks).
Describe alternatives you've considered
- Asking Claude to poll the log and post updates: wastes turns/tokens, and guidance rightly discourages polling loops.
tail -fin a separate terminal: works, but the user has to know the log path, and it defeats the point of an integrated UI.- #80491 proposes forcing full streaming and disabling backgrounding entirely — a valid but different trade-off; this request keeps backgrounding and adds visibility.
Additional context
Came up during a real session: a web-collection job over ~4,400 sites ran in the background for ~50 minutes. The script printed sites N/4439 every few seconds, so the information existed the whole time — it was just invisible.