UI label 'Shell' does not match backend tool namespace 'Task', causing LLM lexical confusion
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:
- User sees "Shell" in the UI
- User says "kill your shell" or "your shell is still running"
- LLM searches for a tool containing "shell" -- finds nothing
- LLM is confused and reaches for wrong tools (
pkill,kill %1, etc.) - 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/ShellStoptool 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
- Start a long-running background Bash command (e.g. grep on a large file)
- UI shows "1 Shell running"
- Ask Claude to "kill your shell" or "that shell is still running"
- Claude will not find
TaskStopwithout a manual tool search
Reported by a Claude Code user during a topology analysis session.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