Repository navigation
Releases
v0.1.1 — corrected latency analysis
Registers the ChatGPT models available to the local Codex desktop app as a first-class DeepSeek Harness LLM provider, so those models appear in the model picker and can be assigned to subagents. Reuses the desktop app's own ChatGPT sign-in — no API key.
Also adds three read-only tools for reading conversations the desktop app already has: codex_desktop_sessions, codex_threads_list, and codex_thread_read.
Corrected in this release
v0.1.0 claimed the first turn cost 115 seconds because Codex's WebSocket prewarm never completed and Codex waited out its full retry budget. That was wrong, and this release corrects it in the bundled README and in docs/PERFORMANCE.md.
Re-measuring the same private CODEX_HOME, with the same empty config.toml and WebSocket still allowed:
| Measurement | First turn, turn/start → first token |
|---|---|
| The slow window (21:37) | 115821 ms |
| Same home, after the fault cleared (22:29) | 6616 ms |
| Fresh home, same period | 6864 ms |
| HTTPS only, same period | 8138 ms |
With a healthy network the two transports are indistinguishable. The 116-second window was a transient network-path fault that landed on the WebSocket handshake — not a property of Codex or of this plugin.
What still holds, and is the only part now claimed as fact:
- all of the 115.8 s sat between sending
turn/startand receiving the first token; codex.exewrote nothing to stderr during it, so it read as a hang rather than as slowness;- the fallback latches per session (upstream
force_http_fallback), which is where the "first turn slow, then 3–5 s" shape comes from.
supports_websockets = false is therefore described as what it is: a way to skip the retry ladder when the WebSocket path is unhealthy, not a root-cause fix. It is kept because it costs nothing in the healthy case and helped inside the fault window, but that claim rests on timing correlation alone — the fault did not recur, so no controlled A/B was possible.
Install
pnpm dsh plugin --profile web add "https://github.com/HuaimaoCy/dsh-codex-chatgpt/releases/latest/download/plugin.tgz"Then restart dsh web: host-side plugin code does not hot-reload.
Requirements
- Windows, with the Codex desktop app installed and signed in to ChatGPT
- DeepSeek Harness with the plugin-manager
- Node >= 22.5.0
Verification
- 45 unit cases (
node --test) - 10 live checks against a real
codex.exeand the real ChatGPT session (tools/live-e2e.mjs)
Known limits
- DSH tool schemas are not forwarded to Codex: it runs its own agent loop and toolset inside the app-server.
- Reasoning is not streamed; the protocol emits no reasoning-item notifications for these models.
- Text only. Image attachments become an
[image omitted]placeholder. - The provider is configured
approvalPolicy: neverwithsandbox: read-only, because no UI exists to answer an approval prompt.
v0.1.0 — ChatGPT models in DSH, without the 115-second first turn
Correction (see v0.1.1). The explanation of the 116-second first turn below is wrong. It was not Codex's WebSocket prewarm failing; re-measuring the same home with WebSocket still allowed gives 6616 ms to the first token. See https://github.com/HuaimaoCy/dsh-codex-chatgpt/blob/main/docs/PERFORMANCE.md and the v0.1.1 release.
Registers the ChatGPT models available to the local Codex desktop app as a first-class DeepSeek Harness LLM provider, so those models appear in the model picker and can be assigned to subagents. Reuses the desktop app's own ChatGPT sign-in - no API key.
Also adds three read-only tools for reading conversations the desktop app already has: codex_desktop_sessions, codex_threads_list, and codex_thread_read.
Install
pnpm dsh plugin --profile web add "https://github.com/HuaimaoCy/dsh-codex-chatgpt/releases/latest/download/plugin.tgz"Then restart dsh web: host-side plugin code does not hot-reload.
Requirements
- Windows, with the Codex desktop app installed and signed in to ChatGPT
- DeepSeek Harness with the plugin-manager
- Node >= 22.5.0
Verification
- 45 unit cases (
node --test) - 10 live checks against a real
codex.exeand the real ChatGPT session (tools/live-e2e.mjs)
Known limits
- DSH tool schemas are not forwarded to Codex: it runs its own agent loop and toolset inside the app-server.
- Reasoning is not streamed; the protocol emits no reasoning-item notifications for these models.
- Text only. Image attachments become an
[image omitted]placeholder. - The provider is configured
approvalPolicy: neverwithsandbox: read-only, because no UI exists to answer an approval prompt.