DSH Plugins Marketplace

DSH Plugins

Plugins

/

Models & Providers

/

dsh-codex-gpt

d

dsh-codex-gpt

Manifest valid

OpenAI OAuth login for ChatGPT Codex that adds ChatGPT as a selectable LLM provider (streaming, Off/Low/High/Max reasoning effort, image input) and a codex tool for per-session DeepSeek escalation, wi

UI (client)hasBundlePatch

dsh-codex-gpt(双脑)

中文名:双脑 —— DeepSeek 与 ChatGPT 两个脑子协作:日常由 DeepSeek 处理,难题交给 GPT 做独立分析或构建,侧边栏一块面板同时看着各家的额度与积分。

名称值说明
包名(下载名)dsh-codex-gpt(package.json 的 name)安装、更新、依赖引用用的名字,不要改,改了 DSH 就认不出这是同一个插件
中文名双脑(package.json 的 displayName)已写进包元数据;当前 DSH 版本的插件页标题只读包名,所以列表里仍显示 dsh-codex-gpt,「双脑」出现在描述与文档里

把 ChatGPT / OpenAI Codex 接入 DeepSeek Harness (DSH) 的插件:既能在模型选择器里把 ChatGPT 当作一个 LLM provider 直接对话,也能让 DeepSeek 在会话内按需把难任务转交给 GPT 做独立分析或代码构建。

全程使用 ChatGPT 订阅额度,走 OpenAI 官方 OAuth 登录,不需要填写 API Key,不产生 OpenAI API 计费。

设置页:OpenAI 账号、ChatGPT 设置、轻任务委派开关与重置卡


接手开发 / 换新对话窗口:先读 HANDOFF.md(项目现状、坑、待办)。

特性

1. ChatGPT 作为 LLM provider(直接对话)

  • 模型选择器新增 「ChatGPT」 provider(内部 id openai-codex,与生态对齐:@dougen/dsh-deepseek-usage 等按这个 id 识别 ChatGPT 订阅的插件可以直接认出来),选中后整个对话由 GPT 处理:完整上下文、流式输出、工具调用。
  • 旧版本注册过的 id chatgpt-codex 仍同时注册(分组名显示为「ChatGPT(旧 id)」),升级前保存过模型选择的老会话不会变成不可路由;把老会话的模型重选一次后就只走新 id 了。
  • 模型列表实时从账号可用模型拉取(gpt-6.1-sol、gpt-6-astra、gpt-5.6-sol …),不写死。
  • 支持思考强度:Off / Low / High / Max,默认 High,内部映射到 Codex 的 reasoning.effort(Max → xhigh,Off → 不发送 reasoning)。
  • 支持图片输入:贴图直接发给 GPT(经 ctx.attachments.readImage 读取并编码为 input_image)。
  • 模型列表带 5 分钟缓存,并对 HTTP 429 限流自动回退,不会污染界面。
  • 模型目录落盘缓存($DSH_HOME/dsh-codex-models.json):插件刚启动、上游还没返回时也先给上次的完整目录,并把已配置模型始终并进列表——不会出现「模型先消失、要手动重选」。刷新只在后台进行。
  • 登录/刷新拿到的 OAuth 令牌会自动同步(节流 60 秒,且绝不在模型列表这种高频路径上写,避免触发 DSH 的凭证变更事件导致界面反复刷新)到 DSH_USAGE_CODEX_OAUTH_TOKEN / DSH_USAGE_CODEX_ACCOUNT_ID 两个凭证引用,@dougen/dsh-deepseek-usage 这类用量插件不必再手填令牌(同步失败只影响那张卡,不影响对话)。
  • GPT 模式轻任务委派(独立开关):开启后,ChatGPT 处理会话时会把格式化、整理、检索归纳、润色等轻任务交给 DeepSeek V4.1 完成并收尾,复杂任务仍由 GPT 直接处理;随时可关。

