Skip to content

Feature: Show full tool details in streaming output, not just tool names #277

@SMouuu

Description

@SMouuu

Problem

During agent execution, the streaming output (shown in Telegram / TinyOffice) only displays the tool name:

[tool: Bash]
[tool: Read]
[tool: Grep]
[tool: CronList]

This gives almost no useful information — the user can see which tool was called but has no idea what it's doing. It's like watching a progress bar with no label.

Current behavior

In packages/core/src/adapters/claude.ts, extractEventText() only extracts block.name:

} else if (block.type === 'tool_use' && block.name) {
    parts.push(`[tool: ${block.name}]`);
}

Proposed behavior

Show the full tool invocation details, e.g.:

[tool: Bash] npm run build
[tool: Read] src/config.ts
[tool: Grep] pattern="onEvent" path=packages/core/
[tool: WebSearch] "TinyAGI latest release"

This could be as simple as including a summary of block.input alongside the tool name. For tools with long inputs (like Write), a truncated version would be fine.

Suggested implementation

Ideally this should be configurable in settings.json, e.g.:

{
  "streaming": {
    "toolDisplay": "full"  // "name" (current default) | "full" | "summary"
  }
}
  • "name" — current behavior, just [tool: Name]
  • "full" — show tool name + key input parameters
  • "summary" — show tool name + truncated first argument (e.g., first 80 chars)

Why this matters

When an agent takes 1-2 minutes to respond, the user stares at a stream of [tool: Bash] / [tool: Read] with no context. Being able to see what the agent is actually doing builds trust and helps debug when things go wrong.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions