DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

xxww0098 /

xxww0098/dsh-plugin-oauth-subs

Verified

ChatGPT Codex and xAI Grok subscription OAuth for DeepSeek Harness — PKCE / device-code, local Responses proxy, llm-pi-ai sync

★ 0 Stars0 Forks2 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@59edc765

dsh-plugin-oauth-subs

简体中文 | English

CI

Use a ChatGPT / Codex, xAI Grok, Zhipu GLM, AWS Kiro, Google Antigravity, Cursor, Ollama Cloud, Kimi Code Plan, or OpenCode Free subscription inside DeepSeek Harness. Official OAuth, plus Kiro API keys, Cursor CLI/IDE reuse, Ollama API keys (ollama.com Cloud, not localhost:11434), Kimi device-code / kimi-code.json, and anonymous OpenCode Zen free models. Loopback proxy + llm-pi-ai route sync; each family picks one DSH api from openai-responses | openai-completions | anthropic-messages.

Install

dsh plugin --profile web add https://github.com/xxww0098/dsh-plugin-oauth-subs
dsh web

Open Settings → OAuth subs. One card per account (quota on every card; Ollama Cloud has no quota bars). About compares GitHub latest and may run dsh plugin --profile web update dsh-plugin-oauth-subs — restart dsh web. Or pnpm dsh web --patch ./cordis.patch.yml (id: oauth-subs).

Families

Provider Auth DSH api Upstream hop
ChatGPT Codex PKCE localhost:1455 (1457 fallback); paste-callback; app_EMoamEEZ73f0CkXaXp7hrann openai-responses chatgpt.com/backend-api/codex/responses
xAI Grok Device-code (default); PKCE 127.0.0.1:56121; b1a00492-073a-47ea-816f-4c329264a828 openai-responses api.x.ai/v1/responses
GLM · Z.ai (global) ZCode CLI poll provider: zai; mint id.secret; client_P8X5CMWmlaRO9gyO-KSqtg anthropic-messages api.z.ai/api/anthropic (Completions leftover …/coding/paas/v4)
GLM · BigModel (China) Same CLI poll, provider: bigmodel; poll JWT is the bearer; client zcode anthropic-messages open.bigmodel.cn/api/anthropic (Completions leftover …/coding/paas/v4)
AWS Kiro Social PKCE app.kiro.dev (3128…53153) / Builder ID / IdC / Entra / ksk_ openai-completions q.<region>.amazonaws.com GenerateAssistantResponse
Google Antigravity Google OAuth localhost:51121; paste-callback; 1071006060591-…apps.googleusercontent.com openai-completions daily-cloudcode-pa.googleapis.com/v1internal:streamGenerateContent
Cursor PKCE poll cursor.com/loginDeepControl; or Import local Cursor openai-completions Connect agentn.us.api5.cursor.sh AgentService/Run
Ollama Cloud Paste API key / import OLLAMA_API_KEY openai-completions https://ollama.com/v1/chat/completions
Kimi Code Plan Device-code (no PKCE); import ~/.kimi-code/credentials/kimi-code.json; optional KIMI_API_KEY openai-completions https://api.kimi.com/coding/v1/chat/completions
OpenCode Free One-click anonymous enable (no account, no API key) openai-completions https://opencode.ai/zen/v1/chat/completions (no Authorization)
Path Family
~/.codex/auth.json Codex
~/.grok/auth.json, ~/.hermes/auth.json Grok
~/.zcode/v2/config.json (also older cli/config.json / config.json) GLM
~/.kiro/credentials.json; credentials.json (kiro.rs CWD); ~/.aws/sso/cache/kiro-auth-token.json Kiro
Settings paste: kami / JSON / CSV / Social refresh / ksk_… Kiro
~/.gemini/antigravity-cli/antigravity-oauth-token; ~/.cli-proxy-api/antigravity-*.json Antigravity
macOS Keychain cursor-access-token / cursor-refresh-token; IDE state.vscdb (current OS user only); CURSOR_ACCESS_TOKEN Cursor
OLLAMA_API_KEY env (not ~/.ollama/id_ed25519.pub) Ollama Cloud
~/.kimi-code/credentials/kimi-code.json; read-only ~/.kimi/credentials/kimi-code.json; KIMI_API_KEY Kimi

Tokens: <profile>/data/dsh-plugin-oauth-subs/auth.json (0600). Models: models.json beside it.

How it works

Plane Role
Settings OAuth login / import / logout, then model sync
llm-pi-ai DSH call plane; routes to the loopback proxy
Loopback http://127.0.0.1:8318/{codex,grok}/v1/responses, /glm/v1/messages (Completions leftover /glm/v1/chat/completions until the next sync), /{kiro,antigravity,cursor,ollama,kimi,opencode}/v1/chat/completions
Upstream Refreshed subscription bearer

Not a second LLM adapter. After Settings closes, DSH still calls the loopback proxy. Bind is loopback-only; local credential is DSH_OAUTH_SUBS_API_KEY. GLM 150% Coding Plan boost is identity (ZCode Desktop UA), not a protocol claim. Stack and module tree: AGENTS.md.

Cache

Acceptance on the full session-772f7f3a-… SkillStar turn (oauth-codex / gpt-5.6-terra-fast, 211 calls, 71 min):

