免密钥接入 OpenCode Zen 免费模型,开箱即聊
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add powell728/opencode2dsh该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 取源不可用(Error: github tarball HTTP 404 @ https:
- · api.github.com
- · repos
- · powell728
- · opencode2dsh
- · tarball)
扫描于 2026/10/31(1 天前)
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DSH 插件:为 DeepSeek Harness(DSH)提供 OpenCode Zen 免费模型。免费 LLM API,无需 API key。在 DSH 中使用 OpenCode Zen 免费模型,无需 API key
README
由 DeepSeek 最新模型翻译生成opencode2dsh
免费使用 OpenCode Zen 模型,原生跑在 DSH(DeepSeek Harness)里。
不用 API key,不用注册,不用额外进程。
opencode2dsh 注册一个原生 DSH LlmAdapter,直接从 OpenCode Zen 的匿名免费通道流式拉取模型。OpenCode 自家命令行不登录时用的就是这些模型,现在它们以 opencode2dsh 这个服务商的身份出现在你的 DSH 模型选择器里。
请求离开你的机器时,看起来和 OpenCode 命令行的流量一模一样(同样的 user agent,同样的关联请求头),模型目录靠三级回退链保持最新。不用登录任何账号,也不用自己托管任何东西。
展开完整文档(README 剩余 1 节)
opencode2dsh
免费使用 OpenCode Zen 模型,原生跑在 DSH(DeepSeek Harness)里。
不用 API key,不用注册,不用额外进程。
opencode2dsh 注册一个原生 DSH LlmAdapter,直接从 OpenCode Zen 的匿名免费通道流式拉取模型。OpenCode 自家命令行不登录时用的就是这些模型,现在它们以 opencode2dsh 这个服务商的身份出现在你的 DSH 模型选择器里。
请求离开你的机器时,看起来和 OpenCode 命令行的流量一模一样(同样的 user agent,同样的关联请求头),模型目录靠三级回退链保持最新。不用登录任何账号,也不用自己托管任何东西。
亮点
- 零凭证、零配置 —— 匿名通道不需要 key,装好、重启、开聊
- 原生适配器,无 sidecar —— 一个 npm 包,不起子进程,不带二进制,不占本地端口(旧的 Go sidecar 不在发布包里,见 legacy/)
- 和命令行完全一致的伪装 —— 请求带上 OpenCode 命令行的 user agent,以及它的 session/request/project 请求头集合,按会话逐个生成
- 可选思考等级 —— 支持推理的免费模型会在 DSH 模型选择器里给出 effort 选择器(模型元数据提供档位时按声明的档位,否则为 Off/Minimal/Low/Medium/High);仅支持 Responses 的 muse-spark- 模型只暴露上游支持的 effort 等级,不做选择则沿用服务商默认值
- 按声明支持图片输入 —— 只要模型在 models.dev 条目里把 image 列进 modalities.input,就接受图片附件;只声明 text 的模型一律拒绝;models.dev 没有说明时,回退到实测验证过的视觉模型系列
- 实时目录 + 回退链 —— 上游实时列表 ∩ 按元数据判定的免费模型,回退到离线缓存,再回退到验证过的静态列表
- 自愈 —— 启动快速重试、定期刷新,并写出健康快照供诊断
- 清晰的错误呈现 —— 上游故障(限流、鉴权、超时、传输)在 DSH 里表现为分类后的结束原因,重试仍由 DSH 负责
安装
从插件市场(推荐,前提是本仓库已上架):在 DSH 里打开 Settings → Plugin Market,搜索 opencode2dsh,一键安装。
从 npm:
dsh plugin --profile web add @opencode2dsh/dsh-plugin
从源码(自己构建 tarball):
git clone https://github.com/FishBottle7/opencode2dsh.git
cd opencode2dsh/packages/plugin
pnpm install && pnpm pack
dsh plugin --profile web add ./opencode2dsh-dsh-plugin-<version>.tgz
验证:重启 dsh web,打开模型选择器,从 opencode2dsh 分组里挑一个模型。
需要 DSH(DeepSeek Harness)0.1.7 或更新版本,并带 web 配置档(IP 池设置页依赖 0.1.7 的 Plugins 页契约);Node.js ≥ 20(DSH 能跑就说明已经有了);能对外 HTTPS 访问 opencode.ai 和 models.dev。
配置
默认值开箱即用。要覆盖就改配置档里的 cordis.patch.yml: yaml
- id: opencode2dsh
name: '@opencode2dsh/dsh-plugin'
config:
mode: adapter # adapter (default) | sidecar
providerId: opencode2dsh
refreshSeconds: 300 # catalog refresh cadence
| 选项 | 默认值 | 说明 |
| mode | adapter | adapter:原生 LlmAdapter,直接从 Zen 流式输出。sidecar:旧的本地智能体模式,不随包提供——从 legacy/agent 构建智能体,再传 agentPath。 |
| providerId | opencode2dsh | DSH 里显示的服务商名称。 |
| refreshSeconds | 300 | 实时目录刷新间隔。定价元数据每 24 小时刷新一次。 |
| agentPath | 自动解析 | 仅 sidecar:智能体二进制的路径。 |
| agentArgs | — | 仅 sidecar:传给智能体的额外命令行参数。 |
| restartDelayMs / restartMaxDelayMs / maxConsecutiveCrashes | 1000 / 60000 / 5 | 仅 sidecar:重启退避与熔断。 |
| firstEventMs / bodyIdleMs / responsesBodyIdleMs | 30000 / 120000 / 300000 | 仅 adapter,插件 0.3.7+:流存活看门狗,单位毫秒(整数,1 到 600000)。分别是首个流事件的等待时间、响应中途正文静默时间、Responses 模型(muse-spark-)的正文空闲下限。冷启动慢就调大 firstEventMs。不设置就保持默认值;改完重启 DSH。 |
工作原理
DSH session
│ harness chunks (block-start / text-delta / usage / finish …)
▼
ZenAdapter (registered LlmAdapter)
│ pi-ai openai-completions stream (chat models)
│ pi-ai openai-responses stream (muse-spark-, Responses-only on Zen)
▼
https://opencode.ai/zen/v1 ← Authorization: Bearer public
with CLI-identical headers:
user-agent: opencode/…
x-opencode-client, x-opencode-session, x-session-affinity,
X-Session-Id, x-opencode-request, x-opencode-project
- 会话关联 —— 会话 id 和项目 id 由对话第一条用户消息经 SHA-256 派生(同一对话内稳定,不可逆),每个请求再生成一个全新随机 id,跟命令行行为一致。
- 目录回退链 —— S1:实时 GET /v1/models;S2:由 models.dev 定价元数据判定「免费」;S3:编译期校验过的静态列表。磁盘缓存(约 7 天 TTL)兜住上游故障。
- 容错 —— adapter 启动时立即注册;如果第一次目录拉取会和你的网络抢跑(VPN/TUN 重连、DNS),插件会以较短节奏(约 1 分钟)重试,之后才进入周期性刷新。
- Sidecar 模式(mode: sidecar,旧版)—— 在 127.0.0.1:<random> 上拉起本地 Go 智能体(opencode2api 的单租户移植版),带 token 鉴权,并注册一条标准 llm-pi-ai 路由。不在已发布的包内;请从 legacy/agent 构建(go build ./cmd/agent),再把 agentPath 指向该二进制文件。
健康检查与故障排查
每轮刷新后,插件会写一份健康快照:
~/.opencode2dsh/adapter-status.json
json
{
"status": "ready",
"total": 64,
"exposed": 9,
"lastError": "",
"writtenAt": "2026-08-29T07:01:54.915Z"
}
| 现象 | 可能原因与修复 |
| 403 FreeTierError / "OpenCode's free tier can only be used from within OpenCode" | 上游限制了免费层客户端。插件会保留这条说明,而不是报成 API key 无效。请改用受支持的 OpenCode 客户端,或官方 API 服务。 |
| 启动界面显示 Failed to load plugins … list slot "plugins.item" requires options.id,或 IP 池条目没有配置页 | 你的 DSH 早于 0.1.7 的 Plugins 页面契约。请把 DSH 升级到 0.1.7(推荐最新版)。在 0.1.6 及更早版本上,该页面永远不会挂载(它受 configForms.whileServed 控制)—— 模型路由不受影响。 |
| 安装插件后 DSH 0.1.7/0.2 无法启动(pending … settingsScope) | 把插件升级到 0.3.5。在 DSH 0.2 上,请通过 Plugins 页面里已安装的 opencode2dsh 条目配置 IP 池。 |
| 只有 3 个模型 | 启动时的拉取和你的网络抢跑了;重试会在约 1 分钟内完成。查看 adapter-status.json 里的 lastError。 |
| lastError: "fetch failed" 持续存在 | 到 opencode.ai 的出站 HTTPS 被拦截;检查代理/VPN 规则。 |
| 聊天中出现限流错误(429 … Endpoint is unavailable) | 匿名通道按 IP 计配额,免费模型竞争激烈。自 #51 修复后,插件的服务商重试策略会静默扛过 429 突发(8 次重试,退避约 1s→20s,每步最坏约 90s),不再把它们抛出来;如果竞争仍然占上风,请降低推理强度、换一个竞争没那么激烈的 -free 模型,或在插件设置页启用 IP 池(多出口轮换)。 |
| 推理后达到输出上限,却没有答案 | 插件 0.3.6 会在模型支持时关闭思考重试一次。只要出现任何答案文本或工具调用事件,就不会重放。重试保留原始输出上限,仍可能失败;两次请求的用量都会计入。不支持关闭思考的模型(包括 Muse)需要手动改设置或换模型。 |
| Muse 报 REGION_BLOCKED /「This model is not available in your country」 | Zen 已拒绝当前网络区域使用该模型。插件 0.3.5 保留这条说明;旧版本把同一个 403 误标成 API key 无效。匿名通道不需要个人 key。请改用你所在区域可用的模型。 |
| 连接 127.0.0.1: 报错 | 残留的 sidecar 路由遮蔽了适配器;插件 ≥ 0.2.1 会在启动时清除它。 |
| 安装失败,报 ERR_PNPM_IGNORED_BUILDS | pi-ai 的传递依赖(@google/genai、protobufjs)带有构建脚本,但运行时并不需要。在插件市场里批准或拒绝它们,或者在配置档的 pnpm-workspace.yaml 中把 allowBuilds: 下的这两项都设为 false。 |
安全
- 不涉及密钥:匿名通道的 key 就是字面字符串 public;不存储任何东西,也不上报遥测。
- 安装路径仅限 lib/;不运行依赖中的构建脚本。
- 所有请求都从你的机器直接发往 opencode.ai / models.dev。
开发 sh
git clone https://github.com/FishBottle7/opencode2dsh.git
cd opencode2dsh/packages/plugin
pnpm install
pnpm typecheck && pnpm test
pnpm build # bundle to lib/
旧的 Go sidecar 位于 legacy/agent(go test ./...)。架构说明和移植记录在 docs/。
发布:在 packages/plugin 中执行 pnpm pack(prepack 会构建并同步文档)。
致谢
- opencode2api,作者 @jasonxu114514 —— legacy/agent 里的旧 Go sidecar 移植自它的匿名通道实现,目录回退链和请求伪装细节也源自它。
本项目站在它的肩膀上。
- OpenCode —— 提供免费匿名 Zen 通道。
- @earendil-works/pi-ai —— 适配器模式使用的通信层。
- DeepSeek Harness 和 dsh-market 社区。
友链
LinuxDo —— 新的理想型社区 / a new ideal community
许可证
MIT © FishBottle7预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
powell728/opencode2dsh
免密钥接入 OpenCode Zen 免费模型,开箱即聊
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1