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-ins —
Read,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
| Column | What it shows |
|---|---|
| Tool Name | The name as reported by Claude Code |
| Count | Tool calls in the selected period |
| Avg Duration | Mean call duration |
| p50 | Median duration |
| p99 | 99th-percentile duration — the tail |
| Trend | Direction 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_errorand a shorterror_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.