Token usage and cost tracking with daily/session budget alerts and a usage_report tool.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:DamonKoy/dsh-plugins#path:/packages/dsh-usage-cost
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Usage and cost tracking plugin for DeepSeek Harness, inspired by Codex 0.144's "usage limit" credits reminder: watch every model call and keep a running token/cost tally, with warnings before the budget runs out.
English | 中文
What it does
- Stream-level usage accounting: hooks the
llm/streamwaterfall and accumulatesinputTokens,outputTokens,cacheReadTokens,cacheWriteTokens,reasoningTokensfrom everyusagechunk without buffering or altering the stream; one call counts once. - Per-model cost estimation: prices each call in USD from a built-in
table (DeepSeek: $0.28/M in, $0.42/M out, $0.028/M cache read, $0.42/M
cache write; others: $2/M in, $8/M out), overridable per
provider/modelkey in the config. - Per-turn settlement: on
agent/turn-stopping, usage accumulated since the last settlement is appended (deltas only) to~/.dsh/dsh-usage-cost/stats.json, bucketed by date and by model. - Budget warnings: with
dailyBudgetUsd/sessionBudgetUsdset, crossing the threshold logs once per date and once per session:[dsh-usage-cost] 今日用量超预算/本次会话用量超预算. usage_reportmodel tool: read-only report of today, the current session, the per-model breakdown and the budget state (dailyExceeded/sessionExceededflags).- Package-private RPC:
usage-cost/statusreturns the same report.
Install
dsh plugin --profile web add github:DamonKoy/dsh-plugins#path:/packages/dsh-usage-cost
Restart dsh web. Active by default, records usage with no config.
Config
Optional file ~/.dsh/dsh-usage-cost.json:
{
"prices": {
"deepseek-official/deepseek-v4-flash": {
"inputPerM": 0.28,
"outputPerM": 0.42,
"cacheReadPerM": 0.028,
"cacheWritePerM": 0.42
}
},
"dailyBudgetUsd": 2,
"sessionBudgetUsd": 0.5
}
| Field | Default | Meaning |
|---|---|---|
prices |
{} |
Per-model overrides in USD per 1M tokens, keyed by provider/model |
dailyBudgetUsd |
unset | Warn when today's cost exceeds this |
sessionBudgetUsd |
unset | Warn when this process's cost exceeds this |
Config is re-read on every use, so edits apply without a restart.
Stats file
Written synchronously at every turn settlement (small file, no races); costs are estimates from the price table, not provider invoices:
{
"byDate": {
"2026-08-16": { "calls": 3, "inputTokens": 1200, "outputTokens": 800, "costUsd": 0.00068 }
},
"byModel": {
"deepseek-official/deepseek-v4-flash": { "calls": 3, "inputTokens": 1200, "outputTokens": 800, "costUsd": 0.00068 }
}
}
Notes
- Session tally is in-memory for the process lifetime; the daily file is the durable record.
- The
llm/streamlistener callsnext()first and only reads chunk fields; stream, options and chunks are never modified. - Warnings fire once per date and once per session to avoid log spam.
- Prices and budgets are user-side estimates; adjust them to your billing.
License
MIT
Links
More in this category
strukto-ai/mirage#dsh★ 3479
Swaps the filesystem and bash providers for a mirage virtual workspace: file tools and shell commands run over mounted resources (RAM, S3, Redis, Slack, Gmail, Notion, Postgres) instead of the host disk, with per-mount read/write/exec modes, per-command sandbox routing (monty, pyodide, quickjs in process; docker, e2b, daytona remote), and installed CLIs (git, gh, slack, linear, ntn, gws, or one you register) as head words in the virtual terminal.
hust-open-atom-club/oh-dsh★ 225
Community distribution: TUI, desktop, and Web UI as one bundle with layered installation.
Jayden-X-L/forkprobe★ 66
Compare multiple skills on the same task and pick the winner.
vlln/plugin-registry★ 50
Ecosystem infrastructure: a thin browser console for managing official repository plugins (zero patches) plus a make-dsh-plugin skill for guided plugin development.
forrestchang/dsh-multica-runtime★ 41
Run the dsh runtime on Multica.
omdsh-dev/dsh-plugin-check★ 23
Plugin health checks: manifest protocol / patch format / build traps, zero-dependency and read-only.