dsh-opencode:在 DeepSeek Harness Web UI 中监视 OpenCode 线路与 Go 套餐

前言

用 DeepSeek Harness(DSH)对接 OpenCode 时,官方状态页在浏览器里,Go 套餐额度在控制台或 API 里,本机到 opencode.ai 的线路质量又要自己 ping。三块信息分散,很难在同一次开发会话里判断「是上游挂了、额度打满,还是本地网络抖了一下」。

下面介绍的 dsh-opencode(维护者 JAYcodr,GitHub:JAYcodr/dsh-opencode)是 DSH 生态里的客户端类插件:在 Harness Web UI 一角挂一块悬浮仪表,把线路质量、服务状态灯、Go 额度进度条、可选的真实推理探针和公开用量数据叠在同一块面板里。插件以 MIT 许可发布,与 OpenCode、Anomaly 无隶属关系,只读其公开或未文档化端点。

这是什么

一句话:OpenCode 线路仪表——在 DSH Web UI 的 shell.overlay 悬浮层里展示 opencode.ai 的状态、本机往返时延、Go 套餐额度,并可按需发起极小的流式探针验证「Go 推理是否真的通」。

宿主侧用 Cordis patch(cordis.patch.yml)注册轮询与同源 API;浏览器侧 client.js 只消费主题 token,不引入 Harness Client 包。当前仓库版本为 0.1.0(见 package.json)。

核心功能

资料中列出的能力可归纳为五块,彼此独立刷新频率可在配置中调节。

线路质量

每次抓取 https://opencode.ai/status/api/status 时,在本机测量到 opencode.ai 的往返时延,并提供滑窗均值、抖动、成功率与轮询进度。

服务状态灯

反映 opencode.ai/status 公布的控制台、推理、Go、按量、免费等分项状态。

实测 GO(真探针)

在配置允许时,用 Go 套餐凭据向 https://opencode.ai/inference/go/openai/v1/chat/completions 发一次极小流式请求(max_tokens: 16,输入 Say ok),得到真实首字时延(TTFT)、计费来源(是否走 go)、本次计入额度与 x-opencode-log-id;失败时按密钥、额度、限流、上游、超时等分类提示。这是唯一会消耗 Go 月额度的请求,README 估算单次约 \(0.00001**,默认每 600 秒一次约 **\)0.001/天,界面会显示「今日 N 次 · 计入 $x」。

Go 额度

经 GET https://opencode.ai/zen/go/v1/usage(Bearer 为 Go key,只读、不耗额度)读取 5 小时窗口、本周、本月三条 percent 与 resetsAt;rate-limited 或高占用时进度条与收起态胶囊灯会变色。

数据台账

周期性拉取 https://opencode.ai/data/index.json 等公开 JSON,展示用量排位、会话成本、缓存命中、地区分布等;模型价格来自 Go 官方清单,并标注当前时段倍率(如 DeepSeek V4.1 Flash 在工作日部分 UTC 时段为峰值 ×2)。

安装与启用

安装方式以仓库 README 为准,不要凭插件名拼接 dsh plugin add github:owner/repo。

  1. Plugin Manager(npm 发布后):在 DSH 的 Plugin Manager 中搜索并安装 dsh-opencode。README 注明:npm 上的 dsh-opencode 包名可能被其他作者占用,若走 npm 发布可能需要换名(例如 dsh-opencode-meter);尚未发布时可先用目录方式。
  2. 从目录安装 bundle:将本插件所在目录在 Plugin Manager 里用「从目录安装 bundle」(等价于 plugin_manager 的 install_bundle),DSH 会 link 进当前 profile。
  3. 刷新 Web UI(⌘R / Ctrl+R),右上角应出现悬浮仪表;若无,可重启一次 Harness 让客户端模块重扫。

凭据方面:若 profile 已配置 OPENCODE_GO_API_KEY(使用 opencode-go provider 时常见),探针与额度查询可直接使用;否则在仪表「设置」页签保存一把具 Go 订阅的 key,或将配置项 probeKeyEnv 指向你自己的凭据引用名。专用 key 写入 DSH 凭据库 DSH_OPENCODE_PROBE_KEY,不下发浏览器、不出现在 /api/state。

