Introduction¶
When developing agents in DeepSeek Harness (DSH), a specific requirement arises: enabling DSH sessions to invoke the locally logged-in Codex, without needing to configure an additional OpenAI API Key in DSH, while preserving DSH’s own session, plugin, and tool management. This article introduces codex-plugin-dsh, a Codex App Server model provider plugin for DeepSeek Harness.
What This Is¶
codex-plugin-dsh is maintained by wingoo, licensed under MIT, with a version of 0.1.0 in its package.json. It integrates the locally logged-in Codex as a local model provider into DSH.
After installation and restarting, a Codex App Server (local) option will appear in DSH’s existing model selector. Sessions and tool calls remain managed by DSH, and existing DSH plugins and tools can continue to be used. The plugin supports image input and can also write native Codex image generation results back to the DSH conversation. It does not read or save API Keys, eliminating the need to configure an OpenAI API Key in DSH.
Core Features¶
- Use the locally logged-in Codex as a local model provider within DSH.
- After installation and restart,
Codex App Server (local)appears in the existing model selector. - Sessions and tool calls remain managed by DSH, allowing existing DSH plugins and tools to continue functioning.
- Supports image input.
- Supports writing native Codex image generation results back to the DSH conversation.
- The plugin does not read or save API Keys.
- No need to configure an OpenAI API Key in DSH.
Operational Boundaries¶
Before using this plugin, verify its security boundaries:
- The App Server uses a read-only sandbox and
neverapproval by default. - Native capabilities of Codex, such as shell, file modification, Web, MCP, Apps, Plugins, view-image, and multi-agent, are disabled or rejected.
- These actions must go through the DSH tool ecosystem.
- Codex’s native image generation is an exception, handled directly by the App Server without entering the DSH tool loop.
Known limitations include:
- DSH interaction issue bridging is not yet implemented; the App Server’s
item/tool/requestUserInputwill explicitly fail. - Reasoning blocks or assistant images generated by other providers cannot be imported into the App Server.
- When the tool directory changes and threads are rebuilt, existing Codex reasoning or assistant images cannot be imported losslessly.
- Configuration fields that the App Server cannot fulfill, such as
temperature,maxTokens, andstop, will be rejected.
Environment Requirements¶
First, ensure your local environment meets the following conditions:
Node.js ^22.19.0 or >=24
DeepSeek Harness >=0.1.0-rc.5 <0.2.0
Local Codex CLI >=0.147.0
Codex account logged in via codex login
If you do not have a usable Codex CLI locally, install and log in first:
npm install -g @openai/codex
codex login
Then verify the Codex CLI and App Server are available:
codex --version
codex app-server --help
Installation¶
The following uses DSH’s web profile.
Install from the GitHub repository:
dsh plugin --profile web add github:wingoo/codex-plugin-dsh
Alternatively, use pnpm for installation:
pnpm dsh plugin --profile web add github:wingoo/codex-plugin-dsh
To lock a specific commit, specify <commit-sha>:
dsh plugin --profile web add github:wingoo/codex-plugin-dsh#<commit-sha>
To install from a local checkout:
dsh plugin --profile web add /absolute/path/to/codex-plugin-dsh
Local checkouts can also be installed using pnpm:
pnpm dsh plugin --profile web add /absolute/path/to/codex-plugin-dsh
The installation modifies the DSH profile and runs the plugin code on the host machine. The plugin will be loaded and executed within the current DSH runtime environment as a DSH plugin. Therefore, before installation, you should verify the repository source, source code, and MIT license.
Post-Installation Activation¶
After installation, enable the plugin by following these steps:
- Restart the DSH Web service using the original startup method.
- Refresh the browser after restarting.
- Select
Codex App Server (local)in the existing model selector. - Before sending the first message, switch to Codex if desired.
Updating the Plugin¶
Once installed, update the plugin in the current web profile:
dsh plugin --profile web update codex-plugin-dsh
You can also update using npx:
npx --yes @deepseek-ai/dsh plugin --profile web update codex-plugin-dsh
Or using pnpm:
pnpm dsh plugin --profile web update codex-plugin-dsh
After updating, you must restart the original DSH Web service; the running process will not automatically load new plugin code from disk.
Configuration¶
The profile can override the plugin configuration with id set to codex-app-server-provider in its own cordis.patch.yml:
- id: codex-app-server-provider
If overriding env, note that it is an explicit subprocess environment override. Do not write credentials into committed profiles.
Current Verification and Platform Notes¶
Verification has been completed on macOS using DeepSeek Harness 0.1.0-rc.5 source package, 0.1.0-rc.6 release package, and Codex CLI 0.147.0.
Windows batch shim startup has unit tests, but the first release version still needs to run on a real Windows host before publication.
Conclusion¶
The value of codex-plugin-dsh lies in integrating the locally logged-in Codex into DSH as a local provider while preserving DSH’s session, plugin, and tool management. Before use, verify the repository source, license, environment versions, and the App Server’s sandbox and approval boundaries.
Repository address:
https://github.com/wingoo/codex-plugin-dsh