dsh-opencode-go-usage-dock
Đã xác minhdsh-opencode-go-usage-dock · v0.1.4 · MIT · Giao diện web
DeepSeek Harness plugin: OpenCode Go plan usage readout docked under the composer, aligned with the input bar width
Cài đặt
dsh plugin add dsh-opencode-go-usage-dock Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.
Mã nguồn
Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.
Thẻ
Tác giả
Readme
dsh-opencode-go-usage-dock
中文 | English
一个 DeepSeek Harness Web GUI 插件:在输入框下方(与输入栏同宽、出厂"统计"行同一读数带)常驻显示你的 OpenCode Go 套餐用量。不需要设置页、不需要侧边栏入口——聊天时三个用量窗口(5 小时滚动 / 每周 / 每月)始终可见。

功能
- 输入框下方常驻用量条 — 注册在
conversation.composer.dock(order 10,与出厂统计行并列),宽度与输入框严格对齐 - 三个用量窗口 — 滚动(5h) / 每周 / 每月,显示已用百分比与重置时间
- 健康度彩点 — 绿 <60%、黄 60–85%、红 ≥85%
- 悬停详情 — tooltip 显示窗口名、限额与重置时间
- 手动刷新 — 小刷新按钮随时重新请求官方端点
- 静默回退 — 未配置 opencode-go 时整条完全不渲染:没有报错噪音、没有占位;只有真实故障(网络 / HTTP / 解析)才显示错误行 + 重试
- i18n — 中英双语(跟随 DSH 界面语言)
前置条件
- Node.js + DeepSeek Harness,使用标准
dsh webprofile(默认组合已包含api-gateway客户端 Remote 与conversation.composer.dock槽位) - 已订阅 OpenCode Go,并在 设置 → 模型 中添加
opencode-go提供商 - 有效的 OpenCode Go API Key(
sk-opencode-…)— 见 API Key 配置
安装
GitHub 源
dsh plugin --profile web add github:xv-chang/dsh-opencode-go-usage-dock
npm 源
dsh plugin --profile web add npm:dsh-opencode-go-usage-dock
Profile 激活
0.1.2 起本包声明了 dsh.bundle profile 补丁,dsh plugin add 会自动把它注册为 profile layer——无需手动编辑 cordis.patch.yml。
然后重启 dsh web,让 Host 半与服务端 client bundle 生效。
如果安装的是 0.1.2 之前的版本,需要手动在
$DSH_HOME/profiles/web/cordis.patch.yml添加插件行:- insert: - id: opencode-go-usage-dock name: 'dsh-opencode-go-usage-dock'
配置
插件行 config 可调项:
- id: opencode-go-usage-dock
name: dsh-opencode-go-usage-dock
config:
baseUrl: https://opencode.ai/zen/go/v1/usage # 默认
timeoutMs: 15000 # 默认
| Key | 默认值 | 含义 |
|---|---|---|
baseUrl |
https://opencode.ai/zen/go/v1/usage |
用量接口地址 |
timeoutMs |
15000 |
请求超时(毫秒) |
API Key 配置
仅从 DSH 凭据库 解析:
$DSH_HOME/.credentials.yaml中的OPENCODE_GO_API_KEY(或环境变量)。
不读取任何 OpenCode CLI 文件——本插件是 DSH 特性,不依赖 opencode 安装。
行为语义
| 状态 | 用量条渲染 |
|---|---|
| 设置 → 模型没有 opencode-go | 不显示(静默) |
| 未找到 API Key | 不显示(静默) |
| 请求失败(网络 / HTTP / 解析) | 红色错误行 + 重试按钮 |
| 正常 | OpenCode Go ● 滚动 1% ● 本周 20% ● 本月 11% [刷新] |
工作原理
双端插件。Host 发布 opencodeUsage Typert Remote 服务;Client 挂载它、注册 conversation.composer.dock 槽位并渲染读数条。通信走 harness 的 /api RPC 通道。
| 文件 | 职责 |
|---|---|
index.js |
Host 半 — OpencodeUsageGateway(TypertRemoteService,服务键 opencodeUsage) |
typert.host.js |
手写 Typert host manifest,通过 exports["./typert"] 注册 |
client.js |
window.__ModuleLoader__.load 格式浏览器 bundle — 挂载 Remote、注册 dock 槽位、渲染读数条 |
package.json |
双面声明:main + exports["./client"] + exports["./typert"] + dsh.client + dsh.bundle |
用量接口
GET https://opencode.ai/zen/go/v1/usage
Authorization: Bearer <API_KEY>
返回(社区实测格式;尚未进入 OpenCode 公开文档,因此解析是防御式的):
{
"usage": {
"rolling": { "status": "ok", "percent": 9, "resetsAt": "2026-08-14T07:20:04.810Z" },
"weekly": { "status": "ok", "percent": 12, "resetsAt": "2026-08-17T00:00:00.810Z" },
"monthly": { "status": "ok", "percent": 6, "resetsAt": "2026-09-09T00:41:03.810Z" }
}
}
percent 为 0–100;resetsAt 为 ISO-8601。
常见问题
安装时出现 pnpm peer dependencies 警告(missing peer react / @deepseek-ai/...)正常吗?
正常,可忽略。这些依赖由 DSH 运行时提供:DSH 通过 two-anchor 加载器解析(安装目录优先、profile 次之),并用 $DSH_HOME/profiles/node_modules 平面回退目录让插件经普通 Node parent-walk 解析到安装内置的 @deepseek-ai/* 与 react。pnpm 警告只因安装插件包时这些依赖不在 profile 依赖树中,不影响加载。若同时看到 declares no dsh.bundle 警告,请升级到 0.1.2+(会自动注册为 profile layer)。
用量条不出现。 该槽位是会话作用域:先打开任意一个会话。然后依次排查:(1) 设置 → 模型中有 opencode-go;(2) API Key 能解析(见上文);(3) 插件行已写入 profile 补丁层且 dsh web 已重启。
提示 "API Key 无效或已过期 (401)"。 Key 错误或过期——去 OpenCode 后台重新签发并更新凭据。
tooltip 里的限额($12/$30/$60)会有漂移。 限额跟随 OpenCode Go 套餐,仅作展示参考;接口响应本身不包含限额。
License
MIT