Back to marketplace

dsh-token-usage

Monitoring

hashdiana/dsh-token-usage

Replaces the default token usage bar with a clearer chip bar and details panel showing full breakdown.

  • deepseek
  • deepseek-ai
  • deepseek-chat
  • deepseek-harness
  • deepseek-v4
  • deepseek-v4-pro
  • dsh-plugin
  • dsh-plugins
GitHub Stars
2GitHub
Views
3DSH Plugin Hub
Forks
0GitHub
Open issues
0GitHub Issues
Manifest version
0.1.0dsh-token-usage
Latest push
Aug 17, 2026GitHub
License
MITTypeScript
Plugin type
Host + ClientRuns in both Host and Web Client

Verification and compatibility

This section shows evidence collected by the catalog. Undeclared information is labeled as unknown.

Static checked
01Exact source: github · dsh-token-usage@0.1.002Validated: Aug 24, 202603Verified Harness: 0.1.0-rc.7
Current-version compatibility
Verified on the catalog Harness version
Declared Harness range
Not declared
Declared platforms
Not declared
Profiles
web
Build approval
Unknown
Permissions
Not declared
External services
Not declared
Telemetry
Unknown
No known risk flags found

This is not a security endorsement. Review source, permissions, and configuration before installing.

View evidence and scope

Verification covers only the named source, version, and Harness environment. It does not guarantee future compatibility.

  • github:hashdiana/dsh-token-usage#4c6262830a5420012d6dc793ee46067b86904780
  • The manifest and static structure passed checks; a runtime load check has not completed.

README

View source

dsh-token-usage

A clearer, prettier token-usage bar for the DeepSeek Harness web UI.

GitHub stars License: MIT DSH Plugin

🌐 中文 · English

The shipped DeepSeek Harness web UI squeezes token usage into one cramped line of text under the composer. dsh-token-usage replaces it with a glanceable chip bar plus a details panel with the full breakdown — and it follows your theme, light or dark.

🎯 Token usage shouldn't have to be decoded — it should be readable at a glance.

Screenshots

Highlights

  • Context at a glance — a thin occupancy bar that turns green → amber → red as you fill the context window.
  • Input, output, and cache, separated — billed input splits into cache-read / cache-write / uncached, with the cache-hit rate shown up front.
  • Speed where you need it — decode throughput (tok/s) and average first-token latency (TTFT) right on the bar.
  • A details panel on click — context composition (system / tools / messages), a stacked input split, and session turn / step / model / tool time.
  • Natural edge fades — the panel's top and bottom edges fade and blur while there's more to scroll, and vanish at the ends.
  • Theme-adaptive and bilingual — styled only with --dsw-* tokens (light/dark), shipped in Chinese and English.

What it shows

The bar under the composer shows these chips, left to right:

ChipMeaning
ContextUsed / window tokens, with a color-coded occupancy bar
InputTotal billed input (cache read + cache write + uncached)
OutputProvider-reported output tokens
Hit rateCache-read share of billed input
tok/sDecode throughput over usage-reporting steps
TTFTAverage first-token latency

Clicking the bar opens a panel with context occupancy + composition, the input-split stack, throughput / TTFT, and session counts. The whole line hides itself when there is no data yet.

Install

From GitHub (recommended):

npx -p @deepseek-ai/dsh dsh plugin --profile web add github:hashdiana/dsh-token-usage

From a local checkout:

npx -p @deepseek-ai/dsh dsh plugin --profile web add <path-to-this-repo>

Then restart the profile:

dsh web

The Git path ships the built lib/ (see Build & develop), so no build script runs at install time.

Uninstall / Disable

Temporarily disable without uninstalling — add to $DSH_HOME/profiles/web/cordis.patch.yml:

- id: dsh-token-usage
  disabled: true

Restart dsh web; the default stats line returns. Remove those lines to re-enable.

Build & develop

pnpm install
pnpm typecheck   # tsc -b
pnpm build       # tsc -b + tsdown → lib/index.js (host) + lib/client.js (browser)
pnpm test        # vitest: folds, locale parity, jsdom render, slot registration/dispose

The client bundle is emitted as window.__ModuleLoader__.load({ id, factory }); CSS Modules are hashed by lightningcss and injected as a <style data-plugin="dsh-token-usage"> tag. Commit lib/ — Git installs consume the built output, not src/.

How it works

  • Pure client plugin — the host half is an empty apply(); the browser half ships via exports["./client"].
  • Slot — registers into conversation.composer.dock (cell id: "stats", priority: -1), shadowing the shipped text line; the registration is withdrawn with the plugin fiber.
  • Data — reads the durable projections tokenUsage, contextPressure, contextBreakdown, and sessionStats; a window fold serves only as the no-projection fallback.
  • Locale — owns the tokenUsage namespace, Chinese and English.

License

MIT

Comments

0
Newest first