2. codex 工具(DeepSeek 自主升级)

  • 会话级授权:输入框左侧的胶囊按钮控制当前会话(显示名随当前模型变化:本插件 ChatGPT 时显示「DeepSeek」,其余显示「ChatGPT」);未授权会话绝不会调用 OpenAI。
  • 已授权会话中,DeepSeek 按任务强度决定是否调用 codex 工具;可在设置里关闭「自主调用」。
  • 两种模式:analyze(架构分析、疑难 bug 定位、方案评审、安全审计)与 build(直接产出可落地代码/补丁)。

3. 用量看板(兼容 ChatGPT 的自适应看板)

支持哪些 AI、数据从哪来:

显示的一页数据来源显示内容
ChatGPT本插件 OAuth → chatgpt.com/backend-api/wham/usage5 小时 / 每周限额、订阅状态与到期日、可用重置卡
DeepSeek本插件直连 api.deepseek.com/user/balance(跟随 DEEPSEEK_BASE_URL)实时余额、高峰/空闲时段与倒计时
Trae(可选)dsh-connect-trae 的 /plugins/dsh-connect-trae/usage剩余积分(附累计发放、签到状态)
WorkBuddy(可选)dsh-connect-workbuddy 的 /plugins/dsh-connect-workbuddy/usage剩余积分(附临近过期提示、签到状态)
Qoder(可选)@dmh2002/dsh-connect-qoder 的 /plugins/dsh-connect-qoder/usage剩余积分(附临近过期提示)
Kimi / GLM / OpenRouter / MiniMax …(可选)@dougen/dsh-deepseek-usage 的 /api/deepseek-usage/accounts该家余额或用量窗口

可选依赖只需「装了就有」,不装也不影响本插件自身(ChatGPT + DeepSeek 由本插件自带)。

  • 侧边栏底部一张卡片,默认「自动」:跟着当前在用的模型走——用 ChatGPT 就显示 ChatGPT,用 DeepSeek 就显示 DeepSeek;也可以在设置里固定成某一家(用量卡默认显示)。
  • 点卡片空白处:按固定顺序循环切换 —— DeepSeek → ChatGPT → 其它已配置的 AI → WorkBuddy → Trae。
  • 点当前那家的名字:立刻重新读取(刷新)这一家的数据。
  • ChatGPT 页:5 小时限额 / 每周限额 / 订阅状态 / 到期时间 / 可用重置卡(设置页可消费,二次确认、不可逆)。
  • DeepSeek 页(本插件自带,不依赖别的插件):
    • 实时余额(人民币,10 秒缓存),标题旁标「按量计费」;
    • 高峰 / 空闲指示(按官方定价页 2026-10 的规则):
      • 高峰:UTC 01:00–04:00、06:00–10:00,周一至周五(北京时间 09:00–12:00、14:00–18:00);
      • 空闲(半价):其余所有时间,含周末全天;
      • 卡片显示当前处于哪一档 + 距下一次切换的倒计时;
      • 已知近似:中国法定节假日官方也按半价,本插件没有节假日日历,节假日当天会按「工作日」计算(显示可能偏严格),实际计费请以官方为准;
    • 余额读不到时显示 —(不是 0.00)并给出原因:未配置 DEEPSEEK_API_KEY、网络请求失败(检查连接或代理)、上游 HTTP 状态等,绝不编造数字;
    • 更新节奏:余额每 10 秒自动刷新;点当前那家的名字会立即强制重查;切模型 3 秒内自动跟随;
    • 余额端点跟随 DEEPSEEK_BASE_URL(与 DeepSeek 适配器同口径),没设就用官方 api.deepseek.com/user/balance。
  • 如果机器上还装了别的用量插件(如 @dougen/dsh-deepseek-usage),它已经配好的其它 AI(Kimi / GLM / OpenRouter / MiniMax …)会自动出现在切换列表里;不装也完全可以只用本插件。
  • Trae / WorkBuddy / Qoder 积分:装了 dsh-connect-trae 或 dsh-connect-workbuddy 时,卡片会读它们各自暴露的只读用量端点(/plugins/dsh-connect-trae/usage、/plugins/dsh-connect-workbuddy/usage),把剩余积分作为独立一页显示:
    • Trae:显示剩余积分(credits.available,缺省时退 workAvailable + generalAvailable),并附累计发放与签到状态;
    • WorkBuddy:显示剩余合计(credits.total),并在有临近过期积分时提示;
    • 未登录 / 未安装时这一页不出现,也不会显示成 0 误导;当前会话用的是哪一家,auto 模式就优先显示哪一家。

