前言¶
在 DeepSeek Harness(DSH)里做智能体开发时,一个具体需求是:让 DSH 会话调用本机已经登录的 Codex,同时不希望在 DSH 中额外配置 OpenAI API Key,还要保留 DSH 自己的会话、插件和工具管理。下面介绍 codex-plugin-dsh,它是 Codex App Server model provider plugin for DeepSeek Harness。
这是什么¶
codex-plugin-dsh 由 wingoo 维护,许可证为 MIT,package.json 中 version 为 0.1.0。它把本机已登录的 Codex 作为本地模型 provider 接入 DSH。
安装并重启后,DSH 的现有模型选择器中会出现 Codex App Server (local)。会话和工具调用仍由 DSH 管理,现有 DSH 插件与工具可继续使用。插件支持图片输入,也支持将 Codex 原生图片生成结果回写到 DSH 对话。插件不读取或保存 API Key,无需在 DSH 中配置 OpenAI API Key。
核心功能¶
- 在 DSH 中使用本机已登录的 Codex 作为本地模型 provider。
- 安装并重启后,在现有模型选择器中出现
Codex App Server (local)。 - 会话和工具调用仍由 DSH 管理,现有 DSH 插件与工具可继续使用。
- 支持图片输入。
- 支持将 Codex 原生图片生成结果回写到 DSH 对话。
- 插件不读取或保存 API Key。
- 无需在 DSH 中配置 OpenAI API Key。
运行边界¶
使用这个插件前,先确认它的安全边界:
- App Server 固定使用只读 sandbox 和
neverapproval。 - Codex 自带 shell、文件修改、Web、MCP、Apps、Plugins、view-image 和 multi-agent 能力会被关闭或拒绝。
- 这些动作只能走 DSH 工具生态。
- Codex 原生 imagegen 为例外,由 App Server 直接完成,不进入 DSH 工具循环。
还有以下已知限制:
- 尚未实现 DSH 交互问题桥接,App Server 的
item/tool/requestUserInput会明确失败。 - 其他 provider 产生的 reasoning block 或 assistant 图片无法导入 App Server。
- 工具目录变化重建 thread 时,已有 Codex reasoning 或 assistant 图片也无法无损导入。
- App Server 无法兑现的配置字段
temperature、maxTokens、stop会被拒绝。
环境要求¶
先确认本机满足以下条件:
Node.js ^22.19.0 或 >=24
DeepSeek Harness >=0.1.0-rc.5 <0.2.0
本地 Codex CLI >=0.147.0
已通过 codex login 登录的 Codex 账户
如果本机还没有可用的 Codex CLI,先安装并登录:
npm install -g @openai/codex
codex login
再确认 Codex CLI 和 App Server 可用:
codex --version
codex app-server --help
安装¶
下面使用 DSH 的 web profile。
安装 GitHub 仓库:
dsh plugin --profile web add github:wingoo/codex-plugin-dsh
也可以使用 pnpm 执行安装:
pnpm dsh plugin --profile web add github:wingoo/codex-plugin-dsh
如果需要锁定 commit,可以指定 <commit-sha>:
dsh plugin --profile web add github:wingoo/codex-plugin-dsh#<commit-sha>
如果需要安装本地 checkout:
dsh plugin --profile web add /absolute/path/to/codex-plugin-dsh
本地 checkout 也可以用 pnpm 安装:
pnpm dsh plugin --profile web add /absolute/path/to/codex-plugin-dsh
安装会修改 DSH profile,并在宿主机上运行插件代码。插件会作为 DSH 插件在当前 DSH 运行环境中加载并执行,因此安装前应检查仓库来源、源码和 MIT 许可证。
安装后启用¶
安装完成后,按下面步骤启用:
1、沿用原启动方式重启 DSH Web 服务。
2、重启后刷新浏览器。
3、在现有模型选择器中选择 Codex App Server (local)。
4、发送第一条消息前,可先切换到 Codex。
更新插件¶
已安装后,可以更新当前 web profile 中的插件:
dsh plugin --profile web update codex-plugin-dsh
也可以通过 npx 更新:
npx --yes @deepseek-ai/dsh plugin --profile web update codex-plugin-dsh
也可以使用 pnpm 更新:
pnpm dsh plugin --profile web update codex-plugin-dsh
更新完成后必须重启原有 DSH Web 服务;正在运行的进程不会自动加载磁盘上的新插件代码。
配置¶
profile 可以在自己的 cordis.patch.yml 中覆盖 id 为 codex-app-server-provider 的插件配置:
- id: codex-app-server-provider
如果覆盖 env,注意它是显式子进程环境覆盖。不要把凭证写进已提交的 profile。
当前验证与平台说明¶
当前已在 macOS 上使用 DeepSeek Harness 0.1.0-rc.5 源码包、0.1.0-rc.6 发布包和 Codex CLI 0.147.0 完成验证。
Windows 批处理 shim 启动已有单元测试,但首个版本发布前仍需在真实 Windows 主机上运行一次。
结尾¶
codex-plugin-dsh 的价值在于把本机已登录 Codex 以本地 provider 的方式接入 DSH,同时保留 DSH 的会话、插件和工具管理。使用前重点确认仓库来源、许可证、环境版本,以及 App Server 的 sandbox 和 approval 边界。
仓库地址:
https://github.com/wingoo/codex-plugin-dsh