dsh-opencode-go:OpenCode GO 与 CommandCode 套餐用量监控插件

在 DeepSeek Harness (DSH) 的 Web 端开发或调试场景中,监控 OpenCode GO 与 CommandCode 的套餐用量往往需要依赖外部工具或手动切换页面。这增加了上下文切换的成本。dsh-opencode-go 插件旨在解决这一问题,它直接在会话头部提供常驻的用量状态芯片,让用量监控与对话过程融为一体。

核心功能

该插件主要实现以下能力:

  1. 会话头部常驻显示:在 conversation header 的 utilities 槽位注册芯片,显示各账号的周用量百分比。颜色编码遵循以下规则:≥90% 为红色(受限),≥70% 为橙色,否则为绿色。
  2. 悬停查看详情:鼠标悬停在芯片上时,会弹出气泡,分别展示滚动 5h、每周、每月的用量数据,以及当前滚动窗口的剩余时间。
  3. 自动与手动刷新:支持 3 分钟自动刷新数据,同时也提供手动刷新按钮。
  4. 智能缓存:切换会话时复用模块级共享缓存,避免重复发起网络请求。
  5. 独立容错:单个账号的 API 调用失败不会影响其他账号,失败的账号行会显示「获取失败」。
  6. 安全性:API 密钥仅存储于宿主侧(.credentials.yaml),浏览器端永远不会直接接触这些密钥。

安装与启用

通过 DSH 插件管理器安装:

dsh plugin --profile web add github:305037991x-pixel/dsh-opencode-go

安装完成后,需要重启 dsh web 服务,并在浏览器中执行硬刷新(Ctrl+Shift+R)以加载新组件。

配置方法

插件需要宿主侧提供 API 密钥才能正常工作。请在 $DSH_HOME/.credentials.yaml 文件中配置以下内容:

# OpenCode GO 账号 A(必填)
OPENCODE_GO_API_KEY: sk-xxx
# OpenCode GO 账号 B(可选,不配置则只显示一个账号)
OPENCODE_GO_API_KEY_B: sk-yyy
# CommandCode(可选,不配置则不显示该行)
COMMANDCODE_API_KEY: cmd-zzz
  • OpenCode GO Key:在 opencode.ai/auth 创建。
  • CommandCode Key:在其 Studio 创建(即 Provider API 使用的 CMD_API_KEY)。

工作原理

插件采用宿主端与客户端分离的架构:

  • 宿主端:负责注册 GET /dsh-opencode-go/usage 接口。该端点并行解析各账号凭证,调用官方接口获取用量数据并返回。
  • 客户端:在 conversation.session.header.utilities 槽位注册芯片组件。它维护模块级的共享缓存和定时器,负责数据的获取、渲染和交互逻辑。

数据源主要来自两个官方接口:
* OpenCode GO:使用 https://opencode.ai/zen/go/v1/usage 接口,官方直接返回 rolling/weekly/monthly 窗口的 percent 和 resetsAt。
* CommandCode:使用 https://api.commandcode.ai/alpha/billing/credits 等非公开的 /alpha 系列端点(与官方 CLI 使用同源接口),通过 windowLimits 计算百分比。

兼容性与依赖

该插件与 DSH 核版本解耦。所有 @deepseek-ai/dsh-* 核心包均声明为可选的 peerDependencies(范围 >=0.1.0-rc.6 <0.2.0)。

插件自身不安装、不携带任何核心包副本,运行时一律使用宿主正在运行的那份核。因此,升级 DSH 核心包不需要重装本插件。

主要依赖项包括:
* dsh-credentials:用于获取凭证。
* dsh-launch-environment:用于获取运行环境。
* 浏览器端通过 dsh.client.inject 由宿主的客户端模块表提供依赖。

适用场景

此插件适合需要在长时间对话或开发过程中持续监控 API 套餐额度,希望减少手动查询成本的用户。建议在安装前检查插件源码与许可证(MIT)。

插件目录 | GitHub 仓库

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