跳到主内容

dsh-codex

40Star11Fork2Issue0Watching

为 DSH 接入 ChatGPT 订阅的 OpenAI Codex 后端,OAuth 登录免 API Key,含 Codex 模型、联网搜索、生图与图片 URL 输入。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
Apache-2.0
分支
main
dsh-plugin

安装

命令web profile
$ dsh plugin --profile web add dsh-codex

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Yan-Zero/dsh-codex:先查看仓库 https://github.com/Yan-Zero/dsh-codex 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

给 DeepSeek Harness 接入 ChatGPT 订阅背后的 OpenAI Codex 后端:通过 OAuth 完成 ChatGPT 登录,免 API Key 即可在 DSH 模型选择器里使用 Codex 模型,并由 DSH 提供流式响应、工具调用、联网搜索、图片理解与生图。

核心能力

  • 完整 ChatGPT OAuth 登录与自动 token 刷新,支持浏览器设置面板与独立 CLI 两种方式
  • 把 Codex 模型目录(含视觉模型时声明图片输入能力)注入 DSH 模型选择器,账号中可见的模型自动出现
  • 把 dsh 原生 web_search 工具接到 Codex 独立搜索协议,搜索结果以普通文本和 HTTP(S) 引用返回,可被后续轮次与压缩复用
  • 扩展 Harness 现有 read_image 工具,新增 HTTP(S) URL 输入,并对重定向次数、字节数、内嵌凭据、私网目标做安全校验
  • 提供 imagegen 工具调用 gpt-image-2 生图,支持工作区参考图与会话内最近图片,自动保存为 dsh 附件与本地文件
  • 提供会话级 Fast Mode 开关与每周额度指示器,登录账号后实时显示剩余百分比与重置时间

技术实现

  • 语言: TypeScript(Host 端 ESM + Schemastery 配置;Client 端 React 18 + TSX)
  • 关键依赖: @earendil-works/pi-ai(Codex provider 与 OAuth)、@deepseek-ai/dsh-llm-pi-ai(适配器基类)、@deepseek-ai/dsh-settings(持久化偏好)、@deepseek-ai/dsh-host-webserver(Web 路由)
  • 架构模式: Cordis bundle 双端插件。Host 端以 llm-openai-codex 名字注册 LLM 适配器与独立搜索 Provider,并向 openAICodex 注入 service;通过 cordis.patch.yml 注入默认模型与搜索 Provider;Client 端 bundle 通过 dsh.client.inject 注册 React 组件到 dsh-web 设置面板与对话输入栏
  • 入口文件: src/index.ts(Host 主入口)、src/client/index.tsx(Web 设置面板入口)、src/bin.ts(独立 CLI dsh-openai-codex)、src/tui.ts(/codex 命令子节点)

适用场景

持有 ChatGPT Plus/Pro 订阅、想把 Codex 系列模型(gpt-5.6-sol 等)直接装进 DSH 模型选择器、又不想掏 OpenAI Platform API Key 的用户。痛点是 DSH 自带 openai-codex 路由只认通用凭据、没有登录入口;本插件把 OAuth、自动刷新、Codex 视觉能力、独立搜索、gpt-image-2 生图一并补齐,浏览器设置面板和 CLI 都能用。同样适合在远端机器跑 DSH、需要为前端 Web origin 单独授权的场景。

前置依赖与兼容性

依赖最低版本说明
@deepseek-ai/(cordis + dsh- 系列)0.1.0-rc.7peerDependencies 声明的宿主插件 API,cordis ^4.0.1-rc.1
@earendil-works/pi-ai^0.82.1复用其 openai-codex Provider 与 OAuth 实现,本插件适配器会把旧版 replay envelope 迁移到当前格式
React^18.2.0仅 Web 设置面板与对话输入栏需要
Node.js^22.19.0 || >=24.0.0由 src/compatibility.ts 中 SUPPORTED_NODE_RANGE 强制
平台macOS / Windows / Linux凭据存储在 Windows 上跳过 owner-only 检查,POSIX 强制 0o600;CLI 浏览器唤起分别走 xdg-open / open / rundll32.exe
原生模块无全部为 Node 内置模块(node:fs/promises、node:child_process、node:readline 等) + Web fetch

安装方式

dsh plugin --profile web add github:Yan-Zero/dsh-codex

安装完成后在「设置 → OpenAI Codex」点击「使用 ChatGPT 登录」完成 OAuth。Web 配置和 TUI(dsh-tui profile)共享同一份凭证文件;TUI 内可用 /codex status|login|logout|usage|config 和 /codex set <开关> <on|off> 操作。

配置项

bundle 默认会把 openai-codex / gpt-5.6-sol 设为新建 agent 的默认模型,并把 Codex 设为默认搜索 Provider;DSH 设置中已保存的模型仍然优先。所有 Schema 字段作用于 llm-openai-codex 入口。

