[FEATURE] Show the Bash description instead of the raw command in the Background tasks and Shell details screens
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
When the agent starts background shells, the Background tasks screen labels each one with its raw command. Agent-written commands are often long one-liners (shell functions, loops, gh ... --jq filters), so the label gets cut off before it says anything useful. With two or more shells running, you can't tell which is which without opening each one.
Background
2 active shells · 1 active agent
Shells (2)
❯ ⏺ G(){ CLOUDSDK_ACTIVE_CONFIG_NAME=my-config "$@"; }; for sha in 8282005 aab8911; do id=$(gh run list --repo my-org/backend --branch main --workflow API --limit 5 --json dat… running
⏺ sleep 20; for sha in aab8911; do id=$(gh run list --repo my-org/backend --branch main --workflow API --limit 3 --json databaseId,headSha --jq ".[] | select(.headSha|star… running
The Shell details screen has the same problem. The only thing that identifies the task is the command, and it's truncated there too:
Shell details
Status: running
Runtime: 23m 58s
Command: G(){ CLOUDSDK_ACTIVE_CONFIG_NAME=my-config "$@"; }; for sha in 8282005 aab8911; do id=$(gh run list --repo my-org/backend --branch main --workflow API --limit 5 --json databaseId,headSha --jq ".[] | select(.headSha|startswith(\"$sha\")) | .databaseId" | head -1); gh run watch $id…
Proposed Solution
Label each background task with a short, human-readable description instead of the raw command.
- Background tasks list: show the description (e.g.
Watch API CI runs for 8282005 and aab8911) instead of the command. - Shell details: add a
Description:line aboveCommand:, and keep the full command visible there.
The Bash tool already takes a description parameter, and the model fills it in on every call. Using that value for these labels may be enough, with no new field needed. If it's missing, fall back to the command, as the UI does today.
Background tasks list:
Background
2 active shells · 1 active agent
Shells (2)
❯ ⏺ Watch API CI runs for 8282005 and aab8911 running
⏺ Recheck API CI run for aab8911 running
Shell details:
Shell details
Status: running
Runtime: 23m 58s
Description: Watch API CI runs for 8282005 and aab8911
Command: G(){ CLOUDSDK_ACTIVE_CONFIG_NAME=my-config "$@"; }; for sha in 8282005 aab8911; do id=$(gh run list --repo my-org/backend --branch main --workflow API --limit 5 --json databaseId,headSha --jq ".[] | select(.headSha|startswith(\"$sha\")) | .databaseId" | head -1); gh run watch $id…
Priority
Medium - Would be very helpful
Feature Category
Interactive mode (TUI)
Use Case Example
- I ask Claude to push two commits and watch their CI runs.
- It starts two background shells that poll
gh run list/gh run watch, plus a subagent. - I open the Background tasks screen to check progress or kill one of them.
- Today both rows start with nearly identical shell boilerplate, so I can't tell them apart. With descriptions, I'd see "Watch API CI runs for 8282005 and aab8911" and "Recheck API CI run for aab8911" and know right away which one to inspect or stop.