[FEATURE] Show the Bash description instead of the raw command in the Background tasks and Shell details screens

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 27, 2026

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 above Command:, 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

  1. I ask Claude to push two commits and watch their CI runs.
  2. It starts two background shells that poll gh run list / gh run watch, plus a subagent.
  3. I open the Background tasks screen to check progress or kill one of them.
  4. 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.

View original on GitHub ↗