配置类型说明默认值
models字符串数组模型选择器可见的子集;省略展示完整目录;空数组不展示任何模型完整 Codex 目录
searchModel字符串独立搜索端点使用的 Codex 模型gpt-5.6-sol
searchMode枚举搜索端点的缓存策略cached(可选 indexed / live)
searchContextSize枚举提供方返回的搜索上下文大小medium(可选 low / high)
searchMaxOutputTokens正整数独立搜索端点的输出上限10000
modifyReadImage布尔是否在 read_image 工具上追加 HTTP(S) URL 输入true
shareImagegenWithOtherModels布尔是否允许非 Codex 视觉模型调用 imagegentrue
useWebSocketContextReuse布尔复用 Codex WebSocket 上下文(同会话且新增输入时只发 previous_response_id)false
useNativeCompaction布尔使用 Codex V2 Responses 压缩(不可用时自动回退到 Harness 摘要)false

常见问题

Q: 需要 OpenAI API Key 吗?

A: 不需要。本插件消费 ChatGPT Plus/Pro 订阅的额度,与官方 Codex CLI 走同一通道,登录走 OAuth,不接入按量计费的 OpenAI Platform API。

Q: 已经装了 Codex CLI,能复用登录态吗?

A: 不能互相复用。本插件独立存储凭证于 $DSH_HOME/.openai-codex-auth.json,绝不读取或修改 ~/.codex/auth.json,两套存储互不干扰,避免双方争抢 refresh token。

Q: 怎样在 Web 之外登录或检查状态?

A: 用插件自带的 CLI:dsh plugin --profile web exec dsh-openai-codex login(加 --device-code 走设备码),status 看登录态、logout 清凭证、doctor --json 输出脱敏诊断。

Q: 模型选择器能精简显示哪些 Codex 模型吗?

A: 可以。在「设置 → OpenAI Codex」用模型复选框选择需要展示的项,修改即时持久化并刷新 Web/TUI 的模型目录;或在 profile patch 给 llm-openai-codex 传 models 列表做初始子集。隐藏模型已保存在会话或被显式指定时仍可解析。

Q: 图片输入支持哪些来源?

A: 本地路径走 Harness 现有文件系统;HTTP(S) URL 由本插件扩展 read_image 后支持,自动拒绝内嵌凭据、本地/私网/特殊网络目标,并对每次跳转固定到已验证公网地址。Web 输入框可粘贴或拖拽图片,PNG/JPEG/WebP/GIF 均在 dsh 附件限制内可用;只有声明支持视觉的模型才会接收图片。

Q: 凭证存在哪里?浏览器能看到吗?

A: 写入 $DSH_HOME/.openai-codex-auth.json(默认 ~/.dsh),POSIX 系统强制 0o600、跨 dsh 进程加锁刷新;浏览器只能拿到脱敏账号、登录状态、过期时间和额度条,原始 token 不会下发。

Q: 卸载会删掉登录凭证吗?

A: 不会。卸载 bundle 仅移除 DSH 端集成,需在账号页面或运行 dsh-openai-codex logout 才会删除本地凭据文件。

上手难度

入门 — 仅需在设置面板点击一次「使用 ChatGPT 登录」并完成浏览器授权;进阶用户可通过 profile patch 调整模型/搜索配置或在 TUI 用 /codex set 切换实验功能,不需要修改代码。

已知问题与限制

  • 搜索端点是 Codex 独立协议而非公开 OpenAI Platform API,兼容性取决于固定版本的 Codex / pi-ai 实现(README.md:141)
  • Codex 端点不执行普通 Responses 的 max_output_tokens,压缩可工作但配置的摘要上限无法在服务端落实(README.md:139 / src/responses.ts:330-360)
  • ChatGPT 套餐资格、模型权限、配额与后端行为由 OpenAI 控制,可能随时变化(README.md:138)
  • 文件系统、shell、skills、MCP、subagents、权限、附件、压缩与 web_search 工具本体仍来自当前 DSH profile,本插件不接管这些面(README.md:140)
  • WebSocket 上下文复用与原生 Responses 压缩两个开关默认关闭,开启后任一连接中断、Fork、压缩或进程重启都会自动回退到发送完整上下文(README.md:118-119)
  • 远程 Web origin 需在 DSH 主机执行 trust-origin <origin> 才能完成 OAuth 回调;allowlist 按完整 origin 精确匹配(src/auth-routes.ts:43-53 / README.md:33)
  • 远端主机环境下浏览器状态接口返回 remote-web-origin-not-trusted 状态,账号页面会显示需要复制执行的具体授权命令(README.md:33 / src/auth-routes.ts:53)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Yan-Zero/dsh-codex)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录