典型用法

安装并配置 key 后,可按 README 中的交互方式日常查看:

  1. 拖动标题栏移动仪表;右上角 ⟳ 立即刷新状态、用量与 Go 额度;⌃ 收成小胶囊(胶囊可拖,轻点展开)。
  2. 收起后的胶囊灯取「官方 Go 状态」与「最近一次实测结果」的较差者:官方显示正常但本机 key/额度异常时,胶囊也会变红。
  3. 在状态页 「实测 GO」 使用 「测一下」 手动探针(30 秒冷却);自动探针按 probeIntervalSeconds 运行,倒计时显示在界面上。
  4. 标题旁可关 实测、额度 两个开关:关闭后对应区块隐藏,宿主停止相应定时请求(实测不再花额度、额度不再轮询)。
  5. 设置页可改探针/额度轮询间隔(分钟)、保存或清除专用 key;改动持久化到 $DSH_HOME/plugin-data/dsh-opencode/settings.json(权限 600)。

同源 API(供 Web UI 使用,不含 key)包括:

  • GET /dsh-opencode/api/state — 合并状态、用量、探针、额度与设置
  • POST /dsh-opencode/api/probe — 手动探测,可选 {"model":"..."},冷却 30s
  • POST /dsh-opencode/api/settings — 开关与间隔
  • POST /dsh-opencode/api/key、DELETE /dsh-opencode/api/key — 专用 key 读写

配置要点

可在 profile 的 cordis.patch.yml 中覆盖插件 dsh-opencode 的 config,例如:

- id: dsh-opencode
  config:
    statusIntervalSeconds: 60      # 20–600
    dataIntervalSeconds: 300       # 60–3600
    requestTimeoutSeconds: 15      # 5–60
    probeSamples: 120              # 20–500(本地时延样本数)
    probeEnabled: true             # 关掉则完全不发推理请求
    probeIntervalSeconds: 600      # 120–3600
    probeKeyEnv: OPENCODE_GO_API_KEY  # 凭据引用名,不是 key 本身
    probeModel: deepseek-v4.1-flash
    probeTimeoutSeconds: 30        # 5–60
    goModelsIntervalSeconds: 1800  # 600–7200
    usageEnabled: true             # Go 额度查询(只读,不消耗额度)
    usageIntervalSeconds: 120      # 60–3600

数据来源与默认轮询间隔见下表(均可通过上述字段调整探针与额度相关项):

数据 地址 默认频率
实时状态 https://opencode.ai/status/api/status 60s
用量数据 https://opencode.ai/data/index.json 300s
Go 模型/价格 https://opencode.ai/inference/go/v1/models 1800s
实测探针 https://opencode.ai/inference/go/openai/v1/chat/completions 600s(可关,最低 120s)
Go 额度 https://opencode.ai/zen/go/v1/usage 120s(可关,最低 60s)

适用场景与注意

适合谁:在 DSH 里长期使用 OpenCode Go 线路、希望不离开 Harness 就能对照「官方状态 + 本机线路 + 额度 + 可选真探针」的开发者。

运行与安全:插件随当前 DSH 进程权限访问网络与凭据服务;安装前应查看源码与 MIT 许可证,并知悉其会按间隔请求 OpenCode 公开端点,探针开启时会用你们的 Go key 发起计费极小的推理请求。端点可能随官方变更;除探针外数据缓存在宿主内存、不落盘。安全问题见仓库 SECURITY.md。

DSH 奉行「一切皆插件」;社区目录(如 SkillHub 插件页)为独立收录,与 DeepSeek、幻方无官方从属关系。

结尾

经过上面的步骤,dsh-opencode 把 OpenCode 状态页、额度 API 和本机链路观测收进 Harness 同一块悬浮仪表,并用可关闭的真探针回答「Go 推理此刻是否真的能走通」。若要进一步了解实现或贡献索引,可查阅 GitHub 仓库 与目录页 SkillHub:JAYcodr/dsh-opencode。

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

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

Xiaoye