dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
为dsh增加「设置:账户」页面,可快捷查看deepseek余额、用量信息,以及opencode go额度信息,同时可快速跳转至对应官网。Add a "Settings: Account" page for dsh, allowing quick viewing of DeepSeek balance, usage information, and OpenCode Go quota details, while also providing quick links to the respective official websites.
DeepSeek 平台页:余额概览、时间维度与自定义区间、每日消费/Token 柱状图、按模型明细表。

OpenCode Go 配额页:5 小时滚动 / 每周 / 每月三个窗口的用量进度条、重置时间与限额参考。

| 功能 | 说明 |
|---|---|
| DeepSeek 平台概览 | 充值余额、赠送余额、累计消费金额、本月消费金额、本月 Tokens |
| 每日柱状图 | 消费金额与 Token 消耗双图表,SVG 渲染,鼠标悬停查看每日明细 |
| 时间维度切换 | 今天 / 近 7 天 / 近 30 天 / 近 90 天 / 本月 / 上月 / 自定义区间 |
| 按模型明细表 | deepseek-v4-flash / deepseek-v4-pro / 其他:请求次数、输入/缓存/输出 Tokens、费用 |
| OpenCode Go 配额 | 5 小时滚动 / 每周 / 每月三个窗口的用量百分比与下次重置时间 |
| 自动刷新 | 页面挂载期间每 60 秒自动轮询最新数据 |
| 双语言界面 | 完整的中英文切换支持 |
| 官方账户页共存 | 使用独立的设置分区 ID,兼容桌面端官方「账号与余额」入口 |
[!NOTE]
0.1.26修复了桌面端设置入口 ID 冲突。升级后重启 DSH,自制「账户」页与官方「账号与余额」页可同时出现;官方入口仍按 DSH 的账户登录状态显示。已在 DSH 桌面端0.2.0-rc.2验证。
dsh plugin 内部转发到 pnpm)# 方式一:从本地源码安装(开发)
dsh plugin --profile web add <absolute-path-to-plugin>
# 方式二:从 GitHub 安装
dsh plugin --profile web add github:Ycet/dsh-account-usage
包声明了 dsh.bundle 补丁层,dsh plugin 会自动把加载项合入 profile 的 bundle 层,无需手动编辑 cordis.patch.yml。
# ~/.dsh/profiles/web/cordis.patch.yml
- insert:
- id: account-usage
name: dsh-account-usage
dsh web用量接口是平台控制台的私有接口,需要你的平台登录令牌:
打开 DevTools → Console,执行:
JSON.parse(localStorage.getItem('userToken')).value
在插件「账户」页的令牌输入框直接粘贴并保存(写入 ~/.dsh/.credentials.yaml 的 DEEPSEEK_PLATFORM_TOKEN)
# ~/.dsh/.credentials.yaml
DEEPSEEK_PLATFORM_TOKEN: <令牌>
令牌只存储在本机凭据库,浏览器与网络请求均不携带它往返上游以外的任何位置。
插件按以下顺序自动查找:
OPENCODE_GO_API_KEY(~/.dsh/.credentials.yaml,在「设置 → 模型」配置 opencode-go 时通常已存在);~/.local/share/opencode/auth.json(opencode-go 条目,type 为 api)。双面插件(宿主 + 浏览器),数据通道为宿主注册的同源 HTTP 路由:
| 部分 | 文件 | 作用 |
|---|---|---|
| 宿主 | index.js | 注册三条 GET /api/account-usage/* 精确路由(deepseek-summary / deepseek-usage / opencode);经 ctx.credentials 解析密钥,固定白名单上游 URL,15s 超时 + 30s 缓存 |
| 解析聚合 | lib/aggregate.js | 纯函数:平台信封解包后的每日/每模型 token、费用、请求次数聚合 |
| 浏览器 | client.js | 手写惰性 CJS 客户端包:注册 settings.section(id account-usage),渲染账户页(SVG 柱状图、维度选择器、模型表、配额进度条),挂载期间每 60s 自动刷新 |
| 组合 | cordis.patch.yml | dsh.bundle 补丁层,安装时自动合入 |
| 用途 | 端点 | 认证 |
|---|---|---|
| 账户概要 | platform.deepseek.com/api/v0/users/get_user_summary(+/get_user_info) | Bearer <userToken> |
| 每日 token 明细 | platform.deepseek.com/api/v0/usage/amount?month=&year= | Bearer <userToken> |
| 每日费用明细 | platform.deepseek.com/api/v0/usage/cost?month=&year= | Bearer <userToken> |
| OpenCode Go 配额 | opencode.ai/zen/go/v1/usage(官方) | Bearer <sk-opencode-…> |
| 变量 | 默认 | 说明 |
|---|---|---|
DSH_ACCOUNT_USAGE_TIMEOUT_MS | 15000 | 上游请求超时(毫秒) |
DSH_ACCOUNT_USAGE_CACHE_MS | 30000 | 平台数据缓存 TTL(毫秒) |
DSH_ACCOUNT_USAGE_MAX_MONTHS | 3 | 单次查询可覆盖的最大月份数(超出自动裁剪) |
DSH_ACCOUNT_USAGE_OPENCODE_CACHE_MS | 60000 | OpenCode 配额缓存 TTL(毫秒) |
count/requests/request_count/req_count/calls 字段。两者均在真实令牌实测后校准。0.0.0.0 时本插件路由对局域网可达(与 DSH 其他本地插件相同的既有限制,默认 127.0.0.1 无此问题)。npm run check # 宿主、客户端和聚合模块语法检查
npm test # 凭据与 OpenCode Go 响应回归测试
# 本地安装(开发迭代):
dsh plugin --profile web add <absolute-path-to-plugin>
# 修改源码后需重新安装(先 remove 再 add,或提升版本号后重新 add),再重启 dsh web
修改 client.js 后需重启 dsh web(重新生成 boot-graph 哈希),再强制刷新页面。
桌面端需完全退出并重新打开应用。本地 link: 安装会直接加载修改后的源码。设置 DSH_TEST_INSTALL_ROOT 为包含 DSH node_modules 的运行时目录后,npm test 还会使用真实槽位注册器验证官方页与插件页的两种加载顺序,以及卸载插件页后官方页仍保留;未设置时跳过这两项集成测试。
[!NOTE]
dsh plugin在 Windows 下经 shell 转发 pnpm,安装路径不能含空格;工作区路径含空格时可先在无空格路径建目录联接(mklink /J)作为安装网关。
欢迎提交 Issue 与 Pull Request:发现问题请携带界面截图与版本号到 Issues 反馈;改进请按 Fork → 分支 → PR 流程提交。
本项目使用 MIT 许可证。