DeepSeek Harness — OpenAI Codex Plugin
Use your ChatGPT Plus/Pro subscription as an LLM provider in the DeepSeek Harness.
This plugin adds device-code OAuth login through both the Web settings UI
and /codex CLI command — no browser callback server or localhost listener.
After login, Codex models appear alongside your other providers in the DSH
model selector, the access token refreshes automatically without a restart,
and a Codex limits popup above Settings shows the 5-hour and weekly balance.
How it works
- In the Web app, open Settings → OpenAI Codex → Sign in. The page opens
OpenAI, shows the one-time code, and updates automatically after approval.
Headless/TUI users can run
/codex loginfor the same device-code flow. - The plugin stores the token triple
{access, refresh, expires}in$DSH_HOME/openai-codex.jsonand publishes only the liveaccesstoken to the DSH credential seam underOPENAI_CODEX_TOKEN. - Your
settings.yamlmaps that credential to theopenai-codexroute, anddsh-llm-pi-aiuses the built-inopenai-codex-responsesAPI to serve all Codex models. - The plugin refreshes the token automatically ~5 minutes before expiry.
- In Web, Codex limits calls OpenAI from the server and returns only normalized usage percentages, reset times, and optional credit balances; OAuth tokens never cross into the browser.
The limits view uses OpenAI's undocumented Codex usage endpoint, so its response shape may change without notice.
Install
# Add the plugin to your profile (web, tui, headless, …)
dsh plugin --profile web add @syncended/dsh-codex
# Restart dsh
Note: the profile is a pnpm workspace root, so on some
dshversions theaddcommand needs-w:dsh plugin --profile web add -w @syncended/dsh-codex.
The plugin registers the openai-codex route defaults automatically, so no
dsh settings set is needed. In Web, use Settings → OpenAI Codex. The
/codex login | status | logout commands remain available in every profile.
Like DSH's other credential settings, Web login is restricted to a loopback
Web session. For a remote deployment, run /codex login on the host-facing
profile instead.
Commands
| Command | Description |
|---|---|
/codex login |
Start device-code OAuth login |
/codex status |
Show token status and expiry |
/codex logout |
Clear the stored token |
Configuration
The plugin accepts these optional config values (rarely needed):
| Key | Default | Description |
|---|---|---|
clientId |
app_EMoamEEZ…hrann |
OpenAI OAuth client id |
credentialRef |
OPENAI_CODEX_TOKEN |
Credential seam ref |
deviceCodeTimeoutSeconds |
900 (15 min) |
How long the user has to approve |
refreshWindowMs |
300_000 (5 min) |
Refresh this far before expiry |
tokenFile |
$DSH_HOME/openai-codex.json |
Override token persistence path |
Requirements
- ChatGPT Plus or Pro subscription
- DeepSeek Harness ≥ 0.1.0-rc.6
- Node.js ≥ 18
License
MIT — see LICENSE.
No comments yet. Be the first to write one.