
Duskriver/dsh-opencode-go
dsh-opencode-go
dsh-opencode-go is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile web add [email protected]Restart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-opencode-go)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from Duskriver/dsh-opencode-go, cleaned of badges and images.
dsh-opencode-go
功能:让你在 DeepSeek Harness 中完美使用 OpenCode Go 订阅模型,支持流式回复、工具调用和图片输入。
插件会自动添加 OpenCode Go 所需的会话请求头、读取网关模型目录,并显示订阅用量,无需给模型配置协议、模态、上下文长度、最大输出token
功能说明
- 会话请求头:每次请求包含 Harness User-Agent 和
x-opencode-session。同一会话保持稳定 ID,支持网关路由和提示词缓存优化;实际命中率取决于上游服务。 - 流式与历史:支持流式输出、工具调用及历史回放,协议请求由 pi-ai 执行。
- 图片输入:支持目录中声明图片能力的模型。
- 模型容量覆盖:可按模型覆盖上下文窗口和最大输出,空值继承在线目录。
- 逐模型开关:每个模型独立控制会话中的显示状态,修改立即生效;普通模型默认开启,过时模型默认关闭,也可单独开启。
- 提示与缓存:插件不增加隐藏系统提示;会话 ID 用于网关路由。
安装与使用
支持 DSH 0.1.5-rc.1 及以上版本,包括 alpha、rc 和正式版,并持续跟随宿主版本更新维护兼容性。
已验证版本:0.1.5-rc.1、0.1.5-rc.2、0.1.6-alpha.1、0.1.6-alpha.2、0.1.7-alpha.1、0.1.7-alpha.2、0.1.7-rc.1 和 0.1.7-rc.2。
在 DSH 中安装(推荐)
- 打开 DSH 的 插件 页面,点击右上角 添加插件。
- 输入
dsh-opencode-go,点击 安装。 - 安装成功后,如果出现 立即启用,点击即可。
然后打开 设置 → OpenCode Go,填入 API Key 并保存,即可在会话中选择 OpenCode Go 模型。
若当前 DSH 没有「添加插件」入口,可使用下面的命令行方式。
命令行安装(备选)
dsh plugin --profile web add [email protected]
安装后启动或重启 dsh web,然后:
- 打开 设置 → OpenCode Go。
- 填入 OpenCode Go API Key 并保存。
- 在会话的模型选择器中选择 OpenCode Go 模型。
无头模式
安装到 Headless profile:
dsh plugin --profile headless add [email protected]
将以下内容保存为 headless.patch.yml,选择默认模型:
- id: agent-default-model
config:
provider: opencode-go
model: deepseek-v4.1-flash
在 Bash 或 Zsh 中读取 API Key,然后运行任务:
read -s OPENCODE_API_KEY
export OPENCODE_API_KEY
dsh --profile headless --patch ./headless.patch.yml "你好"
模型 ID 须在当前网关目录中可用。Web 和 Headless 使用各自的 profile,需要分别安装插件。
如需从源码构建并安装本地包:
npm ci --legacy-peer-deps
npm pack
dsh plugin --profile web add ./dsh-opencode-go-0.1.15.tgz
开发依赖包含多代 DSH 的真实测试包,安装时需要 --legacy-peer-deps。Headless 用户将 web 换成 headless。
升级插件
更新 Web profile 中的插件到 npm 最新版本:
dsh plugin --profile web update dsh-opencode-go --latest
完成后重启 dsh web 并刷新浏览器。Headless 用户将 web 换成 headless;如果两个 profile 都安装了插件,需要分别升级。
订阅用量显示
用量每分钟刷新。临时网络或服务错误会保留同一账号的上次数据,并标明刷新失败、更新时间和错误原因;可在用量弹层中立即重试。首次获取失败或鉴权失败时不显示旧额度。模型目录、模型配置和用量的 JSON 请求遇到短暂连接重置时会在原有超时范围内额外重试一次;这不能保证故障中的网络恢复可用。
界面语言
插件跟随 Harness 的界面语言,提供中文和英文文案,不另存一套语言设置。未手动指定语言时,Web 版按浏览器语言列表匹配中英文(浏览器通常跟随系统);支持系统语言桥接的桌面版由宿主提供系统语言。没有匹配的语言时使用英文。
在 Harness 中手动选择的语言优先,切换后插件即时更新,保留未保存的表单内容。模型名称和 ID 保留原名;用量日期和容量数字按当前界面语言格式化。自动语言在启动时识别:Web 版更改浏览器语言后需刷新页面,桌面版更改系统语言后需重启 Harness。
模型开关
在 设置 → OpenCode Go 中,每个模型右侧的开关决定它是否出现在会话模型选择器中。开关立即保存,无需再点“保存”;容量和 API Key 的修改仍需保存。普通模型默认开启,过时模型默认关闭。你可以单独开启任意过时模型,也可以关闭普通模型。新出现且未单独配置的模型同样按此规则处理。
手动配置时,在插件的 config 下添加 modelVisibility,使用真实模型 ID 替换示例中的占位符:
modelVisibility:
your-model-id: false
your-deprecated-model-id: true
只有列出的 ID 被显式覆盖。开关只影响模型选择器;已有会话仍可调用网关提供的隐藏模型,设置页也保留完整模型列表。
旧配置中的 showDeprecatedModels 和 visibleModelIds 不再控制显示状态。请使用逐模型开关或 modelVisibility;旧字段可以保留,不会妨碍插件加载。
图片数量上限
在「设置 → OpenCode Go → 高级设置」中可以设置 maxImages,填写正整数后保存即可生效,无需重启。默认不设置,不限制图片张数;清空或重置会移除用户覆盖,重新继承基础配置(基础配置也未设置时没有张数上限)。
数量按单次请求携带的完整历史统计,包括工具输出里的图片;同一附件出现多次也分别计数。例如设置为 30 时,30 张正常发送,31 张会先卸载最旧的 1 张,再继续请求。卸载将图片内容替换为文字占位,原始附件仍保留,但模型在该次请求中看不到被卸载图片的内容。
DSH 0.1.5 的卸载只影响本次请求;DSH 0.1.6 及以上版本通过宿主的图片卸载机制记录卸载状态并重试,调高或清空上限不会自动恢复已卸载的历史图片。现有图片载荷、像素和单图字节预算仍独立生效,可能需要卸载更多图片。maxImages 是可选的兼容设置,不会改变上游服务自身的限制。
常见问题
提示 opencode-go 路由已被占用
同一 profile 中只能有一个适配器提供 opencode-go 路由。如果已经通过其他插件或通用 pi-ai 配置接入 OpenCode Go,请先停用那一项配置。其他提供方可以继续使用。
没有出现预期的模型
…
