dsh-usage-stats

by xushuojie

0 工具与能力github 检测到 manifest package.json#dsh收录于 08-17

DeepSeek Harness Web UI 的 token 用量统计插件

Token usage statistics plugin for the DeepSeek Harness web UI .

安装

dsh plugin --profile web add github:xushuojie/dsh-usage-stats

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

dsh-usage-stats

DeepSeek Harness Web 界面的 token 用量统计插件。

在侧边栏底部、「设置」按钮正上方新增一个用量统计入口:

  • 今日用量一目了然 — 按钮上直接显示今日 token 用量的模糊数值(千 / 万 / 百万 / 千万 / 亿 单位),悬停显示精确值。
  • 统计弹窗 — 汇总(未缓存输入 / 输出 / 缓存读 / 缓存写、统计会话数)+ 逐会话明细列表,支持时间筛选 全部 / 今日 / 24h / 7 天 / 30 天。
  • 持久化账本 — 会话删除后,其 tokenUsage 投影会随之消失;本插件在 localStorage(dsh.usageLedger.v1)中保存自己的副本,历史合计不会因会话删除而丢失。存储不可用时自动降级为内存账本。

截图

侧边栏底部入口(位于「设置」按钮上方):

侧边栏入口

用量统计弹窗:

用量统计弹窗

环境要求

  • @deepseek-ai/dsh web profile(任意较新的 0.1.0-rc.x)
  • 对等依赖: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(dsh web profile 已自带)。

安装

⚠️ 重名警告:npm 上的 dsh-usage-stats 已被另一个无关项目占用 ("Lightweight usage analytics ...")。本插件发布名为 @xushuojie/dsh-usage-stats —— 安装前请核对包名,避免装错包。

  1. 将插件安装到 profile 可解析的位置

    从 npm registry 安装(发布后):

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

    或直接从 GitHub 安装(现在即可用,无需 registry):

    pnpm add github:xushuojie/dsh-usage-stats
    

    本地目录安装:

    pnpm add file:/path/to/dsh-usage-stats
    
  2. 在 profile 的补丁层注册 loader 条目 ($DSH_HOME/profiles/web/cordis.patch.yml —— 启动信息会提示你编辑这个文件,而不是 cordis.yml):

    - insert:
        - id: usage-stats
          name: '@xushuojie/dsh-usage-stats'
    
  3. 重启 dsh web(插件名册与启动清单在启动时合成)。

发布(维护者)

需要先以 npm 账号登录,并切换到官方 registry(本机配置的是 npmmirror 镜像,不接受发布):

npm login                                    # 只需一次
npm config set registry https://registry.npmjs.org
cd dsh-usage-stats
npm publish                                  # 发布为 @xushuojie/dsh-usage-stats

包名已以你的 npm 用户名作为 scope,绝不会与无关的 dsh-usage-stats 包撞名。 如需改用其它 scope,请同步修改 package.json 的 name、loader 条目和 客户端 bundle 的 id。

工作原理

  • lib/client.js 是一个 window.__ModuleLoader__.load(...) 客户端 bundle(DSH web 客户端插件格式),通过 package.json 中的 dsh.client 声明。
  • 注册到 sidebar.footer.action 列表槽(渲染在「设置」按钮上方),order: 10,绑定独立的 usageStats 文案命名空间。
  • 数据来源:标准 useSessions 列表快照中每个会话的 projectionValues.tokenUsage,合并进持久化账本。

许可证

MIT

原始 README: https://github.com/xushuojie/dsh-usage-stats/blob/main/README.zh.md ↗