4. 看板开关(两个独立开关)

① 仅看板模式(默认关闭):关闭所有 GPT/Codex 功能,只留看板。

② 关闭看板(默认关闭):只把侧边栏那张用量卡藏起来,ChatGPT 模型、codex 工具、会话授权照旧可用。

两者互不影响:都关 = 原样;只开 ① = 纯看板;只开 ② = 只有 GPT 功能;两个都开 = 两样都没有(不推荐)。

仅看板模式

  • 设置页顶部「🦭 看板开关」里有这个按钮,默认关闭;点按钮切换后必须点同一张卡里的「保存看板设置」才写入。
  • 打开后:不注册 ChatGPT 模型、不注册 codex / deepseek_delegate 工具、不注入会话授权策略、不再同步用量凭证,设置页只留看板相关项、输入框左侧胶囊也会移除 —— 插件退化成纯用量看板。
  • 该模式是持久配置:保存后禁用 → 启用插件完全生效。

4. 诊断

  • 设置页一键检查 api.openai.com、chatgpt.com、auth.openai.com 三条链路。
  • /dsh-codex-api 状态路由暴露登录态、provider 注册状态与模型目录诊断信息。

安装

DSH 中通过 插件管理 以本地 bundle 方式安装:

  1. 打开「插件 → 插件管理」;
  2. install_bundle,target 指向本目录(或发布后的包名 dsh-codex-gpt);
  3. 安装后 bundle 条目 id 为 dsh-codex-gpt。

本包以 link: 方式安装到 profile 时,Node 从包的真实目录解析依赖,因此 node_modules/(含 @deepseek-ai/schemastery 等)需要随包本地存在,但不提交到 git。


登录

  1. 打开 设置 → ChatGPT → 点「登录 OpenAI 账号」;
  2. 浏览器跳转 auth.openai.com 官方授权页,登录并同意;
  3. 回调本机 http://localhost:1455/auth/callback 完成授权(端口占用会明确提示)。

凭证仅保存在本机 $DSH_HOME/dsh-codex-auth.json,与 Codex CLI 的 auth.json 相互独立。


使用

方式 A:直接和 ChatGPT 对话

  1. 完成登录;
  2. 点输入框的模型选择器,选 ChatGPT 分组下的任意模型;
  3. 可在同一菜单里调整推理等级(Off / Low / High / Max);
  4. 正常对话即可,支持贴图。

方式 B:让 DeepSeek 自主调用 Codex

  1. 模型保持在 DeepSeek(V4.1);
  2. 点输入框左侧胶囊按钮授权当前会话;
  3. 遇到高难度任务时 DeepSeek 会调用 codex 工具,并在回答中说明所用模型与耗时。

配置

以下字段可在 profile 的 cordis.patch.yml 中修改:

字段默认说明
defaultModelgpt-5-codex默认模型(候选从 OpenAI 实时拉取)
autoConsulttrue允许模型自主按任务强度调用 codex 工具
allowLanAccessfalse允许局域网设备只读查看插件状态(写操作始终仅限本机)
delegateLightTasksfalseGPT 模式下允许把轻任务交给 DeepSeek V4.1 收尾(独立开关,可随时关闭)
gptNameDetectfalse保险开关:开启后其他 provider 的模型名形如 gpt-* / o3-* 也按 GPT 识别(影响胶囊显示名)
deepseekModel空轻任务委派使用的 DeepSeek 模型 id;留空自动选择当前可用模型

持久化数据:

路径内容
$DSH_HOME/dsh-codex-auth.jsonOAuth 凭证(access/refresh token、账号信息)
$DSH_HOME/dsh-codex.json按会话的授权状态与模型选择

架构

