Bind your ChatGPT account via official OAuth and chat with ChatGPT models inside DSH, using your Plus/Pro subscription quota.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:songoao25/dsh-chatgpt-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. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
English | 中文
A DeepSeek Harness plugin that lets you sign in with your ChatGPT account using the official OAuth flow and chat with ChatGPT models inside DSH, consuming your ChatGPT Plus / Pro subscription quota.
One-click official sign-in — Click 授权登录 on the new 「订阅」page in DSH Settings → your browser opens OpenAI's official authorization page → approve → you're bound. No API keys, no command line, no config file editing.
Features
- Official OAuth binding — Full PKCE + state flow against
auth.openai.com, the same official mechanism used by Codex CLI and OpenCode. Your tokens are exchanged directly with OpenAI; the plugin never sees or stores your password. - Strict official mode — Only an authorization completed through this plugin's settings page counts as bound. Your existing
codexCLI login is left alone and is never silently reused. - ChatGPT models in DSH — After binding, ChatGPT models (e.g.
gpt-5.6-terra,gpt-5.5,gpt-5.4) appear in the DSH model switcher as provider ChatGPT. Selecting one talks to ChatGPT directly and consumes your subscription quota. - Token guardian — The access token is auto-refreshed before expiry (JWT-aware, refresh threshold 45 min) and injected into DSH credentials. Runs once at startup and every 30 minutes; on failure it keeps the last known good state instead of crashing.
- Bind status page — The Settings → 订阅 page shows bound/unbound status, token expiry and remaining time, with 授权登录 / 重新授权 / 解绑 actions.
- Companion to Bottom Info Bar — This plugin owns binding and token maintenance; the Bottom Info Bar reads the token to display your ChatGPT quota (5-hour / weekly / monthly windows and reset times). You can use this plugin without the info bar, but the info bar's ChatGPT quota display requires this plugin.
Requirements
- DeepSeek Harness (
dshCLI) running the web interface (dsh web) - pnpm (used by
dsh plugin) - A ChatGPT Plus or Pro subscription (or a plan that includes Codex quota)
Installation
Option 1 — One-command script (recommended)
git clone https://github.com/songoao25/dsh-chatgpt-subscription.git
cd dsh-chatgpt-subscription
./install.sh # installs to the "web" profile; use --profile <name> to override
Option 2 — dsh plugin command
git clone https://github.com/songoao25/dsh-chatgpt-subscription.git
cd dsh-chatgpt-subscription
npm run build # build lib/ from src/
dsh plugin --profile web add .
Restart
dsh webafter installing. Plugins are composed when the host process starts; a page refresh alone is not enough.
Usage
- Restart
dsh web, then open Settings (⚙️) in the sidebar. - Click 订阅 (right below 模型).
- Click 授权登录 — your browser opens the official OpenAI sign-in page.
- Sign in with your ChatGPT account and approve. The page shows 已绑定 when done.
- Open a new conversation, switch the model to a ChatGPT model (provider ChatGPT, e.g.
gpt-5.6-terra) and chat — usage counts against your subscription.
If the browser tab doesn't open automatically, the page also calls
window.openas a fallback; allow pop-ups for DSH if prompted.
Security
- Tokens are stored only in
~/.codex/auth.json(0600, the standard location shared with Codex CLI) and in DSH's credential store — never in logs, never in this repository. - The local OAuth callback server binds 127.0.0.1 only, validates
state(CSRF protection), and times out after 5 minutes. - Unbinding removes the binding flag and the injected credential, but keeps
~/.codex/auth.jsonuntouched — your Codex CLI login stays intact. - Zero runtime dependencies (only
reactas a peer for the client half); no network calls except the official OpenAI endpoints.
Uninstall
cd dsh-chatgpt-subscription
./uninstall.sh # removes the plugin and the injected route/credential
Uninstall keeps ~/.codex/auth.json (your Codex CLI login) and only cleans what this plugin added: the binding flag, the openai-codex provider route, and the OPENAI_CODEX_API_KEY credential.
FAQ
Q: Do I need a ChatGPT Plus subscription?
Yes — the plugin connects your ChatGPT account; chatting with ChatGPT models consumes your subscription quota (models available depend on your plan, e.g. gpt-5.3-codex-spark requires a higher plan).
Q: Does this share my tokens?
No. Everything happens between your machine and auth.openai.com / chatgpt.com. Tokens never leave your machine and are never logged.
Q: What if the token expires? The plugin auto-refreshes it before expiry. If refresh fails (e.g. revoked), the settings page shows a clear hint to re-authorize.
Q: Does this affect my Codex CLI login?
No. The plugin writes to the same standard ~/.codex/auth.json location and preserves its structure; unbinding doesn't delete it.
Q: Can I see my quota? Install the companion Bottom Info Bar plugin — it reads the token this plugin maintains and displays your ChatGPT quota (remaining percent and reset time) in the bottom info bar.
License
MIT © 2026 songoao25
Links
More in this category
Mars-Sea/dsh-commandcode-provider★ 21
Unofficial Command Code LLM provider: registers a `commandcode` route with a live model catalog and reasoning-effort support.
franksong2702/dsh-codex-connect★ 11
Connect ChatGPT OAuth and OpenAI Codex models to DeepSeek Harness, with opt-in search and image tools.
suntianc/dsh-codex-auth★ 7
Reuses the Codex CLI ChatGPT login as an `openai-codex` LLM route and adds GPT Auth controls to DSH Web settings.
WNJXYK/dsh-codex-oauth★ 7
Use a ChatGPT/Codex subscription in DeepSeek Harness with GPT models, image generation, web search, subscription quota reporting, model and feature controls, and browser or device-code OAuth sign-in.
Noob-stupid/dsh-github-login★ 6
Visual GitHub login without a terminal: in-window device flow, token synced into the gh CLI, and host status/launch endpoints.
btspoony/dsh-llm-fallbacks★ 5
Role-based LLM retry & fallback strategies.