免密钥接入 OpenCode Zen 免费模型,装好即开聊
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add carl57859/opencode2dsh该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/10/21) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0⚪ 扫描:无法判定尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。
- · 取源不可用(Error: github tarball HTTP 404 @ https:
- · api.github.com
- · repos
- · carl57859
- · opencode2dsh
- · tarball)
扫描于 2026/11/1(0 天前)
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
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 条目在 modalities.input 里列出 image,就接受图片附件;只声明 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:
- 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 小时刷新一次。 |
| allowedModels | [] | 模型白名单,仅 adapter 模式生效——旧 sidecar 会忽略它(插件 0.3.14+,issue #83):DSH 可以展示和调用的精确模型 id。留空则暴露所有符合条件的免费通道模型。只能收窄——付费/弃用/黑名单/探测规则仍然优先,直接调用不在白名单里的 id 会在任何网络请求之前快速失败,并抛出带标记的错误。 |
| 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。 |
本地 OpenCode 委托(插件 0.3.x,docs/delegation.md,参考 #76)——针对持续出现的 403 FreeTierError 凭证拦截,提供可选回退。默认关闭;不开启的话,匿名路径保持不变:
delegation:
enabled: true # arm the delegate (default false)
opencodePath: '' # explicit binary; else managed -> global -> npm
minVersion: '1.18.0' # candidates below this are skipped
memLimit: '96MiB' # GOMEMLIMIT for the child
gcPercent: 30 # GOGC for the child
trimIntervalMs: 60000 # Windows EmptyWorkingSet tick; 0 disables
startTimeoutMs: 60000 # health-wait budget
启用后,插件会托管你的 opencode 凭据(只托管 opencode 这一项,以 0600 权限写入隔离的 XDG 根目录,绝不写日志),并在匿名通道和它的同级重试都因凭据校验被拒时——且仅在这种情况下——启动一个受管理的本地 opencode serve。启用前请先读 docs/delegation.md §2。
工作原理
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
- 会话关联 —— session/project id 由对话的第一条用户消息经 SHA-256 派生(同一对话内稳定,不可逆),每个请求另取一个全新随机 id,与命令行行为一致。
- 目录回退链 —— S1:实时 GET /v1/models;S2:由 models.dev 的价格元数据判定「免费」;S3:编译期校验过的静态列表。磁盘缓存(TTL 约 7 天)兜住上游故障。
- 容错 —— 适配器在启动时立即注册;如果首次拉取目录时撞上网络波动(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
{
"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 服务。如果拒绝是持续性的(直连和同级重试都 403,而你的请求形态/IP 都没问题),issue #76 的可选本地委托会通过你自己的 opencode 登录跑这一轮——读完其中的安全说明后再启用 delegation.enabled。 |
| 启动画面显示 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。
- 本地 OpenCode 委派(docs/delegation.md,ref #76)需主动开启,默认关闭。开启后,插件会托管你的 opencode 凭据——只托管 opencode 这一项,以 0600 权限写入隔离的 XDG 根目录,绝不写日志,除了发给本地子进程之外不发送到任何地方——并通过受管的本地 opencode serve 代理。如果上游认为这属于异常使用,后果由你的账号承担。在你的机器上执行工具已被多层拦截(先询问再拒绝 + 响应扫描 + 隔离环境);详见文档。
开发
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
carl57859/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