Skip to content

dsh-opencode-free-provider

Verified

dsh-opencode-free-provider · v0.1.0 · MIT

Free OpenCode Zen models for DeepSeek Harness (DSH): native dsh-llm adapter plugin, no API key. No proxy, no auto-continuation.

Install

dsh plugin add dsh-opencode-free-provider

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

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Creators

Readme

dsh-opencode-free-provider

DSH 内原生可用的免费 OpenCode Zen 模型。

无需 API key。无需注册。无需额外进程。

English | 简体中文


dsh-opencode-free-provider 注册了一个原生 DSH LlmAdapter,直接从 OpenCode Zen匿名免费通道流式获取模型 — 也就是 OpenCode 自家 CLI 免账号使用的同一批模型,在 DSH 模型选择器里作为 名为 dsh-opencode-free-provider 的普通 provider 出现。

请求从你的机器发出去时,看起来与 OpenCode CLI 的流量完全一致(相同的 user agent、相同的关联请求头),模型目录通过三级回退链保持新鲜。无需登录, 无需托管任何东西。

亮点

  • 零凭证、零配置 — 匿名通道不需要 key;安装、重启、开聊
  • 原生 adapter,无 sidecar — 一个 npm 包,无子进程、无二进制、无本地端口
  • CLI 级伪装 — 携带 OpenCode CLI 同款 user agent 与按会话派生的 session/request/project 头集合
  • 实时目录 + 回退链 — 实时上游列表 ∩ 按价格元数据判定免费,叠加离线缓存与已验证静态列表兜底
  • 自愈 — 启动快速重试、周期刷新,并写入健康快照便于诊断
  • 诚实的错误面 — 上游失败(限流、鉴权、超时、传输)以分类后的 finish reason 到达 DSH,重试权交还 DSH
  • 不做魔法截断 — 无单请求输出上限、无自动续写:length 结束诚实地以 max-tokens 呈现,手动继续即可

安装

dsh plugin --profile web add dsh-opencode-free-provider

同一条命令可将已安装的版本更新到最新发布版;追加 @<version> 可锁定版本。安装后重启 dsh web

要求:带 web profile 的 DSH(DeepSeek Harness);Node.js ≥ 20(能跑 DSH 就自带);到 opencode.aimodels.dev 的出站 HTTPS。

配置

默认开箱即用。可通过 profile 的 cordis.patch.yml 覆盖:

- id: dsh-opencode-free-provider
  name: 'dsh-opencode-free-provider'
  config:
    providerId: dsh-opencode-free-provider
    refreshSeconds: 300  # 目录刷新周期
选项 默认值 说明
providerId dsh-opencode-free-provider DSH 中显示的 provider 名。
refreshSeconds 300 实时目录刷新间隔。价格元数据每 24 h 刷新。

工作原理

DSH 会话
   │  harness chunks (block-start / text-delta / usage / finish …)
   ▼
ZenAdapter(已注册的 LlmAdapter)
   │  pi-ai openai-completions 流(默认)/
   │      openai-responses 流(Muse Spark 通道:仅 /v1/responses)
   ▼
https://opencode.ai/zen/v1        ← Authorization: Bearer public
   附带 CLI 级请求头:
     user-agent: opencode/…
     x-opencode-client, x-opencode-session, x-session-affinity,
     X-Session-Id, x-opencode-request, x-opencode-project
  • 会话关联 — session/project id 由会话首轮用户消息 SHA-256 派生 (按会话稳定、不可逆),每个请求再配一个全新的随机 id,与 CLI 一致。
  • 目录回退链 — S1:实时 GET /v1/models;S2:models.dev 价格元数据 判定"免费";S3:编译期已验证静态列表。磁盘缓存(约 7 天 TTL)覆盖上游 中断。
  • 韧性 — 插件启动即注册;若首次目录拉取撞上本机网络就绪竞态 (VPN/TUN 重连、DNS),会以较短周期(约 1 分钟)重试几次,再进入周期 刷新。

健康与排障

每次刷新后插件会写一份健康快照:

~/.dsh-opencode-free-provider/adapter-status.json
{
  "status": "ready",
  "total": 64,
  "exposed": 9,
  "lastError": "",
  "writtenAt": "2026-08-29T07:01:54.915Z"
}
现象 可能原因与修复
只有静态模型 启动拉取撞上了网络就绪竞态;约 1 分钟内重试落定。看 adapter-status.jsonlastError
lastError: "fetch failed" 持续 opencode.ai 的出站 HTTPS 被挡;检查代理/VPN 规则。
聊天中出现限流错误 匿名通道按 IP 配额;换网络节点或稍后再试。

安全

  • 不涉及任何秘密:匿名通道的 key 就是字面量字符串 public;不存储、不遥测。
  • 所有请求都从你的机器直连 opencode.ai / models.dev

开发

pnpm install
pnpm run check

检查链为 typecheck + 测试 + 构建;lib/ 已提交,profile 安装无需构建。本地 checkout 请重新装入 web profile(dsh plugin --profile web add file:...),重启 dsh web,刷新页面。模型选择器中的 provider 分组显示为 opencode-zen-free;健康信息写入 ~/.dsh-opencode-free-provider/adapter-status.jsonpnpm run deploy:local 可把 lib/ rsync 到 profile 副本(host 改动仍需重启 dsh web)。

致谢

License

MIT