文件作用
index.jsHost 插件入口:codex 工具、会话授权、系统提示策略段、LLM 适配器注册、设置页 provider 目录、/dsh-codex-api 路由
llm-adapter.jsDSH LlmAdapter 适配器:模型目录、思考强度、图片输入、SSE → StreamChunk 转换
codex.jsCodex 后端调用层:codex/responses(SSE)、codex/models、重置卡查询/消费
oauth.jsOpenAI OAuth:PKCE、1455 回调服务器、token 交换/续期、凭证存储
usage.jsChatGPT 订阅用量(wham/usage),插件凭证优先、兼容 Codex CLI
network.js外网连通性检查
client.js浏览器侧:输入框授权胶囊、侧边栏用量卡片、设置页
cordis.patch.yml插入主机行 id: dsh-codex-gpt
test/node --test 单测(114 条,含安全回归、卡片真实渲染、第三方积分解析与客户端冒烟)

数据流(方式 A):

DSH Agent Loop
  └─ llm.prepareCall → openai-codex 适配器
       └─ POST chatgpt.com/backend-api/codex/responses (SSE)
            └─ StreamChunk: text / reasoning / tool-call / usage / finish

开发

npm install          # 或使用本地 vendored node_modules
node --test "test/codex.test.mjs" "test/usage.test.mjs" "test/host.test.mjs" "test/adapter.test.mjs"

测试全部使用 node:test + mock 网络,不需要真实 OpenAI 凭证。


安全边界

  • 状态路由 /dsh-codex-api 默认仅接受本机回环地址,并校验 Origin、Sec-Fetch-Site、Host 与 Content-Type: application/json;
  • 同源判断兼容 127.0.0.1 / localhost / [::1] 等本机别名(协议与端口需一致),外部域名伪造 Origin 一律拒绝;
  • 写操作(授权、登录、登出、兑换重置卡、改配置)必须携带进程级随机令牌 x-dsh-write-token:令牌只随同源 GET 快照下发给本机页面,跨站页面读不到响应体因此拿不到,代理场景下也无法伪造写操作;
  • 请求带 Origin 时必须与本站同源(兼容本机别名);桌面外壳等不发 Origin 的同源场景由上面的随机令牌兜底;
  • 请求若携带 X-Forwarded-For / X-Real-IP / Forwarded / CF-Connecting-IP,一律按远程处理,不再享受本机权限;
  • Host 校验不依赖 getOrigin() 是否可用:即使端口来源信息缺失,非回环 Host 也会被拒绝(防 DNS rebinding);
  • allowLanAccess: true 时局域网设备只能只读查询;登录、登出、兑换重置卡等写操作必须在运行 DSH 的本机执行;
  • OAuth 回调页回显的 URL 参数(如 error)全部做 HTML 转义,防止反射型 XSS;回调先校验 state 再处理错误参数;
  • 凭证文件以 0600 权限写入(POSIX 系统),token 不会通过状态路由回传给浏览器;
  • 插件只读 Codex CLI 的 auth.json,不替其他应用刷新或轮换其 token;
  • 局域网模式下的只读数据已脱敏(不返回邮箱、姓名、订阅起止、用量、模型目录、配置细节与重置卡);
  • 会话授权不继承给子代理(subagent)或 fork 出的新会话;
  • 未登录 / 未授权时不会发起任何 OpenAI 请求;
  • 状态路由只接受 GET / POST,其余方法一律 405(不能靠 PUT/PATCH/DELETE 绕过写令牌);
  • 侧边栏「跟随当前模型」轮询走轻量端点 ?meta=1(只回当前 provider/model 与默认 tab,不含邮箱、套餐、用量、写令牌,也不触发凭证写入);
  • 卡片外面包了一层兜底组件,单个组件渲染出错只会显示一行提示,不会让整块卡片消失;
  • 设置页顶部显示当前插件版本号(直接读 package.json,避免两处版本号写歪);
  • credentials 写入做了三件事:串行化(避免并发写触发多次模型目录刷新)、写前比较现值(值没变就不写)、登出时连同镜像 token 一起 unset;
  • 模型目录落盘缓存带账号指纹(accountId 的 SHA-256 前缀),换账号/登出会丢弃上一账号的目录;
  • DeepSeek 余额缓存键包含 API Key 指纹 + base URL,同一来源换了 Key 不会复用上一账号的余额;失败结果不会覆盖上次成功的金额。

