npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-opencode-go

v0.1.22

Published

OpenCode Go model provider and settings UI for DeepSeek Harness

Readme

dsh-opencode-go

English

在 DeepSeek Harness 中使用 OpenCode Go 订阅模型,支持流式回复、思考模式、工具调用和图片输入。插件自动同步模型列表与容量信息,并提供多账号管理、订阅用量显示和网络代理设置。

适用于 DSH 0.1.5-rc.1 及以上版本。

安装兼容性已覆盖十个宿主版本,从 0.1.5-rc.1 到 0.2.1-alpha.1,具体版本见兼容矩阵。后续宿主版本仍需验证;目前会明确拒绝 developer 消息、动态工具增删和延迟工具加载。

安装

在 DSH 中安装

  1. 打开 插件 → 添加插件。
  2. 输入 dsh-opencode-go,点击 安装。
  3. 安装完成后点击 立即启用。

在 DSH 中安装插件

也可以在添加插件时输入 Git 仓库地址:

https://github.com/Duskriver/dsh-opencode-go

命令行安装

dsh plugin --profile web add dsh-opencode-go

安装后启动或重启 dsh web。Web 和 Headless 使用各自的 profile,分别安装和更新。

开始使用

  1. 打开 设置 → OpenCode Go,填入 API Key 并保存,或在「账号」中添加账号。
  2. 在会话模型选择器中选择 DSH OpenCode Go 下的模型。
  3. 开始对话;支持思考的模型可选择其提供的思考档位,支持图片的模型可直接接收图片。

在设置页刷新模型列表即可同步最新目录。每个模型旁的开关控制它是否出现在选择器中,修改后立即生效。模型的上下文窗口和最大输出默认使用目录配置,也可逐个修改并保存。

思考选项中的 默认 使用服务商设置;Off 明确关闭思考。只有开关的模型显示 On / Off,支持强度的模型显示其可用档位,预算式模型显示具体的 token 数值。

预算式模型提供 1,024 / 2,048 / 8,192 / 16,384 tokens 等常用选项。在设置页选择模型,展开“思考预算”,输入数值、点击“添加”并保存,即可在会话中选择自定义预算。可用范围随模型而定;SDK 会根据剩余输出空间缩小实际预算。

插件跟随 DSH 的界面语言,支持中文和英文。

查看订阅用量

点击会话输入区旁的用量胶囊,查看当前账号的 5 小时、周和月用量及重置时间。用量每分钟刷新,也可手动刷新。

在 高级设置 → 额度显示 中选择:

  • 自动:使用本插件的模型时显示,默认选项。
  • 常驻:使用其他模型时也显示。
  • 关闭:隐藏用量显示并停止轮询。

订阅用量

管理多个账号

在「账号」中添加、重命名或更换 Key,展开账号行可查看详细用量。拖动行首手柄调整顺序,第一行成为当前账号。

开启 自动切换 后,当前账号额度耗尽或 Key 不可用时,插件会在开始输出前按列表顺序尝试其他账号。也可以在用量胶囊中点击 切换,直接选择后续请求使用的账号。

新增或删除账号中途关闭页面、断开连接时,宿主会在后续启动或设置、凭据更新时继续恢复。未能写入 Key 的新增账号会保留在列表,可补填 Key 或删除;恢复不会覆盖期间手动选择的当前账号。

高级用法

Headless 模式

安装插件:

dsh plugin --profile headless add dsh-opencode-go

将以下内容保存为 headless.patch.yml:

- id: agent-default-model
  config:
    provider: dsh-opencode-go
    model: deepseek-v4.1-flash

在 Bash 或 Zsh 中输入 Key 后运行任务:

read -s OPENCODE_API_KEY
export OPENCODE_API_KEY
dsh --profile headless --patch ./headless.patch.yml "你好"

将 model 换成设置页中可用的模型 ID。示例文件见 examples/headless.patch.yml。

网络代理

在 设置 → OpenCode Go → 高级设置 → 代理地址 中填写并保存,例如:

http://127.0.0.1:7890
socks5://127.0.0.1:1080

支持 HTTP、HTTPS、SOCKS5 和带用户名、密码的代理 URL。保存后,后续对话、模型目录更新和用量查询使用新代理。代理运行在 DSH 所在的机器上;远程部署中的 127.0.0.1 指服务器自身。

手动配置

在 高级设置 → DeepSeek V4.1 Flash 协议 中可选择 Responses(实验性) 并保存,便于比较同一模型的不同协议。默认 自动 跟随模型目录;改回自动即可恢复。选择只影响新请求,不会切换已准备或正在执行的调用,也不会在协议错误后自动改用另一协议。

目前仅支持 deepseek-v4.1-flash 的 Responses 覆盖,沿用当前账号、代理、会话标识与用量处理。issue #45 报告了更低延迟,但它不是网关的稳定性能承诺,也不能据此确认底层服务商;是否更快请以自己的测试为准。无需覆盖时省略以下配置:

