🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

OpenCode 免费模型桥 go-enols/dsh-plugin-opencode-free

DeepSeek Harness
go-enols8 天前有提交已提供中文文档扫描:无法判定

在 DSH 里免账号免密钥调用 OpenCode 免费模型

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add go-enols/dsh-plugin-opencode-free
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · model
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/29) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 取源不可用(Error: github tarball HTTP 404 @ https:
  • · api.github.com
  • · repos
  • · go-enols
  • · dsh-plugin-opencode-free
  • · tarball)
扫描于 2026/10/31(1 天前)

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

在 DeepSeek Harness(DSH)里通过原生 dsh-llm 适配器使用 OpenCode Zen 的匿名免费模型。

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-opencode-free 在 DeepSeek Harness(DSH)里,通过原生 dsh-llm 适配器使用 OpenCode Zen 的匿名免费模型——就是 OpenCode 命令行不用账号、不用 API key 也能走的那条免费通道。 已安装的 OpenCode 命令行不会被修改或替换。插件复刻它请求的报文形态: - POST https://opencode.ai/inference/openai/v1/chat/completions,带 Authorization: Bearer public - 在 x-opencode-session / x-opencode-session-id 里放规范的 ses_ 会话 id, - user-agent: opencode/1.19.3(能正常工作的全局命令行所发的那个推理 UA,一字不差), - x-opencode-request、x-opencode-client: cli、x-opencode-project: global, - 流式请求体,带一份智能体形态的工具列表(bash + read)。
展开完整文档(README 剩余 1 节)
dsh-plugin-opencode-free

在 DeepSeek Harness(DSH)里,通过原生 dsh-llm 适配器使用 OpenCode Zen 的匿名免费模型——就是 OpenCode 命令行不用账号、不用 API key 也能走的那条免费通道。

已安装的 OpenCode 命令行不会被修改或替换。插件复刻它请求的报文形态:

- POST https://opencode.ai/inference/openai/v1/chat/completions,带 Authorization: Bearer public
- 在 x-opencode-session / x-opencode-session-id 里放规范的 ses_ 会话 id,
- user-agent: opencode/1.19.3(能正常工作的全局命令行所发的那个推理 UA,一字不差),
- x-opencode-request、x-opencode-client: cli、x-opencode-project: global,
- 流式请求体,带一份智能体形态的工具列表(bash + read)。

请求不带这套形态,Zen 就会拒绝,报 403 FreeTierError: OpenCode's free tier can only be used from within OpenCode,哪怕你发的是真 API key 也一样。这个插件就是缺的那座桥。

安装

纯宿主 bundle,无运行时依赖。

从本地检出安装(指向本目录的绝对路径):

plugin_manager · install_bundle · target: <absolute path to this directory>

或直接从 GitHub 安装(pnpm 风格 spec,DSH 处理任何 github: 依赖都用这种写法):

plugin_manager · install_bundle · target: github:go-enols/dsh-plugin-opencode-free

或用 DSH 命令行:

dsh plugin --profile <profile> add github:go-enols/dsh-plugin-opencode-free

如果模型选择器没刷新,重启 DSH,然后在模型选择器里选服务商 opencode-free,再挑一个 *-free 模型(例如 deepseek-v4.1-flash-free)。

配置

bundle 补丁会插入一行;在配置档的 cordis.patch.yml 里覆盖它:

- id: opencode-free
name: 'dsh-plugin-opencode-free'
config:
providerId: opencode-free # provider route shown in the model picker
baseURL: https://opencode.ai/inference
refreshSeconds: 600 # live catalog refresh cadence
userAgent: 'opencode/1.19.3'
modelIds: ['deepseek-v4.1-flash-free', 'big-pickle']

插件自带一份免费模型快照(models.dev 成本 = 0),再与实时的 /v1/models 目录取交集,所以下架的模型会自动消失。前四条已实测可用。

工作原理

index.js 通过 ctx.llm.registerAdapter 注册一个结构化的 LlmAdapter:

- providerInfo、providerRetryPolicy、imageRequestPricing、listModels、 resolveModel、prepareCall、stream
- lib/ids.js —— 规范的 ses_ id(时间戳按位取反 + Base62 尾段)、伪装成命令行的请求头、命令行 UA
- lib/wire.js —— OpenAI 兼容 SSE ↔ DSH StreamChunk 互转、免费通道闸门工具注入、注入工具调用的改写(bash → 调用方的 pwsh)
- lib/catalog.js —— 静态免费快照 ∩ 实时 /v1/models
- lib/reasoning.js —— 按模型区分的思考档位,以及 reasoning_content 回显规则
- lib/tokens.js —— 提示词 token 估算,按线上通道实测校准

