UI label 'Shell' does not match backend tool namespace 'Task', causing LLM lexical confusion

Resolved 💬 3 comments Opened May 7, 2026 by bfallin-cs Closed Jun 4, 2026

Problem

The Claude Code UI surfaces background shell commands with the label "Shell" (e.g. "1 Shell running", "Shell details"). However, the backend tools that manage these processes use the namespace "Task" -- TaskStop, TaskOutput, TaskList, TaskGet.

This creates a semantic mismatch that breaks the LLM's natural-language-to-tool-name lookup:

  1. User sees "Shell" in the UI
  2. User says "kill your shell" or "your shell is still running"
  3. LLM searches for a tool containing "shell" -- finds nothing
  4. LLM is confused and reaches for wrong tools (pkill, kill %1, etc.)
  5. The correct tool (TaskStop) is never found without an explicit tool search

The LLM essentially has to stumble onto TaskStop rather than deriving it from the user's natural language.

Expected behavior

Either:

  • Option A: Rename the UI label from "Shell" to "Task" to match the backend tool namespace, OR
  • Option B: Expose a KillShell / ShellStop tool alias so the UI label maps directly to a discoverable tool name

Impact

Every time a user references a running shell by the UI label, the LLM fails to find the correct management tool. This is a consistent, reproducible failure mode -- not a one-off.

Steps to reproduce

  1. Start a long-running background Bash command (e.g. grep on a large file)
  2. UI shows "1 Shell running"
  3. Ask Claude to "kill your shell" or "that shell is still running"
  4. Claude will not find TaskStop without a manual tool search

Reported by a Claude Code user during a topology analysis session.

View original on GitHub ↗

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