dsh-freetap:在 DSH 里直连 OpenCode Zen 免费模型

前言

在 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 覆盖。

  1. 零凭证 — 匿名车道不需要 Key;安装、重启 DSH 后即可在模型选择器里选 dsh-freetap 分组下的模型。
  2. 原生适配器 — 单个 npm 包实现 LlmAdapter,无 sidecar、无二进制、无本地端口。
  3. 思考深度可选 — 支持推理的免费模型在 DSH 模型选择器中提供 effort 档位(元数据有阶梯则用声明值,否则 Off/Minimal/Low/Medium/High);仅 Responses 的 muse-spark-* 仅暴露上游支持的档位,不选则走 provider 默认。
  4. 图片输入按元数据 — 在 models.dev 条目里 modalities.input 含 image 的模型接受图片附件;仅 text 的会拒绝;元数据缺失时对已验证的视觉模型族做回退。
  5. 目录与自愈 — 定期刷新、快速启动重试,并写入健康快照(如 ~/.dsh-freetap/adapter-status.json)便于排查。
  6. 错误归类 — 上游限流、鉴权、超时、传输失败等以 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 相同:

  1. 打开 DSH Web 界面,进入对话或 Agent 配置。
  2. 在模型选择器中找到 dsh-freetap 分组,挑选列表中的免费模型。
  3. 若模型支持 reasoning,按需选择思考深度(effort)。
  4. 若模型在 models.dev 中声明支持图片输入,可附带图片附件;仅文本模型请勿强行传图。

无需在环境变量或密钥面板中填写 OpenCode API Key。

适用场景与注意

适合:想在 DSH 里快速试用 OpenCode Zen 匿名免费模型、不想维护 API Key、希望模型列表与上游保持同步的开发者。

注意:

  • 免费车道受上游策略与限流约束,稳定性与配额以 OpenCode Zen 为准,插件会把失败类型映射给 DSH,但不保证 SLA。
  • 出站请求目标为 OpenCode 相关域名,企业网络需放行。
  • 社区插件目录 SkillHub 上的 dsh-freetap 页 与 GitHub 仓库由社区维护,与 DeepSeek / 幻方无官方从属关系;DSH 生态奉行「一切皆插件」,选用前请自行评估信任边界。

链接

dsh-freetap 把 OpenCode Zen 的匿名免费模型以原生 provider 形式接进 DSH:一条安装命令、重启、在 dsh-freetap 分组选模型即可开始对话,适合作为零密钥的模型推理补充通道。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye