dsh-plugin
DayuanJiang/next-ai-draw-iodsh 的 draw.io 绘图插件:通过 next-ai-drawio MCP 服务器作图,点回复里的链接在右侧栏打开实时预览,可以手动修改图,AI 的每次修改都是可以恢复的版本。需 Node.js 18+,首次使用由 npx 下载 MCP 服务器。
在 DeepSeek Harness 中直接使用 ChatGPT / Codex 订阅:OAuth 免密、额度续航预测、安全重置、联网搜索、生图与高速模式。
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
Install the plugin. Run the standard DSH bundle command:
dsh plugin --profile web add dsh-codex-subscription-en
Sign 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.
| 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.
The screenshot illustrates the settings layout; available options can vary by DSH and plugin version.
This plugin supports the latest DeepSeek Harness release recorded in its package metadata and requires a ChatGPT account that currently has Codex access.
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.
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 commanddsh 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:
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.
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.
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.
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.
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.
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.
dsh plugin --profile web update dsh-codex-subscription
dsh plugin --profile web list dsh-codex-subscription --depth 0
dsh --profile web --dump-config
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.
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
npx -y @deepseek-ai/dsh@0.1.2-rc.1 plugin --profile web remove dsh-codex-subscription
dsh is not recognized: the official npm route does not create a global dsh command; use the complete npx -y @deepseek-ai/dsh@0.1.2-rc.1 ... command above;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.