Reports each machine's token usage to a team server you host, with one-time enrollment codes, an offline disk queue, and idempotent replay, so an administrator can see every member's usage and cost in one place.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:CHENKEYI-MAKER/dsh-team-reporter
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 — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
A DeepSeek Harness (dsh) plugin that reports
this machine's real token usage to a team dashboard you run yourself, so a team can see its own
usage and cost in one place.
What it does
- Collects one record per model call, from the host's
session/eventstream —input_tokens,cache_read_tokens,output_tokens, the model name, and the project directory. Reasoning tokens are already included inoutput_tokensand are not counted separately. - Queues records on disk, so usage survives a restart or a network outage and is replayed later. Records are idempotent, so a replay cannot double-count.
- Sends only token counts and cost. It never sends prompts, replies, file contents, or credentials.
- Syncs the skills your team publishes: the server is the authority, the plugin pulls the whole library every 30 minutes and swaps it in atomically. A failed sync never removes what is already on the machine. You can also write your own skill and submit it for review from the panel.
Install
Download the tarball and point the plugin page at the local file — this is the only route that works without npm, without GitHub, and without a terminal:
- Get
dsh-team-reporter-0.2.0.tgzfrom your team's download page (or from the Releases tab here). - DSH → sidebar 插件 → 添加插件 → paste the file's absolute path → Install.
- Restart DSH.
# CLI equivalent (the path must be absolute; a relative path is rejected by pnpm)
dsh plugin --profile desktop add "C:\Users\you\Downloads\dsh-team-reporter-0.2.0.tgz"
Neither of these works, and both were tested:
| Command | What happens |
|---|---|
add dsh-team-reporter |
Not published to npm → ERR_PNPM_FETCH_404 |
add github:CHENKEYI-MAKER/dsh-team-reporter |
pnpm rewrites it to git+ssh:// → Permission denied (publickey) unless you have GitHub SSH keys |
add https://<your-server>/dl/….tgz |
pnpm 11 only skips the integrity check for file: and a few git hosts → ERR_PNPM_MISSING_TARBALL_INTEGRITY |
add https://github.com/CHENKEYI-MAKER/dsh-team-reporter.git does work, but it needs GitHub access.
Restart DSH. A grey dot appears in the bottom-right corner — open it, enter your team server URL and the enrollment code your administrator gave you, and click 绑定 (Bind). The dot turns green and reporting starts.
A code is single-use and belongs to one person. Reinstalling or moving to a new machine needs a new code from your administrator.
Skills
The plugin keeps two directories strictly apart:
| Directory | Owner |
|---|---|
~/.dsh/skills/dsh-team/ |
the server — replaced wholesale on every sync |
~/.dsh/skills/my-skills/ |
you — the sync logic never touches it |
Put your own skills in my-skills/, then submit them for review from the team panel
(团队版 → 我写的技能 → 提交审核). Anything that looks like a credential, a public IP, or a
local absolute path is rejected at submission time and cannot be approved by an administrator either.
Configuration
The plugin learns everything else from the server's /api/v1/config endpoint — the price table used
for local cost estimates and the flush interval. Nothing needs to be configured locally.
Requirements
- Node.js >= 22.5.0
- A team server you or your administrator run (this plugin only talks to the URL you enter)
Privacy
Token counts and a hash of the session id are the only things that leave the machine. The workspace field is the project directory's name, not its full path.
Links
More in this category
bowenliang123/dsh-context★ 2207
DSH context insight panel: Context dashboard + /context command + Context browser — one-stop context lifecycle management with categorized composition, content details, evolution trends, compaction/injection events, and stats.
Han-1413141/dsh-cost-meter★ 435
Per-session and daily API cost, budget with usage %, official balance, history dashboard, and one-click official price sync with peak/off-peak pricing.
wssfk12138/dsh-damage-pulse★ 265
Tracks DeepSeek token usage, per-call and session costs, and account balance with cache-aware charge animations in the DSH Web UI.
zh667/TokenLedger★ 202
Sidebar usage panel that attributes tokens to the relay site that served each request, read from your existing provider config: today/month/all-time totals, per-site and per-model breakdowns, a year activity heatmap, and New API / Sub2API / DeepSeek balances.
Ychris12138/dsh-usage-stats★ 175
Multi-provider usage dashboard with provider/model token breakdowns, calendar drill-downs, account balances, and OpenCode Go / Z.ai subscription quota tracking.
PolinniZhong/dsh-personal-center★ 118
Personal center for DeepSeek Harness: cross-session usage statistics, per-model cost estimation, global custom instructions, a global font-size adjuster, a data-driven desktop pet with bitmap & vector skins, and a conversation status overview, all local and offline.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.