适配器保留智能体真实的工具列表,只补上缺失的网关工具。请求完全不带工具时(标题、摘要调用),它会加上 bash + read,并发送 tool_choice: "none",让模型用纯文本作答。

思考等级

支持推理的免费模型会在 DSH 模型选择器里显示思考等级选择器。等级取自 models.dev 为每个模型声明的值(OpenCode 命令行构建自己的选择器时用的也是这份元数据),经 LlmResolvedModelInfo.reasoning 传给 DSH:

| 模型 | 公布的等级 |
| deepseek-v4.1-flash-free、glm-5.3-flash-free | low、high、max |
| minimax-m3.1-flash-free | low、medium、high、xhigh、max |
| nemotron-3.5-super-vl-free | off、minimal、low、medium、high、xhigh |
| 未声明等级阶梯的模型(big-pickle、mimo-v2.6-flash-free、……) | minimal、low、medium、high、xhigh、max |

选中的等级以 reasoning_effort 发送。off 按线上拼写发成 none;网关会拒绝的 id 直接丢弃,免得冒硬 400 的风险。不公布 defaultEffort,所以用户选等级之前,上游默认值一直生效。只有 models.dev 声明了 none 的地方才提供 off —— MiniMax 免费模型直接拒绝它(requires adaptive thinking)。

声明了 interleaved: reasoning_content 的模型,还会把之前的思考回传:任何带工具调用的 assistant 消息都附带 reasoning_content 字段。思考一开,这个字段就是必填项,缺了它上游会回 400 invalid_request_error: The reasoning_content in the thinking mode must be passed back to the API。
harness 手里没有推理文本时(轮次被压缩过),发空字符串,上游接受。

上下文窗口

免费通道对每个请求卡两道限制:提示词必须装进模型的输入上限,提示词 + max_tokens 必须装进总窗口。因此适配器公布 models.dev 给出的 min(context, input + output)(比如 big-pickle 在 200k 窗口里声明 160k 输入上限,于是公布 192k),并在本地守住每次调用:

- 提示词用线上校准过的比例估算(CJK ≈ 1 token/字符,英文 ≈ 1/4.7,JSON/代码 ≈ 1/2.35 —— 都对着通道实测过);留不出 1024 token 余量时,适配器报 CONTEXT_WINDOW_EXCEEDED,请求根本不发。DSH 的压缩逻辑看到这个错误码就压缩并重试该步骤,于是超出模型容量的对话能自行恢复,既不浪费一次往返,也不会在上游报错、把错误写进对话记录。
- 公布的输出上限就是声明值,但不超过窗口的一半:DSH 的压缩逻辑会先按完整上限预留,再算消息预算,所以声明 output == context 的模型(nemotron-3.5-lightning-free)会否则就把预算留成零,自动压缩会静默失效。
- 当提示词放得下、但 max_tokens 会撑爆窗口时,输出预算会被压到剩余空间,而不是让这一轮失败。

因此,从大窗口模型(比如 1M token 的路由)切到 200k 的免费模型时,如果历史已经超过 200k token,代价是一次压缩,而不是一轮失败。

验证

node tests/selftest.mjs 会用假的 Cordis 上下文,让适配器跑真实的免费通道,并断言以下各项:流式回复、gate 头部与会话结构、思考级别元数据与线上映射、reasoning_content 回显、上下文窗口守卫与输出钳制、一次真实的 reasoning_effort: max 工具调用往返,以及上游报告为不可用的模型所对应的错误映射。

注意事项

- 这里用的是 OpenCode Zen 的匿名通道。它按出口 IP 限流,资源竞争激烈,部分模型还有地区封锁;429 和 400 Model is unavailable 是上游的实际情况,不是插件 bug。
- 该通道不是官方第三方 API。使用伪装的命令行形态可能违反 OpenCode 的服务条款;请自行斟酌。
- 免费模型 id 会变。随包附带的快照加上实时 /v1/models 刷新能让列表保持最新,但模型仍可能在调用时被下架或地区封锁。
预览分享卡片长什么样 ↓go-enols/dsh-plugin-opencode-free
分享 · DeepSeek Harness Hub
go-enols/dsh-plugin-opencode-free

在 DSH 里免账号免密钥调用 OpenCode 免费模型

回到顶部