2026-08-26 incident After 0.0.14 affinity headers
Weighted cache hit 27.4% 95.6%
Prefix reuse (median) — 99.6%
Affinity misses 47 / 90 zero-cache 0
Prefix rewrites — 1 adapter rebuild + 9 compaction
TRANSPORT faults 29 0

Codex cache hit Codex affinity misses and TRANSPORT

Remaining uncached tokens are almost all new tool output (delta) plus expected prefix rewrites: leaving plan mode (step 55, 169k) and DSH compaction (330k); the next call after each rewrite reused ~99%. Healthy: weighted hit ≥ 80%, zero affinity misses, no TRANSPORT. Compaction / request/header rebuild zeros do not fail the session. Details: docs/error.md.

Diagnose

npm run analyze -- path/to/session.jsonl
node --experimental-strip-types scripts/analyze-session.ts --json path/to/session.jsonl
node --experimental-strip-types scripts/analyze-session.ts --fail-below 80 path/to/session.jsonl

The analyzer labels each call cold_start / delta / compaction / rebuild / affinity_miss so a compacted session is not flagged as a shard regression. Import as dsh-plugin-oauth-subs/analyze-session.

Fast / models / reasoning

Login and chat use official client identity; UA / fingerprint live in each src/oauth/<id>/README.md. Settings → Models: per-family checkboxes (default all on except 900K). Reasoning is set in the Harness session menu, not Settings → Models. Fast and 900K spend quota faster.

Family Fast Window Thinking
Codex GPT-5.6 Sol / Terra / Luna Yes. -fast → Priority (service_tier: "priority" + x-codex-routing-hint; store: false) -900k (872K) low / medium / high / xhigh / max
Other Codex 5.4 / 5.5 Yes; Mini / Spark No (empty service_tiers; leftover *-fast peeled locally) GPT-5.4 -900k (1M) low–xhigh (no minimal)
Grok No. 2026-08-30: 83.34 vs 82.80 tok/s (0.994). Older ids reject the field — 4.6: low / medium / high / xhigh (unset = high); 4.5: no xhigh
GLM — — 5.3 / Flash: low / high / max (default max; no medium; disabled 400s). Turbo: on, no depth. Flash is the only GLM image row
Kiro — — GPT-5.6: off / low / medium / high / xhigh / max (off → wire none). Opus 5 / 4.8 / 4.7 and Sonnet 5 add xhigh; 4.6 family to max; Haiku / OSS: none. Catalog: kiro.dev/docs/models (no Auto)
Ollama Cloud No Live GET /api/tags (static 19-row Cloud snapshot fallback). Context from POST /api/show model_info.<family>.context_length. No quota bars off / low / medium / high / max (off → wire none)
Kimi No Live GET /coding/v1/models (static kimi-for-coding / highspeed / k3, 256k/32k). Prefix-hash cache off / minimal / low / medium / high / xhigh / max → thinking.effort

Codex Priority echo created=auto / completed=default is not a confirmation (openai/codex#14204). 2026-08-26 Luna: 88.3 vs 57.5 tok/s (1.54×); 2026-08-30 interleaved mean 1.33× (1.90 then 0.93). Throughput-only; TTFT and cache unchanged.

Quota

Subscription Endpoint Display
ChatGPT Codex chatgpt.com/backend-api/wham/usage Plan badge (Plus / Pro / Team …) plus 5-hour + weekly windows, remaining percent and reset time
ChatGPT Codex reset …/wham/rate-limit-reset-credits + /consume Banked weekly-window reset credits and expiry; one confirm button per credit on the Codex card
xAI Grok cli-chat-proxy.grok.com/v1/billing?format=credits plus /v1/user?include=subscription Plan badge (SuperGrok / X Premium+ …) plus period usage, prepaid balance, product split
Zhipu GLM api.z.ai or open.bigmodel.cn monitor/usage/quota/limit Plan badge (Lite / Pro / Max) plus Coding Plan credit windows; host follows the active account
Google Antigravity daily-cloudcode-pa loadCodeAssist + fetchAvailableModels (prod only on 5xx / transport) Plan badge (Pro / Ultra / Free / Standard) plus SkillStar model-group remaining bars and reset time
Cursor api2.cursor.sh DashboardService/GetCurrentPeriodUsage Plan badge (Free / Pro / Pro+ / Ultra …) plus cycle remaining percent
Kimi Code api.kimi.com/coding/v1/usages + /me Plan badge from /me.user_level_name plus remaining bars; no invented reset times

Refresh about once a minute, or Refresh quota. Bars: hsl(remaining × 1.2, 78%, 38%). Codex pro → Pro 20x / $200, prolite → Pro 5x / $100. Plus/Pro may bank weekly resets — one confirm button per credit on the Codex card (Harness risk dialog, then POST …/consume with { redeem_request_id } + idempotencyKey). That spend refreshes the weekly window. Grok has no equivalent. Ollama Cloud has no documented quota JSON (/api/quota 404); the card stays idle with no bars.

Options

Option Default Notes
port 8318 Loopback proxy port
provider oauth llm-pi-ai route prefix (oauth-codex / oauth-grok / oauth-glm / oauth-antigravity)
dataDir profile data dir auth.json, models.json, and proxy-key
grokLogin device device or pkce

Develop

npm test
npm run analyze -- path/to/session.jsonl

See CONTRIBUTING.md.

—/ 5

No ratings yet

Verified DSH bundle

Commit 59edc765ad36

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout