前言¶
在 DeepSeek Harness(DSH)里接第三方模型,常见路径是自备 API Key、在配置里填凭证,再选 provider。若只是想试用或本地对话、又不想注册 OpenCode 账号,多一套密钥管理往往显得多余。
下面介绍社区插件 dsh-freetap(维护者 ddldxiacan):它向 DSH 注册原生 LlmAdapter,从 OpenCode Zen 的匿名免费通道流式拉取模型,在模型选择器里以 dsh-freetap 这一组出现,无需 API Key、无需额外注册或旁路进程。
这是什么¶
dsh-freetap 是 DSH 的 Cordis 插件,分类属于模型推理。一句话定位:在 DSH 内使用 OpenCode Zen 与 OpenCode CLI 相同的匿名免费模型车道,不依赖 API Key。
请求从本机发出时,在 User-Agent 与会话相关头字段上与 OpenCode CLI 对齐;模型目录通过「线上列表 ∩ 元数据判定为免费 → 离线缓存 → 静态校验列表」三级回退保持可用。插件以 npm 包形式安装,不启动子进程、不监听本地端口(历史 Go sidecar 仅留在仓库 legacy/,不在发布包内)。
核心功能¶
以下能力均来自项目 README 与清单说明,安装后默认即可使用,必要时可通过 profile 的 cordis.patch.yml 覆盖。
- 零凭证 — 匿名车道不需要 Key;安装、重启 DSH 后即可在模型选择器里选 dsh-freetap 分组下的模型。
- 原生适配器 — 单个 npm 包实现
LlmAdapter,无 sidecar、无二进制、无本地端口。 - 思考深度可选 — 支持推理的免费模型在 DSH 模型选择器中提供 effort 档位(元数据有阶梯则用声明值,否则 Off/Minimal/Low/Medium/High);仅 Responses 的
muse-spark-*仅暴露上游支持的档位,不选则走 provider 默认。 - 图片输入按元数据 — 在 models.dev 条目里
modalities.input含image的模型接受图片附件;仅text的会拒绝;元数据缺失时对已验证的视觉模型族做回退。 - 目录与自愈 — 定期刷新、快速启动重试,并写入健康快照(如
~/.dsh-freetap/adapter-status.json)便于排查。 - 错误归类 — 上游限流、鉴权、超时、传输失败等以 DSH 可识别的 finish reason surfaced,重试由 DSH 侧负责。
环境与依赖¶
- DSH(DeepSeek Harness)0.1.7 及以上,且使用 web profile。
- Node.js ≥ 20(若已能跑 DSH,一般已满足)。
- 出站 HTTPS 可达
opencode.ai与models.dev。
许可证为 MIT(见仓库与 npm 徽章)。插件在 当前 DSH 进程权限 下运行,安装前请自行审阅源码与许可证。
安装与启用¶
官方推荐从 预构建 release tarball 安装,无需本地编译:
dsh plugin --profile web add https://github.com/ddldxiacan/dsh-freetap/releases/download/v0.5.1/dsh-freetap-0.5.1.tgz
执行成功后 重启 DSH,在模型选择器中选择 dsh-freetap 分组下的模型即可。
若不用终端,可在 DSH Settings → Plugins → Install 中粘贴同一 tarball URL 完成安装。0.5.1 起依赖不再包含会触发 pnpm 拦截 install script 的包,一般不会出现「Install scripts need permission」;若仍出现,说明版本更旧,应升级或按界面允许脚本后重试。
其他安装方式(README 原文):
从 GitHub(仓库根目录即可安装包,构建产物在 packages/plugin/lib/):
dsh plugin --profile web add github:ddldxiacan/dsh-freetap
建议钉版本:
dsh plugin --profile web add github:ddldxiacan/dsh-freetap#v0.5.1
从 npm(包名 dsh-freetap):
dsh plugin --profile web add dsh-freetap
校验是否加载:重启 dsh web 后模型列表应出现 dsh-freetap;profile 的 package.json 里 dsh.profile.bundles 应包含 dsh-freetap,而不应只出现在 dependencies 却未注册为 bundle。
更新:若当初用带版本号的 release URL 安装,需改用新版本对应的 tarball URL 才会重新解析;releases/latest/download/... 无版本号的 URL 在 lockfile 已钉死后可能表现为无更新。git 安装可再次执行 add github:ddldxiacan/dsh-freetap;npm 可用 dsh plugin --profile web add dsh-freetap@latest。更新后重启 DSH,并对照 node_modules/dsh-freetap/package.json 与 ~/.dsh-freetap/adapter-status.json。
配置(可选)¶
默认无需改配置。需要覆盖时,在 profile 的 cordis.patch.yml 中写入插件项;name 须与安装包名一致:dsh-freetap。
- id: dsh-freetap
name: dsh-freetap
config:
mode: adapter # adapter(默认)| sidecar
providerId: dsh-freetap
refreshSeconds: 300
mode 默认 adapter 即上文所述原生适配器路径;refreshSeconds 控制目录刷新间隔(示例为 300 秒)。
典型用法¶
经过上面的安装与重启步骤,用法与选用其他 DSH provider 相同:
- 打开 DSH Web 界面,进入对话或 Agent 配置。
- 在模型选择器中找到 dsh-freetap 分组,挑选列表中的免费模型。
- 若模型支持 reasoning,按需选择思考深度(effort)。
- 若模型在 models.dev 中声明支持图片输入,可附带图片附件;仅文本模型请勿强行传图。
无需在环境变量或密钥面板中填写 OpenCode API Key。
适用场景与注意¶
适合:想在 DSH 里快速试用 OpenCode Zen 匿名免费模型、不想维护 API Key、希望模型列表与上游保持同步的开发者。
注意:
- 免费车道受上游策略与限流约束,稳定性与配额以 OpenCode Zen 为准,插件会把失败类型映射给 DSH,但不保证 SLA。
- 出站请求目标为 OpenCode 相关域名,企业网络需放行。
- 社区插件目录 SkillHub 上的 dsh-freetap 页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态奉行「一切皆插件」,选用前请自行评估信任边界。
链接¶
- 社区目录:https://www.skillhub.cn/plugins/ddldxiacan/dsh-freetap
- 源码与文档:https://github.com/ddldxiacan/dsh-freetap
dsh-freetap 把 OpenCode Zen 的匿名免费模型以原生 provider 形式接进 DSH:一条安装命令、重启、在 dsh-freetap 分组选模型即可开始对话,适合作为零密钥的模型推理补充通道。