- id: opencode-go
  config:
    protocolOverrides:
      deepseek-v4.1-flash: openai-responses

将该模型的值设为 null 会明确选择自动,即使继承的配置启用了 Responses;设置页的「恢复默认」会移除当前层覆盖,恢复继承值。其他模型或协议组合会被拒绝。

在 patch 文件中添加 opencode-go 配置块,可与上面的默认模型配置一起使用:

- id: opencode-go
  config:
    apiKeyEnv: OPENCODE_API_KEY
    accounts:
      - id: primary
        name: 主账号
        apiKeyEnv: OPENCODE_API_KEY
      - id: backup
        name: 备用账号
        apiKeyEnv: OPENCODE_GO_BACKUP_KEY
    autoSwitch: true
    proxyURL: http://127.0.0.1:7890
    refreshMinutes: 60
    modelVisibility:
      deepseek-v4-pro: false
    modelLimits:
      deepseek-v4.1-flash:
        maxTokens: 8192
      qwen3.7-plus:
        thinkingBudgets: [4096, 6000]
    maxImages: 30

按需保留配置项,并通过 DSH 凭据服务或环境变量提供对应的 Key。apiKeyEnv 选择当前账号,accounts 的顺序决定自动切换顺序。

| 配置项 | 用途 | | --- | --- | | baseURL | OpenCode Go 网关地址,默认 https://opencode.ai/zen/go/v1 | | usageDisplay | 额度显示模式:auto、always 或 off | | proxyURL | 网络代理;空字符串使用默认网络设置 | | refreshMinutes | 模型目录缓存时长,默认 60 分钟;设置页可随时手动刷新 | | modelVisibility | 按模型 ID 控制选择器中的显示状态 | | protocolOverrides | 实验性协议覆盖;目前仅支持 deepseek-v4.1-flash: openai-responses,省略或模型值为 null 时自动跟随目录 | | modelLimits | 按模型覆盖 contextWindow、maxTokens,或用 thinkingBudgets 添加思考预算选项;空值使用默认设置 | | maxImages | 单次请求历史中的图片数量上限,默认不设上限;超过时先卸载最旧图片 | | streamIdleTimeoutMs | 等待下一个流事件的最长时间,默认 300000 毫秒 | | requestPreparationTimeoutMs | 目录查询及每次尝试的凭据、图片准备时限,默认 60000 毫秒 | | requestTimeoutMs | 一次发送的完整时限,包含目录查询、账号切换和流式输出,默认 1800000 毫秒;预先准备的调用从发送时计时 |

图片卸载会保留原始附件,并将请求中的旧图片替换为文字占位;调高上限不会自动恢复已卸载的历史图片。

图片数量超限会在读取附件前返回卸载请求;图片准备在同一插件模块内共享四个执行名额和最多 32 个等待名额,精确字节超限时停止安排剩余图片。正在发送的图片请求共享 128 MiB 的已准备原始数据与 base64 预算;这不是进程总内存上限。排队或共享预算超限会返回 IMAGE_RESOURCE_BUSY,可在其他请求结束后重试。数量与字节限制可能需要宿主分次卸载后重试。

首次查询目录失败会报告 DISCOVERY_FAILED;已有目录时保留之前确认过的模型。网关明确返回空列表才会清空目录。列表中仅部分行格式错误时,仍可使用有效模型,设置页与日志会提示被忽略的行数。高级表单的普通配置项一次提交并检查版本;凭据由独立服务保存,凭据保存失败时保留其草稿,重试只提交未成功的部分。

导出错误诊断

需要排查请求失败时,在启动 DSH 前设置诊断目录:

export DSH_OPENCODE_GO_DEBUG_DIR=/tmp/dsh-opencode-go-debug
dsh web

Windows PowerShell:

$env:DSH_OPENCODE_GO_DEBUG_DIR = "$env:TEMP\dsh-opencode-go-debug"
dsh web

复现后,错误信息会给出 JSON 文件路径。记录包含模型、请求参数摘要、HTTP 状态、上游日志与路由编号及错误响应,便于提交 问题反馈。分享前检查服务返回的错误内容;清空环境变量并重启 DSH 即可关闭诊断。

DSH debug 日志另有每次发送的调用编号,以及各次尝试的阶段耗时、HTTP 状态、上游请求编号、首次输出等待时间与错误码,包含 HTTP 200 后的流中断;图片请求还记录排队累计等待与资源占用峰值。错误文件带有相同调用编号与尝试序号,便于关联排查。这些摘要不记录提示词、Key、代理地址或原始会话编号。

更新与卸载

更新到 npm 最新版本:

dsh plugin --profile web update dsh-opencode-go --latest

更新后重启 dsh web 并刷新页面;桌面版完全退出后重新打开。Headless 用户将 web 换成 headless。

卸载:

dsh plugin --profile web remove dsh-opencode-go

从 0.1.16 及更早版本升级时,在旧会话或 Agent 预设中重新选择 DSH OpenCode Go;手动配置使用 provider: dsh-opencode-go。

更多