DeepSeek Harness plugin

dsh-plugin-token-usage

DSH plugin for QwenPaw-style cross-session token usage statistics (/usage command + Web GUI panel)

Jump to install

Source facts

Repository
lovedheart/dsh-plugin-token-usage
Latest update
Aug 20, 2026
Category
UI Enhancements
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-21

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/lovedheart/dsh-plugin-token-usage
Plugin: dsh-plugin-token-usage
Author: lovedheart

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

dsh-plugin-token-usage

QwenPaw-style cross-session token usage statistics for DSH.

The plugin aggregates the provider-reported token usage of every model call across all persisted sessions (including subagent sessions) into (date, provider, model) buckets and serves them through a single /usage command.

  • Zero runtime dependencies — only the Cordis ctx API and Node 22's

built-in node:zlib (zstd) are used.

  • Durable source of truth — it reads the session logs under

~/.dsh/sessions, so it works on history that predates the plugin and needs no separate bookkeeping at write time.

  • No double counting — a committed assistant/message.usage wins; a step

that never produced a message (failure) falls back to its last streaming usage chunk, flushed at turn/end. A persisted per-file watermark ({hiSeq, framesIngested}) makes the incremental scan idempotent across restarts and crash-recovery re-encodes.

Command

/usage                 # last 30 days (configurable defaultDays)
/usage 7d              # last 7 days
/usage 7d qwen3.8      # last 7 days, model filter (substring on provider/model)
/usage qwen3.6         # default range, model filter

Example output:

📊 Token Usage  2026-07-17 → 2026-08-16

Total: 906.9M tokens · 4954 calls
  input 473.3M · output 3.4M · cache read 430.1M

By model:
  sglang/Qwen3.8-27B  —  719.4M tokens · 3320 calls
      in 337.7M · out 2.8M · cacheR 378.9M
  sglang/Qwen3.6-27B  —  187.4M tokens · 1634 calls
      in 135.6M · out 669900 · cacheR 51.2M

By day:
  2026-08-13  42.6M tokens · 481 calls
  2026-08-14  195.7M tokens · 1587 calls
  2026-08-15  380.5M tokens · 1513 calls
  2026-08-16  288.1M tokens · 1373 calls

Token units: 1.2M for >= 1,000,000 (million), 1.5B for >= 1,000,000,000 (billion), plain integer below (one decimal, trailing .0 dropped).

Config

keydefaultdescription
defaultDays30lookback window for a bare /usage.
backfillIntervalSec30seconds between incremental backfill passes (keeps the state file warm).
sessionsRoot~/.dsh/sessionsDSH session-log root (empty = auto from DSH_HOME).
stateFile~/.dsh/token-usage.jsonaggregated state + watermark.
flushDelayMs5000debounce for the state write.
enableCommandtrueregister /usage.
verbosefalselog backfill progress.

Mounting

The plugin is an out-of-tree module mounted through a profile patch (same pattern as the telegram / thinking-mode plugins). Add an insert row to ~/.dsh/profiles/web/cordis.patch.yml:

- insert:
    - id: token-usage
      name: '/home/lovedheart/Documents/dsh-plugin-token-usage/lib/index.js'
      config:
        defaultDays: 30
        backfillIntervalSec: 30
        enableCommand: true
        verbose: true

commands is an optional dependency (consumed via an optional child fiber), so the plugin also loads in command-less assemblies — it just stores without registering the interactive command.

Layout

  • src/frames.js — zstd frame scanner (mirrors DSH's scanZstdFrames).
  • src/store.js — bucket aggregation, dedup, persistence, summarize.
  • src/backfill.js — incremental session-log walk + listSessionFiles.
  • src/render.jsfmtTokens, renderUsageReport, parseUsageArgs.
  • src/index.js — plugin entry (name/inject/Config/apply).
  • lib/ — build output (npm run prepare copies src/*.js).
  • test/node --test unit + harness tests.

Development

npm install        # installs the cordis peer for the harness test
npm test           # node --test test/*.test.mjs
npm run prepare    # sync lib/ from src/