Dashboard Guide

Tools

Aggregated tool invocation data — which tools your agents call most, and how long those calls take.

What the Tools page shows

Tools in the sidebar aggregates every tool call Trenchcoat captured in the selected date range. It answers:

  • Which tools does my agent call most often?
  • How long do those calls take, typically and at the tail?
  • Is a tool getting slower?

What counts as a "tool"

Anything appearing in a tool_use event. In Claude Code that includes:

  • Built-insRead, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch, Task/Agent, Skill, and the rest.
  • MCP tools — by fully qualified name, e.g. mcp__supabase__query.
  • Subagent tool calls — captured with the same hooks, and attributed to the spawning agent via origin_agent_id.

Skill and Agent calls are also modelled separately on the Skills and Agents pages, which carry attribution the flat tool table does not.


Tool Usage Distribution

A chart over the top 15 tools by volume.

All Tools

ColumnWhat it shows
Tool NameThe name as reported by Claude Code
CountTool calls in the selected period
Avg DurationMean call duration
p50Median duration
p9999th-percentile duration — the tail
TrendDirection of change across the period

The duration columns mix three kinds of measurement. Each captured duration is one of native (Claude Code reported it), computed (the plugin measured it with a monotonic clock), or reconciled — and a reconciled duration measures time until the failure was discovered at the end of the turn, not the tool's runtime. Trenchcoat records which kind each row is, but none of these aggregates filters on it, so p99 in particular is inflated by reconciled rows. Treat the tail as indicative.


Filtering

  • Date range — the picker at the top right. The chart and table both update.
  • Machine — the global machine filter; each API key maps to one machine.

What this page does not have

Stated explicitly, because earlier versions of this document described these and they have never existed:

  • No error-rate column. Tool failures are captured — is_error and a short error_preview — and the session call graph shows per-node error counts, but no aggregate error rate is rendered on this page.
  • No tool detail view. Rows are not clickable; there is no per-tool page.
  • No minimum-invocation filter.

Tool-failure capture has a history worth knowing. Claude Code does not fire the PostToolUse hook for a hard tool failure, so before plugin 2.1.0 a failed call produced no tool_result row at all — is_error was true on 0 of 43,354 stored rows. The plugin now recovers those from the session transcript at Stop. Historical data does not self-correct: sessions recorded before that fix still show no errors, however many really occurred.

On this page