Skip to content

dsh-llm-opencode-go-live

Verified

@skylerfee/dsh-llm-opencode-go-live · v0.2.2 · MIT · Web UI

OpenCode Go 动态模型目录插件

Install

dsh plugin add @skylerfee/dsh-llm-opencode-go-live

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Creators

Readme

@skylerfee/dsh-llm-opencode-go-live

English | 中文

CI License: MIT Node: >=22.19 Release: v0.2.2 Listed on dsh-plugin.org

DeepSeek Harness 的 OpenCode Go 动态模型目录插件。它从 Models.dev 更新 opencode-go 模型列表,注册独立的 opencode-go-live 路由,并由插件自己的浏览器入口在 Models 页显示供应商、密钥和动态模型;复用 pi-ai 处理模型请求;内置 opencode-go 路由不受影响。供应商卡片内的开关可以在帧级悬浮层显示 OpenCode Go 订阅用量。

快速开始

需要 Node.js 22.19 及以上(pi-ai 声明的最低版本)、pnpm,以及 DeepSeek Harness 0.1.7-rc.1 及以上。插件的 peer 依赖是 @deepseek-ai/cordis ~4.0.4 || ~4.0.5-alpha.1,以及 @deepseek-ai/dsh-credentials、@deepseek-ai/dsh-llm、@deepseek-ai/dsh-llm-pi-ai、@deepseek-ai/dsh-settings 的 >=0.1.7-rc.1 <0.2.0-0 || >=0.2.0-rc.1 <0.3.0-0 || >=0.2.1-alpha.1 <0.3.0-0。每条范围都带显式预发布分支:node-semver 只在范围里存在同 major.minor.patch 元组、且自身带预发布标签的比较符时才放行预发布版本,缺少分支会静默排除 harness 的所有预发布构建。插件接入的图片输入钩子由这些版本提供。宿主还需提供 @earendil-works/pi-ai ^0.87.1:DSH 在运行时将该 peer 解析到宿主的 pi-ai,链接源码目录安装时也适用;插件保留 pi-ai 0.87.1 开发依赖,用于自身构建和测试。

推荐从 npm 安装,使用已安装的 dsh CLI 将插件加入 Web profile:

dsh plugin --profile web add @skylerfee/dsh-llm-opencode-go-live

该命令安装 npm 的 latest 标签。跟进预发布时,在包名后加 @alpha;固定本次发布版本时,加 @0.2.2。从源码运行 DSH 时,可在 DSH 仓库根目录执行 pnpm dsh plugin --profile web add @skylerfee/dsh-llm-opencode-go-live。使用指南提供 npm 安装说明,以及开发时的源码目录和 tarball 安装方式。

在 Web 客户端的插件页安装并启用插件:

在 Web 客户端的插件页安装并启用插件

重启 Web profile 后,打开 Settings → Models,在插件提供的 OpenCode Go (Live) 卡片点击“编辑”,填写 API Key 并应用,再从模型选择器选择 opencode-go-live 下的模型。密钥由 DSH 凭据服务保存,默认引用名为 OPENCODE_GO_LIVE_API_KEY,该名称刻意区别于 Models 页为内置 opencode-go 派生的 OPENCODE_GO_API_KEY,两条路由不会共用同一条凭据记录;bundle 默认将模型目录快照保存在 Harness home 的 cache/opencode-go-live.json(默认即 ~/.dsh/cache/opencode-go-live.json,设置 $DSH_HOME 时位于其下)。安装不会切换默认模型。

卡片内的显示用量悬浮窗开关控制右下角的用量面板(未配置时默认开启):面板按 5 小时滚动、周、月三个窗口显示 OpenCode Go 订阅的用量百分比与重置时间,默认显示右下角徽章(5 小时进度条与用量百分比),鼠标移入展开完整面板、移出自动收起;徽章未固定时可拖动,图钉按钮切换固定(实心=已固定,空心=未固定,默认不固定);固定展开按钮让面板常驻展开,展开后可用右下角手柄调整大小(最小 200×120、最大 480×520,并以视口为上限),也可用方向键按 16px 步长收放;点面板的 × 会把该开关同步关闭。数据由宿主用同一凭据向 https://opencode.ai/zen/go/v1/usage 查询。该端点不出现在 OpenCode 公开文档中,属上游实现约定;密钥只在宿主解析,不会进入浏览器。用量悬浮窗的字段说明与故障排查见使用指南。

浏览器里的用量悬浮窗——鼠标移入徽章展开完整面板,移出自动收起:

用量悬浮窗徽章展开为完整面板

插件在 Settings → Models 中的卡片——在编辑态填写密钥、目录解析后的动态模型列表,以及会话里模型选择器中自成一组的 live 模型(旁边可选推理等级):

在 OpenCode Go (Live) 卡片中保存密钥并在模型选择器中选择 live 模型

文档

  • 使用指南:安装、密钥配置、配置字段与故障排查。
  • 架构文档:组件职责、Mermaid 数据流与时序图、目录刷新和请求行为。
  • 用量悬浮窗设计:数据源契约、宿主余额路由、展示开关与测试计划。
  • 开发与发布流程:新功能与 Bug 修复的 PR、验证、版本标签和 GitHub 预发布。

插件需要 DSH 的 llm 与 credentials 服务;Web 设置页还使用 settings 服务,用量悬浮窗另需浏览器载体 connection(缺失时插件照常运行,仅不注册余额路由)。刷新失败会保留上次成功目录,首次无目录时供应商可见但没有 live 模型;模型调用缺少凭据时返回 MISSING_CREDENTIAL。目录可见不代表 API 调用已获上游授权。

图片输入(read_image 工具结果或粘贴的截图)通过宿主的 durable 附件服务解析,与内置路由行为一致;未挂载附件服务时,携带图片的请求以 UNSUPPORTED_CONTENT 失败而不是静默丢弃。文件附件从不以原始字节发给任何 provider:请求组装层在所有路由上把文件块投影为确定性句柄文本。声明的输入模态跟随远端目录的 modalities.input(text 与 image),未声明图片输入的模型收到纯文本图片占位。

验证环境

仅在 macOS 上验证过。 插件安装、对 Models.dev 线上目录的刷新、Models 设置卡片以及模型调用都在同一台 macOS 机器上跑通过;Linux 与 Windows 从未实际运行。

CI 在 ubuntu-latest 上执行构建与离线测试套件。这只是构建信号,不是运行时验证:测试使用固定目录替身,没有任何自动化运行会访问真实的 OpenCode Go API。

许可证

MIT © 2026 SkylerFee,详见 LICENSE。