skyrocks · DSH 插件
八个给 DeepSeek Harness(dsh)用的小插件:
两个把余额 / 额度常驻在对话输入框下方,一个在模型选择列表里标出每个 GO 模型的月度额度,
一个把「切模型」做成模型自己可调用的工具,一个给会话补上真正的删除(回收站 + 撤销),
一个在每一轮对话末尾告诉你时间花在哪,一个在设置里维护多个数据库,让模型直接查,
最后一个在设置里按日 / 周 / 月统计所有会话的 token 消耗。
| 插件 | 做什么 | 形态 |
|---|---|---|
| dsh-deepseek-cost | DeepSeek 余额 · 本轮 / 今日 / 本周 / 本月 / 累计花费 | 输入框下方 dock |
| dsh-go-quota | OpenCode GO 套餐的 5 小时 / 周 / 月三窗口 | 输入框下方 dock |
| dsh-go-model-limits | OpenCode GO 模型的官方 Monthly limit,每个价格值独立配色 | 模型菜单标签 |
| dsh-model-switcher | find_models / switch_model 两个工具,让模型在对话里自己查、自己切模型 |
无界面(Host 工具) |
| dsh-session-trash | 右键删除会话,先移入回收站;可即时撤销,也能在设置里恢复 / 彻底删除 | 会话右键菜单 + 设置页 |
| dsh-turn-timing | 每轮结束显示耗时去向:模型 / 编码 / 构建 / 测试 / 清理,点开看小分类 | 每轮对话末尾 |
| dsh-db | 多数据源数据库查询:设置里增删改、就地测试连接,默认只读、写入逐条审批 | 设置页 + Host 工具 |
| dsh-token-stats | 按日 / 周 / 月统计所有会话(含子代理)的 token:趋势柱、模型分布、会话排行 | 设置页 |
> 截图为界面示意图,实际样式跟随 DSH 主题(明 / 暗)。
安装
在 DSH 桌面端:设置 →「插件」→「添加插件」,粘贴下面的地址;或者直接用命令行:
# DeepSeek 余额与花费(国内推荐,CDN 直下)
dsh plugin --profile desktop add "https://cdn.jsdelivr.net/gh/skyrocks/dsh-plugins@main/dist/skyrocks-dsh-deepseek-cost-0.2.3.tgz"
# OpenCode GO 用量
dsh plugin --profile desktop add "https://cdn.jsdelivr.net/gh/skyrocks/dsh-plugins@main/dist/skyrocks-dsh-go-quota-0.1.9.tgz"
# OpenCode GO 模型月度额度
dsh plugin --profile desktop add "https://cdn.jsdelivr.net/gh/skyrocks/dsh-plugins@main/dist/skyrocks-dsh-go-model-limits-0.1.2.tgz"
# 模型切换工具
dsh plugin --profile desktop add "https://cdn.jsdelivr.net/gh/skyrocks/dsh-plugins@main/dist/skyrocks-dsh-model-switcher-0.2.1.tgz"
# 会话回收站
dsh plugin --profile desktop add "https://cdn.jsdelivr.net/gh/skyrocks/dsh-plugins@main/dist/skyrocks-dsh-session-trash-0.1.2.tgz"
# 每轮耗时明细
dsh plugin --profile desktop add "https://cdn.jsdelivr.net/gh/skyrocks/dsh-plugins@main/dist/skyrocks-dsh-turn-timing-0.1.11.tgz"
# 数据库查询
dsh plugin --profile desktop add "https://cdn.jsdelivr.net/gh/skyrocks/dsh-plugins@main/dist/skyrocks-dsh-db-0.1.0.tgz"
# Token 用量统计
dsh plugin --profile desktop add "https://cdn.jsdelivr.net/gh/skyrocks/dsh-plugins@main/dist/skyrocks-dsh-token-stats-0.1.0.tgz"
# 或者跟随 GitHub 默认分支
dsh plugin --profile desktop add github:skyrocks/dsh-deepseek-cost
dsh plugin --profile desktop add github:skyrocks/dsh-go-quota
dsh plugin --profile desktop add github:skyrocks/dsh-go-model-limits
dsh plugin --profile desktop add github:skyrocks/dsh-model-switcher
dsh plugin --profile desktop add github:skyrocks/dsh-session-trash
dsh plugin --profile desktop add github:skyrocks/dsh-turn-timing
dsh plugin --profile desktop add github:skyrocks/dsh-db
dsh plugin --profile desktop add github:skyrocks/dsh-token-stats
装完完全退出 DSH 再打开(Host 插件只在启动时加载)。dsh web 用户把
--profile desktop 换成 --profile web。
一键索引(可选)
DSH 的实验性插件市场支持自定义索引。添加这个地址,就能在 Discover 里浏览并安装上面八个插件:
https://cdn.jsdelivr.net/gh/skyrocks/dsh-plugins@main/index.json # 国内推荐
https://raw.githubusercontent.com/skyrocks/dsh-plugins/main/index.json
需要先启用实验性 bundle @deepseek-ai/dsh-experimental-plugin-market-bundle
(设置 →「插件」里启用),然后到 Discover 页添加索引地址。
关于会话回收站
DSH 内置只有「归档」——归档只是把会话藏起来并拦住后续运行,日志仍然占着磁盘。这个插件把删除做成
两步:右键「删除会话…」先搬进 ~/.dsh/trash/sessions/,提示条可即时撤销;错过撤销就去
「设置 → 回收站」恢复或彻底删除。
- 子会话跟着走:删父会话时,它的 subagent 后代进同一个条目,恢复时一起回来。
- 该拒就拒:会话或子会话正在本机打开、还有运行中的工作时,会明确拒绝并列出原因。
- 不删附件:附件是内容寻址共享的,不随单个会话删除;回收站占的空间要「清空」才释放。
关于模型切换工具
它和另外几个不一样:没有界面,手动切模型继续用内置的 /model。它注册两个工具给模型
调用——find_models 读当前会话真正能选到的模型,switch_model 精确切换。同一模型有多个
版本时(比如 glm-5.3 / glm-5.3-flash / glm-5.2),它会把候选列出来让你选,不替你猜。
所以你的用法是在对话里说:
换到 glm
用最快的那个
切到 deepseek 推理
要求 DSH >= 0.2.1-rc.3(更早的版本用 apiProxy.sessions 暴露模型目录,该接口已被移除)。
关于模型月度额度
它只改模型菜单的显示:在 opencode-go 分组的模型行后面加一个小标签,每个价格值一种颜色
($15、$30、$60、$100 … 各不同,无限用渐变)。数据来自 OpenCode 官方 Go 文档的价格表,
Host 会定时抓取并缓存(默认 6 小时),不需要 API Key;抓取失败时沿用上次数据或内置快照。
官方 DeepSeek 账户等其他 provider 不显示标签。
注意:/model 命令弹窗不在覆盖范围内(它没有插件扩展点);额度是“上限”,不是“本月剩余”。
关于 Token 用量
它在「设置 → Token 用量」里给你一张报表:今日 / 本周 / 本月三张卡,日 / 周 / 月的堆叠柱状图
(输入 / 缓存读写 / 输出),模型分布和会话排行(默认前 5 个,可加载更多)。子代理会话一起算。
- 数据只来自本地会话日志:每条
assistant/message(以及失败重试但报了用量的尝试)都带 usage,
插件把它折成一本账,先回填历史、之后只做增量。不调用模型、不改会话、不追加事件。 - 口径和 DSH 自己的统计一致:输入只算未命中缓存的部分,缓存读写单列;fork 继承来的前缀不重复计。
- 首次打开会回填:几十个会话通常十几秒,有进度条,页面可以先关掉,Host 会继续。
- 账本:
~/.dsh/token-stats/usage.json,只有会话 id、时间、模型和四类 token 数,没有对话正文;
删掉它等于清空账本,下次打开重新回填。
为什么值得装
- 不用切页面:余额、本轮花费、GO 三窗口都在输入框下方,悬浮看明细,点击立即刷新。
- token 用量一处看全:不用翻会话,设置里直接看今天 / 这周 / 这个月用了多少、花在哪个模型和会话上。
- 只读你已经在 DSH 里配置的 Key:不读
auth.json、不扫描无关环境变量,Key 不进浏览器。 - 零运行时依赖:纯 ESM + 浏览器 bundle,没有原生模块,目录直装也不缺包。
- 不干扰其它模型:两个 dock 在当前会话不是对应路由时整条自动隐藏。
- 数据口径清楚:余额、累计、日 / 周 / 月直接读官网接口;只有「本轮」是按官方价目表本地估算。
- 切模型不靠猜:候选来自 DSH 自己的目录,多版本一律列出待选。
- 选模型先看额度:GO 模型行直接显示 Monthly limit,按金额分色,不用去官网翻价格表。
- 会话真的能删干净:先回收站后清空,删错了还能撤销;子会话不会被留成孤儿。
兼容性
| 插件 | DSH |
|---|---|
| dsh-deepseek-cost | >= 0.2.1-rc.2 < 0.3.0 |
| dsh-go-quota | >= 0.2.1-rc.2 < 0.3.0 |
| dsh-go-model-limits | >= 0.2.1-rc.3 < 0.3.0 |
| dsh-model-switcher | >= 0.2.1-rc.3 < 0.3.0 |
| dsh-session-trash | >= 0.2.1-rc.3 < 0.3.0 |
| dsh-db | >= 0.2.1-rc.2 < 0.3.0 |
| dsh-token-stats | >= 0.2.1-rc.2 < 0.3.0 |
Node >= 18(桌面版内置 Node 24)。macOS 已验证;Windows / Linux 预期可用。
隐私
- 凭据只从当前 DSH profile 的配置读取,只在 Host 进程里用于请求官方接口。
- 不发送遥测,不写第三方服务。
- 八个插件里只有会话回收站、数据库和 Token 用量会改动磁盘:它把你主动删除的会话目录搬进
~/.dsh/trash,并在你恢复时搬回;其余插件不修改会话内容,两个 dock 只读用量与账单元数据,模型切换工具只调 DSH 本来的模型目录与选择接口,额度插件只读取模型目录并在菜单里渲染标签;数据库插件只写自己的~/.dsh/db/sources.json(数据源元数据),密码存 DSH 凭据库,连库请求只发往你自己配置的地址;Token 用量插件只写自己的~/.dsh/token-stats/usage.json(会话 id、时间、模型与 token 计数,没有正文),会话日志只读取不修改。
License
MIT
关于每轮耗时明细
用内置的「统计」页签也能看耗时,但那是另一张表,要主动切过去、还要自己找行。
这个插件把结论放到每一轮对话的末尾:一行说完「耗时 2m38s │ 模型 1m50s · 编码 12s ·
构建 20s · 测试 16s │ 慢在模型」,点开是各分类的小项。
两个细节值得说:
- 识图单独归类。截图工具本身 0.06 秒,慢的是之后那次模型读图调用(中位 17 秒),
所以它算进「测试」,并标注与「模型」重叠——否则这一项会被显示成 0.06 秒。 - 等你回答、等你审批不计入。它们既不是模型也不是工具,混进来会让「慢」失真。