dsh-usage-stats
界面增强 活跃维护

dsh-usage-stats

xushuojie/dsh-usage-stats

轻量级对话Web UI 功能扩展插件,安装后自动新增Token用量统计入口,可直观查看Token消耗、剩余额度等核心使用数据,无需额外复杂配置,部署完成后即可自动同步全量统计结果,上手使用门槛低。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
161 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:xushuojie/dsh-usage-stats
git clone https://github.com/xushuojie/dsh-usage-stats.git
git clone git@github.com:xushuojie/dsh-usage-stats.git
README.md main

English | 简体中文

dsh-usage-stats

Token usage statistics plugin for the DeepSeek Harness web UI.

Adds a 用量统计 entry to the sidebar footer, directly above the 设置 (Settings) button:

  • Today total at a glance — the trigger shows a fuzzy figure of today's token usage (in 千 / 万 / 百万 / 千万 / 亿), with the exact value on hover.
  • Stats modal — a summary (uncached input / output / cache read / cache write, session count) plus a per-session breakdown list, with time filters 全部 / 今日 / 24h / 7 天 / 30 天.
  • Durable ledger — the per-session tokenUsage projection disappears when a session is deleted; this plugin keeps its own copy in localStorage (dsh.usageLedger.v1) so historical totals survive session removal. Best-effort: falls back to in-memory when storage is unavailable.

Screenshots

Sidebar footer entry (above the Settings button):

Sidebar footer entry

Usage stats modal:

Usage stats modal

Requirements

  • @deepseek-ai/dsh web profile (any recent 0.1.0-rc.x)
  • Peer packages: react, @deepseek-ai/cordis, @deepseek-ai/dsh-client-runtime, @deepseek-ai/dsh-client-locale, @deepseek-ai/dsh-client-ui-primitives, @deepseek-ai/dsh-client-ui-slots (the dsh web profile already ships these).

Install

⚠️ Name collision warning: the npm package name dsh-usage-stats is
already taken by an unrelated project ("Lightweight usage analytics ...").
This plugin is published as @xushuojie/dsh-usage-stats — double-check
the name before installing, so you don't pull in the wrong package.

  1. Install the package where the profile can resolve it

    From the npm registry (after publish):

    cd "$(dsh home)/profiles/web"      # e.g. ~/.dsh/profiles/web
    pnpm add @xushuojie/dsh-usage-stats

    Or directly from GitHub (works right now, no registry needed):

    pnpm add github:xushuojie/dsh-usage-stats

    For a local checkout instead:

    pnpm add file:/path/to/dsh-usage-stats
  2. Register the loader entry in the profile's patch layer
    ($DSH_HOME/profiles/web/cordis.patch.yml — the file the boot message tells you to edit, not cordis.yml):

    - insert:
       - id: usage-stats
         name: '@xushuojie/dsh-usage-stats'
  3. Restart dsh web (plugin roster + boot manifest are composed at startup).

Publish (for maintainers)

Requires an npm account logged in against the official registry
(this machine is configured with the npmmirror mirror, which does not accept
publishes):

npm login                                    # once
npm config set registry https://registry.npmjs.org
cd dsh-usage-stats
npm publish                                  # publishes @xushuojie/dsh-usage-stats

The package is scoped to your npm username, so it can never collide with the
unrelated dsh-usage-stats package. If you want to republish under a
different scope, rename name in package.json, the loader entry, and the
client bundle id accordingly.

How it works

  • lib/client.js is a window.__ModuleLoader__.load(...) client bundle (the
    DSH web client-plugin format), declared via dsh.client in package.json.
  • It registers into the sidebar.footer.action list slot (rendered above
    the Settings button) with order: 10, bound to its own usageStats locale
    namespace.
  • Data source: the standard useSessions list snapshot's per-session
    projectionValues.tokenUsage, merged into the durable ledger.

License

MIT