BlackThunder2191026/dsh-deepseek-usage ↗★ 0

@blackthunder2191026/dsh-deepseek-usage

DeepSeek API balance in the dsh sidebar plus each turn's cost in CNY under every conversation turn 适合使用官方DeepSeek API并需要实时监控余额与单次对话成本的用户。

Package
@blackthunder2191026/dsh-deepseek-usage
Compatibility
Unverified
Version
1.0.0
License
MIT
Last updated
Oct 10, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:BlackThunder2191026/dsh-deepseek-usage

dsh-deepseek-usage

一个 DeepSeek Harness (dsh) 插件,做两件事:

  1. 侧边栏余额:在左下角「设置」旁边实时显示 DeepSeek 账户余额(默认每 60 秒刷新;点击可展开充值余额 / 赠送余额并手动刷新;侧栏收窄成图标栏时显示为彩色状态点)。
  2. 每轮对话花费:在每一轮对话底部的信息栏里额外显示这一轮花了多少钱,点击可展开三列明细(项目 / tokens / 单价)。

只适用于官方 DeepSeek(deepseek-official) 且在带 Web 界面的 profile(desktop 或 web)里使用。用其他 provider 时余额读不到、也不该按 DeepSeek 价目计价。

关于安装入口(曾踩过的坑)

部分第三方桌面客户端内置的「插件市场」有一条硬性边界:只接受 包名@精确版本 这种 npm 目标,github: 源、file: 路径、裸包名一律拒绝。遇到这种客户端时,市场的报错大致是:

这个桌面客户端只能安装已发布到 npm 的插件,而该插件仅提供 GitHub 源,因此装不了——这是客户端的安装边界,不是插件或市场的问题。可以改用普通 dsh web 安装,或请插件作者发布 npm 包。

本插件现已发布到 npm(@blackthunder2191026/dsh-deepseek-usage),因此这条边界不再是问题:用「方式一」或「方式二」都能装。如果市场仍报上面的错,说明你用的市场缓存了旧目录,或你点的是插件的 GitHub 条目而不是 npm 条目。

环境要求

项目要求
操作系统Windows / macOS / Linux 均可(本插件不含平台相关代码,未使用任何平台专有 API)
dsh带 Web 界面的 profile(官方桌面版或 dsh web);headless / SDK profile 没有 webserver,插件不会生效
Node.js≥ 22.19(宿主读取余额用 fetch 与 AbortSignal.timeout)
DeepSeek 凭据官方 provider 的 API Key,存在 ~/.dsh/.credentials.yaml 的 DEEPSEEK_API_KEY,或同名环境变量
依赖零运行时依赖:host 半不 import 任何包,client 半只向 dsh 的模块表要 react

安装

包名是 @blackthunder2191026/dsh-deepseek-usage(带 scope,因为 npm 上 dsh-deepseek-usage 已被无关项目占用)。

方式一:命令行从 npm 安装(推荐)

npx @deepseek-ai/dsh plugin --profile desktop add @blackthunder2191026/dsh-deepseek-usage

装完重启 dsh。

方式二:从图形插件市场安装

市场只会把 包名@精确版本 交给客户端,所以本插件发布到 npm 之后可以从市场一键安装——在市场的搜索框里找 dsh-deepseek-usage,或直接粘贴上面的完整包名。

如果你在市场里看到过「只能安装已发布到 npm 的插件,而该插件仅提供 GitHub 源」这样的提示,说明你用的是本插件还没有 npm 版本时的市场状态,或者你点的是插件的 GitHub 条目。请改用方式一,或先确认版本。

方式三:从 GitHub 源码安装(无需 npm)

npx @deepseek-ai/dsh plugin --profile desktop add github:BlackThunder2191026/dsh-deepseek-usage

pnpm 默认会拦截 Git 依赖的构建脚本。本插件没有任何编译步骤,但仍带一个 prepare 安装钩子(tools/prepare.mjs)用于完整性检查;若安装时被拦下,按提示在该 profile 的 pnpm-workspace.yaml 里加上:

allowBuilds:
  '@blackthunder2191026/dsh-deepseek-usage': true

⚠️ allowBuilds 表示允许该包的安装脚本在你的机器上执行。本插件的钩子只做一件事:检查四个关键文件存在且非空,缺任何一个就拒绝安装——它不编译、不下载、不访问网络。授权前请先读一遍 tools/prepare.mjs。 想更稳妥可锁定 commit:github:BlackThunder2191026/dsh-deepseek-usage#。

方式四:从 Releases 下载 tarball(无需 Git、无需 npm、无需授权脚本)

每个版本都会在 Releases 附上 blackthunder2191026-dsh-deepseek-usage-.tgz:


### ⚠️ 从旧版本(不带 scope 的 `dsh-deepseek-usage`)升级

包名换了,dsh 会把它当成**两个不同的插件**,同时装会让界面出现两套余额栏。升级前先移除旧包:

```sh
npx @deepseek-ai/dsh plugin --profile desktop remove dsh-deepseek-usage
npx @deepseek-ai/dsh plugin --profile desktop add @blackthunder2191026/dsh-deepseek-usage

## 改配置

行 id 是 `deepseek-usage`。改配置走 profile 的 `cordis.patch.yml` —— **整段替换,不是深合并**,要重述全部需要的键:

```yaml
- id: deepseek-usage
  name: dsh-deepseek-usage
  config:
    apiKeyEnv: DEEPSEEK_API_KEY   # 凭据引用名,同时作为环境变量名
    baseURL: https://api.deepseek.com
    currency: CNY                 # 余额币种;价目表也用这个币种,不做换算
    balanceTtlMs: 30000           # 余额缓存时长
    defaultModel: deepseek-flash  # 价目表里没有的模型用哪一行
    maxTurns: 300                 # 单次返回的最大轮次数
    models:                       # 元 / 百万 tokens(官方中文定价页)
      deepseek-flash:
        hit:    { peak: 0.04, offPeak: 0.02 }
        miss:   { peak: 2,    offPeak: 1 }
        output: { peak: 8,    offPeak: 4 }
      deepseek-v4-pro:
        hit:    { peak: 0.3,  offPeak: 0.15 }
        miss:   { peak: 9,    offPeak: 4.5 }
        output: { peak: 27,   offPeak: 13.5 }

价格随 DeepSeek 官方调整而变,请对照 更新 models。注意别用英文页的美元价——两页不是固定汇率关系。