dsh-tool-call-stats
Manifest validPer-process tool-call statistics: a `tool_stats` tool reporting per-tool call counts, error counts, and average durations.
dsh-tool-call-stats
A tiny community plugin for DeepSeek Harness (dsh).
It records every committed tool call in the current harness process and exposes a tool_stats tool, so the model (or you) can ask at any point:
Which tools were used, how often did they fail, and where did the time go?
Not to be confused with the token/cost trackers in the ecosystem (dsh-token-stats, dsh-usage-report, ...) — this plugin counts tool-call dispatches, not tokens. Also unrelated to dsh-tool-stat (a descriptive-statistics math tool).
Status: built and verified end-to-end against the dsh v0.1 developer preview (headless profile, live DeepSeek session): both event listeners record real dispatches and
tool_statsreturns the table below. Upstream interfaces may still change during the preview.
Example output (from the verification run):
tool calls errors avg_ms
---- ----- ------ ------
bash 1 0 23
read 1 0 8
How it works
Everything in dsh is a plugin, and this one is deliberately minimal — three seams, ~100 lines, no build step:
tools/execute(waterfall): wraps each dispatch to record its start time, then delegates vianext().tools/result(observer): counts each committed result per tool name and accumulates duration;result.isErrordrives the error counter.ctx.tools.register(defineTool(...)): exposestool_stats, which returns a canonical JSON array (output.schema) and renders a plain-text table for the model.
All state is in-memory and process-local. Nothing is persisted; restarting dsh resets the counters. When the plugin is unloaded, Cordis disposes both listeners and the tool automatically — no manual cleanup code.
Install
Into a profile (recommended)
dsh plugin --profile <name> add github:disyli/dsh-tool-call-stats
pnpm ≥ 10 will ask you to allow the package before running install scripts (this package has none, but the prompt may still gate the git install). Follow the hint dsh prints, then re-run add.
Verify the layer and start:
dsh --profile <name> --dump-config # shows a "# == dsh-tool-call-stats" layer
dsh --profile <name>
As a local overlay (source checkout)
From a deepseek-harness checkout, point a patch at the local file:
# stats.cordis.yml
- insert:
- id: tool-stats
name: '/absolute/path/to/dsh-tool-call-stats/index.js'
pnpm dsh web --patch ./stats.cordis.yml
Use
Ask the agent things like:
- "Use tool_stats to show tool usage so far."
- "Which tool failed the most in this session?"
Limitations
- Process-local only: counters reset on restart and are not shared across sessions.
- Calls aborted before the registry commits a result are not counted (their timing entries are garbage-collected after 10 s).
- Built against the dsh v0.1 developer preview; upstream interfaces may change ("THERE WILL BE COMPATIBILITY-BREAKING CHANGES").
License
MIT
Comments
Loading…
Similar plugins
by Equinox7379
Daily activity brief for DSH: per-session turns/messages/tool-call stats across live sessions. Read-only.
★ 0
MIT
JavaScript
Aug 14, 2026
dsh plugin --profile web add dsh-daily-briefby Ansonfishing
Per-model capability profiling for DSH: turns local session history into per-model dashboards of session counts, tool usage, error rates, and top error signatures, with time-range filters and multi-mo
★ 2
MIT
JavaScript
Aug 29, 2026
dsh plugin --profile web add dsh-cap-profileby qiyuexue-xiyu
Per-turn tool cost line in the chat stream: after each turn a collapsible row under the reply lists which tools ran, how many times, and how many tokens each tool injected into the context (input plus
★ 2
MIT
TypeScript
Oct 22, 2026
dsh plugin --profile web add dsh-tool-cost-hintPersistent provider-reported token usage totals with per-session, per-model, and daily activity statistics.
★ 0
↓ 279/wk
dsh plugin --profile web add dsh-token-usage-counterA right-side session stats panel showing average cache-hit rate, session cost, runtime, request count, cumulative tokens and account balance.
★ 0
dsh plugin --profile web add dsh-session-stats-panelUsage statistics panel: silent per-model token collection, activity heatmap, trend charts, cost estimation and daily-limit guard.
★ 0
↓ 112/wk
dsh plugin --profile web add dsh-usage-guard