前言¶
在使用 DeepSeek Harness (DSH) Web composer 开发智能体时,如果接入 OpenCode Go 服务,额度耗尽往往发生在用户不知情的时候。在输入框下方的统计行中增加一个状态指示器,是管理成本的有效手段。dsh-opencode-usage 插件旨在解决这一问题,它将 OpenCode Go 的额度状态以最轻量的方式嵌入到 DSH 的界面中。
插件简介¶
这是一个用于 DeepSeek Harness Web composer 的插件,由 ColorlessBoy 维护。它的核心作用是在输入框下方的统计行中显示 OpenCode Go 的剩余额度百分比。该插件不需要用户进行配置,直接读取 llm-pi-ai 中的 provider 设置,通过浏览器同源请求获取额度数据并展示。
核心功能¶
该插件提供以下能力:
- 额度展示:在输入框下方的统计行中显示剩余百分比,包括滚动(5小时)、每周和每月三个维度的数据。
- 零配置:自动跟随
llm-pi-ai中已配置的 provider,不要求用户复制密钥或手动添加设置项。 - 零构建:仓库自带
lib/目录,通过dsh plugin命令安装即可直接运行,无需构建授权。 - 密钥安全:密钥仅由 host 侧解析并使用,浏览器端只访问同源端点,密钥不会泄露到前端页面。
- 智能显示:根据 provider 的 URL 判定是否显示,仅当当前模型所属 provider 的
baseURL指向 OpenCode Go 时才显示,切到其他 provider(如 DeepSeek 官方)自动隐藏。 - 交互详情:点击 pill 可展开详情面板,查看各档位的剩余百分比和重置倒计时。
安装与启用¶
安装过程不需要构建步骤,推荐使用官方插件命令:
dsh plugin --profile web add github:ColorlessBoy/dsh-opencode-usage
安装完成后,必须重启 dsh web 进程并刷新浏览器页面,插件层才会生效。可以通过以下命令验证插件层已组合进配置:
dsh --profile web --dump-config # 应出现 "# == dsh-opencode-usage" 层
使用方式¶
安装并重启后,在 Web composer 的输入框下方的统计行中,内置的「上下文已用」pill 之后会出现一枚新的 pill,显示当前 OpenCode Go 的剩余电量图标和百分比。
界面示例如下:
10 轮 89 步 · 42 tok/s │ 1.2M · 缓存命中 45% │ 24% │ 🔋 剩余 5h 80% │ 周 84% │ 月 42%
点击该 pill 可以展开详情面板,查看更具体的额度信息。
注意事项¶
- 安装方式:插件支持 bundle 安装(推荐)和手工挂载两种方式。不要同时使用两种方式,同一个
opencode-usageid 出现两行会导致组合错误。 - 重启要求:
lib/index.js由 Node ESM 模块缓存持有,修改 host 侧代码后必须重启dsh web;浏览器半边支持热重载,修改后刷新页面即可。 - License:采用 MIT 协议。
- 行为限制:插件不接管路由,不创建悬浮窗,不参与请求计费,仅做只读展示。
技术细节¶
插件采用 Host/Client 分离架构。Host 侧 (lib/index.js) 负责解析 provider 的 baseURL 和 apiKeyEnv,向 OpenCode Go 官方接口发起带凭据的请求,并将返回的“已用”百分比归一化为“剩余”百分比,同时进行缓存(成功30s,失败10s)。Client 侧 (lib/client.js) 负责从会话中读取当前模型对应的 provider,轮询同源端点并将额度渲染为 dock 中的 pill。
插件将自身内容通过 display: contents 摊平,以 flex order: 1 排列在「上下文已用」pill 之后,确保 UI 布局与原生组件一致。
结语¶
dsh-opencode-usage 是一个克制且实用的工具,它通过复用 DSH 现有的 UI 组件,在不增加额外干扰的情况下,解决了 OpenCode Go 额度监控的问题。
- GitHub 仓库: https://github.com/ColorlessBoy/dsh-opencode-usage
- 官方目录: https://www.skillhub.cn/plugins/ColorlessBoy/dsh-opencode-usage