Feature request: Human-readable titles/labels for tool use blocks
Problem
In long Claude Code sessions, it becomes very difficult to scroll back and identify what each tool use block did. Every block looks structurally similar — Read file, Write file, Bash command — and there's no quick way to orient yourself in a complex multi-step workflow.
After 20+ tool calls in a session, trying to find "the step where we updated the config" means scanning through every collapsed block manually.
Proposed Solution
Add a human-readable title/label to each tool use block in the terminal UI. The model already understands the intent behind each action — surface that as a visible header on each block.
Before (current):
▸ Read file: src/components/App.tsx
▸ Bash: npm test
▸ Write file: src/components/App.tsx
▸ Bash: npm test
▸ Read file: src/utils/config.ts
After (proposed):
▸ [Reviewing main App component] Read file: src/components/App.tsx
▸ [Running initial test suite] Bash: npm test
▸ [Fixing broken import in App] Write file: src/components/App.tsx
▸ [Verifying fix passes tests] Bash: npm test
▸ [Checking config for API endpoint] Read file: src/utils/config.ts
Prior Art
- Meta's Metamate agent uses a notebook-style UI where every code execution cell gets a descriptive title (e.g., "Query user metrics", "Plot weekly trends"). This makes long sessions navigable and reviewable.
- Jupyter notebooks — cell titles and markdown headers serve the same purpose.
- IDE debugger step labels — breakpoints and step-through debugging show intent, not just mechanics.
Implementation Ideas
- The model could emit a short
titlefield alongside each tool call (similar to how it already generates reasoning text) - Rendered as a prefix on the collapsed tool block header
- Could be toggleable via a setting for users who prefer the current minimal view
- Minimal prompt engineering needed — the model already has this context, it just needs a structured place to surface it
Impact
This would significantly improve usability for:
- Long coding sessions (20+ tool calls)
- Reviewing session history / conversation replay
- Pair programming where someone else needs to understand what happened
- Debugging when something went wrong mid-session
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