Use ChatGPT and Codex subscriptions in DeepSeek Harness with OAuth, quota runway forecast, safe resets, web search, image generation, and Fast mode.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-codex-subscription-en
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:imMamdouhaboammar/dsh-codex-subscription
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
DSH Codex Subscription
Use your ChatGPT / Codex subscription directly in DeepSeek Harness
Authored by Mamdouh Aboammar
No OpenAI API key or Codex CLI. Models, search, quota, and image generation stay inside DSH.
Three-step start · Install · Contribute · Update and uninstall
Three-step start
Install the plugin. Run the standard DSH bundle command:
dsh plugin --profile web add dsh-codex-subscription-enSign in. Restart DSH yourself, open Settings -> Codex, and choose browser sign-in. No Codex CLI and no pasted token are required.
Use Codex. Select a Codex model. Quota, subscription search, image generation, and Fast mode remain inside DSH.
DSH-Portable exposes the same standard plugin command, so the command above also applies there. See below for the complete official npm, update, and uninstall routes.
Why this plugin
| Capability | What you get |
|---|---|
| Subscription models | Sign in to ChatGPT and use Codex without an OpenAI API key or Codex CLI |
| Recoverable and diagnosable | Sign-in state reconciles automatically; failed reads can be retried in place, while timeouts and stale account responses cannot overwrite current state; Settings can create a support report without credentials or account identifiers |
| Visible quota | Keep backend-provided standard Codex, Spark, and other limits separate |
| Composer quota | Choose a compact percentage, progress bar, or no inline quota display |
| Safe quota reset | See each reset credit separately and deliberately try one with a cooldown and acknowledgement |
| Subscription search | Explicitly route search globally through DSH default search or the signed-in Codex subscription |
| Codex image generation and editing (Beta) | Generate without references, or explicitly edit one selected image; preview, zoom, annotate regions, download the original, and get the original host path for new or edited images |
| Fast mode | Switch between Standard and Fast directly in the composer |
| Model-aware context | Keep catalog defaults, use each model's supported extended window, or enter a full numeric token limit for each model; Settings refreshes the model directory on open, account changes, and connection resets without overwriting an unsaved draft |
| Headless runs | Use the same signed-in Codex provider for one-shot DSH tasks that print their answer and exit |
These capabilities reuse the same local ChatGPT sign-in. Subscription routing failures stay visible and never silently switch to another paid route.
Product screen
The screenshot illustrates the settings layout; available options can vary by DSH and plugin version.
Prepare DSH
This plugin supports the latest DeepSeek Harness release recorded in its package metadata and requires a ChatGPT account that currently has Codex access.
- Do not want to configure Node.js? Use DSH-Portable, a community portable desktop distribution for Windows, macOS, and Linux.
- Prefer the official route? Follow the DeepSeek Harness run guide.
Install
Standard DSH command
dsh plugin --profile web add dsh-codex-subscription
DSH owns target selection, profile locking, dependency resolution, and bundle activation; this is the plugin's only installation path.
Headless
After signing in and selecting a Codex model in Web once, install the same plugin in DSH's standard Headless profile:
dsh plugin --profile headless add dsh-codex-subscription
dsh --profile headless "Reply with only the word: ok"
The official npx @deepseek-ai/dsh web command does not create a global dsh command. Keep the full npx prefix when installing the plugin:
npx -y @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web add dsh-codex-subscription
npx -y @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web list dsh-codex-subscription --depth 0
npx -y @deepseek-ai/dsh@0.1.2-rc.1 --profile web --dump-config
dsh plugin --profile web add dsh-codex-subscription
dsh plugin --profile web list dsh-codex-subscription --depth 0
dsh --profile web --dump-config
The plugin list should contain one dsh-codex-subscription, and the config should contain one codex-subscription entry.
Restart DSH manually after installation, then:
- Open Settings -> Codex.
- Sign in with a ChatGPT account that has Codex access.
- Choose a search source.
- Select a Codex model.
Features
- ChatGPT OAuth sign-in with credentials kept on the host; accounts are identified by a privacy-masked email that can be clicked to reveal, and can be manually added, switched, or removed without automatic rotation or quota pooling;
- Codex models and Beta image generation/editing directly inside DSH conversations;
- A clear global choice between DSH default search and Codex subscription search; it applies to every model and session rather than following the selected model;
- Actual backend-provided quota, reset time, and freshness;
- Separate standard Codex, Codex-Spark, Credits, and other independent limits;
- One row per available quota reset with its disclosed name and expiry, plus deliberate early redemption, layered confirmation, and no automatic retry;
- Optional percentage, progress bar, or Beta runway estimate for the selected Codex model (off by default);
- Standard or Fast mode for supported Codex models directly in the composer;
- Standard, Extended, and per-model Custom context windows; Custom accepts a full numeric token count, stays within each audited model capacity, and feeds DSH's native agent compaction policy;
- A copyable support report and direct feedback link in Settings; the report includes bounded request stages, HTTP/transport classes, elapsed ranges, and route source types while excluding OAuth credentials, account identifiers, proxy addresses, and authorization timestamps;
- Visible errors when subscription routing is unavailable, with no silent paid fallback.
The plugin can follow an existing HTTPS proxy from the process environment or operating-system proxy settings for official OpenAI and ChatGPT requests. It does not provide a proxy, relay, node list, or system-proxy configuration.
GPT-6 Astra context
When the official model catalog exposes GPT-6 Astra, Standard preserves the catalog window, Extended uses 872000 tokens, and Custom accepts 128000–872000 tokens (initially 272000). This limit follows the official Codex model catalog, not the API model's total context capacity. These settings only adjust DSH's local context budget; they do not grant model access or guarantee an account's server-side capacity. Actual availability remains subject to the service.
Composer quota
Choose Off, Percent, Progress bar, or Beta Runway in Settings. The compact display appears only for a selected Codex model. Runway is opt-in and estimates pace only from official remaining-percentage observations. It needs at least three samples; sustained high use usually produces a range in 5–10 minutes, while low use takes longer or reports a stable state. Non-sensitive observations from the last 24 hours are kept locally so calibration can continue after restart; a quota reset, account switch, or disabling the feature starts a new calibration period. The composer shows each returned quota window with its duration. When Plus returns both five-hour and weekly limits, both are visible. Spark keeps its independent quota. Accounts with only a weekly window still show only that window; the plugin does not invent a five-hour limit, Credits, or spending caps that the service did not return.
Safe quota reset
If ChatGPT reports available quota resets, Settings shows each one in its own compact row with its disclosed name and expiry. You may deliberately try it before a quota reaches 100%, which is useful for a reset nearing expiry. ChatGPT still decides whether a window needs resetting and may return nothing to reset without spending the reset. The final action requires an acknowledgement checkbox and five-second cooldown. Cancel never consumes a reset, rapid repeated clicks are single-flight, and an uncertain network result is never retried automatically.
Image generation and editing (Beta)
A basic viewer derived from dsh-image-viewer is now built in, with no extra installation required. Plugin-generated image cards use the built-in viewer to keep annotation and continue-editing actions available. You can zoom, pan, fit, add region notes, and download the image. The standard Download action retrieves the permission- and integrity-checked exact original by default; only legacy sessions without an exact original fall back to the conversation preview.
New and edited images return the exact original path on the current DSH host in the tool result, so a model or Agent can read or copy the file. The path is on the host running DSH, not a browser download link; original downloads remain session-authorized. Uninstalling the plugin does not delete generated originals.
Continue editing in composer does not send automatically. With annotations, it attaches the clean source and a numbered location-reference image, and includes matching numbers, coordinates, notes, and instructions to exclude the markers from the result. Without annotations, it attaches only the opened image. Every marker needs a note; reference preparation failures stop the handoff. Press Enter to save and collapse a region note; use Shift+Enter for a new line. Notes remain available when the same image is reopened during the current DSH page session.
A new image request does not silently include earlier images. GPT Image 2 can take longer than a normal text turn, and detailed text, exact composition, or repeated-character consistency may still need another pass.
The screenshot above illustrates image viewing and on-image notes; available buttons can vary with the image and installed viewer version.
Composer speed
With a supported Codex model selected, open the composer's model menu to choose Standard or Fast. Standard adds no icon; only Fast shows a lightning icon before the model name. Spark does not show the speed entry. Fast mode increases speed and uses more Credits; see the OpenAI Codex Speed documentation for the current rules.
Update and uninstall
Update and verify
dsh plugin --profile web update dsh-codex-subscription
dsh plugin --profile web list dsh-codex-subscription --depth 0
dsh --profile web --dump-config
Uninstall
Run this only when you want to remove the plugin:
dsh plugin --profile web remove dsh-codex-subscription
These operations preserve the DSH profile, other plugins, and saved sign-in.
Update and verify
npx -y @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web update dsh-codex-subscription
npx -y @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web list dsh-codex-subscription --depth 0
npx -y @deepseek-ai/dsh@0.1.2-rc.1 --profile web --dump-config
Uninstall
npx -y @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web remove dsh-codex-subscription
Troubleshooting
dshis not recognized: the official npm route does not create a globaldshcommand; use the completenpx -y @deepseek-ai/dsh@0.1.2-rc.1 ...command above;- More than one DSH exists: run the standard command from the intended DSH environment so that product selects the corresponding profile;
- Setup still fails: confirm the command is running in the intended DSH environment. Do not delete the profile or change the system PATH to force an install.
- Need to report a problem: generate a Support diagnostics report at the bottom of Settings, then open the bug report form. The report includes the OS/runtime, bounded sign-in phase, and safe request-failure categories, but excludes credentials, account identifiers, proxy addresses, raw responses, and full logs. Paste it into the required diagnostics field; never attach sign-in URLs, authorization codes, or browser callback addresses.
The ChatGPT Codex backend and DSH can change independently. This community project is not affiliated with or endorsed by DeepSeek or OpenAI.
Use the bug report form for project feedback. Use the feature request form for focused product suggestions. Focused fixes and compatibility improvements are welcome; see CONTRIBUTING.md. For DSH plugin discussion, visit DeepSeek Harness Discussions. Read SECURITY.md before reporting sensitive issues.
If this project is useful, the Star button helps more DSH users find it.
Links
More in this category
Tencent/WeKnora#dsh-weknora★ 35688
Four read-only tools over a WeKnora knowledge base: list knowledge bases, hybrid passage search, reassemble one document's chunks in order, and WeKnora's own cited RAG or ReAct-agent answer with a resumable session id.
superdesigndev/treg★ 6403
Tool catalog for agents: search ~2,600 external endpoints (SEO and SERP, backlinks, social, people and company enrichment, ad libraries, scraping) by the task you want done, read each one's parameters and per-call price, then call it with the credential injected server-side. Ships the skill plus an MCP row that stays disabled until TREG_TOKEN is set.
T-Auto/dsh-ops★ 4593
Provides bash, PowerShell 7, and high-performance Rust tools for DSH on Windows to reduce token usage.
sixtysevenlf/dsh-blender-plugin★ 1388
Lets a DSH agent drive a local Blender over a direct TCP channel with 15 tools: viewport frames, custom-angle renders, Python execution, headless and job offload, transaction rollback, and a planning layer of 228 ops across 34 families.
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1152
Tencent CloudBase backend for DeepSeek Harness — scaffold and deploy full-stack apps from chat, render query results as table cards with paging, sorting and CSV export, preview a deployment on its domain, and call the CloudBase MCP toolset (`mcp__cloudbase__*`) with device-code login.
anysearch-team/anysearch-dsh★ 665
AnySearch-powered real-time web and vertical search provider for DeepSeek Harness.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.