威胁模型说明(诚实边界)

上面的防护针对的是浏览器跨站请求(CSRF / DNS rebinding / 恶意网页读响应)与局域网其他设备。它不能防御同一操作系统用户下的本机原生进程:那类进程可以直接读取 DSH 的凭证文件,也能自己发 HTTP 请求并拿到写令牌,因此本机的安全边界依赖操作系统的用户隔离,而不是插件的令牌。如果需要更强隔离,请让 DSH 以更低权限的独立用户运行。


已知限制

  • 依赖 ChatGPT 后端的若干非公开接口(codex/responses、codex/models、wham/usage、wham/rate-limit-reset-credits),OpenAI 调整协议时可能需要适配;
  • codex 工具与模型列表均受账号订阅额度约束,额度用尽需等待重置周期或使用重置卡;
  • OAuth 回调固定占用本机 1455 端口(同时尝试监听 127.0.0.1 与 ::1;系统禁用 IPv6 时自动只保留 IPv4);
  • 不建议在 DSH 前面挂反向代理:虽然写操作有随机令牌保护、转发头也会降级为远程,但只读快照仍可能暴露给代理后的访问者,最稳妥的做法仍是仅本机暴露;
  • 多个 DSH 实例共享同一个 $DSH_HOME 时,会话授权状态是整文件覆写,可能互相覆盖;
  • 浏览器侧 UI 文案目前硬编码中文,未接入 ctx.locale 本地化。

免责声明

本项目为第三方社区插件,与 OpenAI 及 DeepSeek 官方无隶属关系。使用 ChatGPT 订阅额度调用后端接口可能受服务条款约束,请自行评估合规性与风险。


License

MIT

Comments

Loading…

Similar plugins

dsh-llm-openai-codex

by auggie246

OpenAI Codex (ChatGPT Plus/Pro subscription) provider for DeepSeek Harness with DSH Web OAuth, device code, and shared Codex CLI credentials

Terminal & ClientsManifest valid

★ 0

MIT

JavaScript

Sep 29, 2026

dsh plugin --profile web add dsh-llm-openai-codex

by wang-kaopu

Use ChatGPT (Codex) and Gemini Code Assist subscriptions as DeepSeek Harness LLM providers — OAuth login in the web UI, no API keys

Manifest valid

★ 3

↓ 16/wk

TypeScript

Aug 21, 2026

dsh plugin --profile web add @kelvinwww/dsh-oauth

by HaydenSmith1121

Codex (ChatGPT) model provider for DeepSeek Harness - serves the ChatGPT subscription models the Codex CLI uses, over OAuth session credentials instead of an API key

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 1

↓ 39/wk

MIT

JavaScript

Sep 18, 2026

dsh plugin --profile web add dsh-codex-provider

by callqh

Sign in to OpenAI Codex from DeepSeek Harness with a ChatGPT Plus/Pro subscription, by driving the authorization flow llm-pi-ai already registers.

Terminal & ClientsModels & ProvidersManifest valid

★ 0

MIT

JavaScript

Sep 30, 2026

dsh plugin --profile web add dsh-codex-oauth

by zhangxiubo

ChatGPT Plus/Pro OAuth model provider for DeepSeek Harness using pi-ai openai-codex.

Manifest valid

★ 0

MIT

JavaScript

Aug 19, 2026

dsh plugin --profile web add dsh-llm-chatgpt-oauth

by AdonisSheldon

Use ChatGPT OAuth and OpenAI Codex models in DeepSeek Harness—no API key or Codex CLI required.

Models & ProvidersManifest valid

★ 9

↓ 284/wk

MIT

TypeScript

Oct 23, 2026

dsh plugin --profile web add dsh-openai-oauth