前言¶
在 DSH 里让智能体出图,常见做法是配置 OpenAI API Key,走 api.openai.com 上的 gpt-image-2。若你本身已为 ChatGPT 订阅付费,同一模型可能形成「订阅 + API 按量」的双重计费。Codex CLI 走的是 ChatGPT 侧的后端路由;dsh-openai-codex-image(维护者 kkczx5428,社区分类「趣味换装」)把同一路径封装成 DSH 插件:用 ChatGPT 账号(Codex OAuth)鉴权,经订阅额度调用 gpt-image-2,而不是依赖付费 API Key。
下面介绍插件定位、能力、安装方式与典型用法。事实以 GitHub 仓库 README 为准;这是非官方的 Codex 端点集成,与 OpenAI 无隶属关系,端点可能变更,使用前需符合你账号适用的条款。
这是什么¶
dsh-openai-codex-image 是 DeepSeek Harness(DSH)插件 bundle,npm 包名 openai-codex-image,当前版本 1.1.0,许可证 MIT。它向智能体暴露 generate_image 与 openai_account 工具,并在 DSH 设置中提供 ChatGPT Image 页面,用于查看授权状态、设备码登录与登出。
请求形态与 Codex CLI 一致:向 https://chatgpt.com/backend-api/codex/responses 发起 POST,携带 image_generation 工具(默认模型 gpt-image-2),并使用 ChatGPT OAuth access token 与 chatgpt_account_id 鉴权。
核心功能¶
generate_image:根据 prompt 在工作区生成 PNG;若当前对话模型支持图像输入,结果可在聊天中内联展示。openai_account:查询状态、设备码登录(login_start/login_poll)、登出(仅删除插件自有凭证,不改动 Codex CLI 文件)。- Settings → ChatGPT Image:展示授权来源、账号、套餐、token 过期时间;同源 API 路由
/api/openai-codex-image/*不向页面返回 token(账号 id 会脱敏)。 - 鉴权解析顺序:优先 DSH 凭证库中插件写入的记录;否则只读本地 Codex CLI 登录文件
~/.codex/auth.json(auth_mode: "chatgpt")。插件自有 OAuth 记录在过期前约 60 秒自动刷新并写回同一凭证记录。 - 依赖:仅使用 Node 内置模块与 DSH 上下文服务,不硬依赖
@deepseek-ai/*,可作为本地 bundle 安装。
环境要求¶
- DSH Desktop,或具备
credentials、attachments、workingDirectory、llm等服务的 DSH profile。 - Node.js
^22.19.0 || >=24.0.0。 - 可使用 Codex 的 ChatGPT 账号,已通过 Codex CLI(
codex login)或本插件 设备码流程 登录。
安装与启用¶
插件以 bundle 形式链接进当前 profile。在 DSH 会话中让智能体执行(target 为本机上该插件目录的绝对路径;源码见 GitHub):
plugin_manager(action="install_bundle", target="<absolute path to the cloned directory>")
install_bundle 会把目录链入活跃 profile 并写入 bundle 列表。修改插件源码后需重启 DSH;新装 bundle 一般立即生效。Client 端(设置页)在宿主启动时加载,安装或升级后需重启 DSH Desktop 才能看到新的 ChatGPT Image 页。
卸载:
plugin_manager(action="remove_bundle", target="openai-codex-image")
典型用法¶
生成图片¶
在会话中调用工具,例如:
generate_image(prompt="A red panda with round glasses using a glowing laptop, cozy study, 3/4 view")
generate_image(prompt="...", size="1536x1024", quality="low", output_dir="assets")
| 参数 | 必填 | 说明 |
|---|---|---|
prompt |
是 | 画面描述;中英文均可 |
size |
否 | 默认 1024x1024;可选 1536x1024、1024x1536、2048x2048、2048x1152、3840x2160、2160x3840 |
quality |
否 | auto / low / medium / high |
model |
否 | 图像模型,默认 gpt-image-2 |
host_model |
否 | 承载 image_generation 工具的对话模型;默认来自配置 |
output_dir |
否 | 相对工作区或绝对路径;默认 generated_images |
file_name |
否 | 可选文件名(自动补 .png,会去掉路径成分) |
返回包含 path、实际 width/height、bytes、model、请求的 size、可选 revised_prompt;支持图像输入的模型还会附带 image attachment。后端会把请求尺寸对齐到支持的宽高比,返回尺寸以实际为准。
账号授权(设备码)¶
openai_account(action="login_start")→ 打开返回的 URL(https://auth.openai.com/codex/device),输入 8 位设备码;- 在浏览器完成 ChatGPT 登录;
openai_account(action="login_poll")→ 状态为authorized;- 之后
generate_image使用该授权。
也可在 Settings → ChatGPT Image 完成同等流程。status 可查看来源、账号、套餐与过期时间;logout 仅清除插件凭证。
配置¶
可选项写在 bundle 的 cordis.patch.yml 行配置中:
| 键 | 默认值 | 说明 |
|---|---|---|
authFile |
~/.codex/auth.json |
Codex CLI 登录文件 |
hostModel |
gpt-6.1-sol |
承载图像工具的对话模型 |
imageModel |
gpt-image-2 |
图像模型 |
defaultSize |
1024x1024 |
默认尺寸 |
outputDir |
generated_images |
默认输出目录 |
timeoutMs |
240000 |
单次请求超时(可设 30s–600s) |
适用场景与注意¶
适合已订阅 ChatGPT、希望在 DSH 智能体工作流里直接出图、且希望走订阅额度而非单独购买 API 额度的开发者。README 中的 Demo 图(如小熊猫、灯塔)均通过订阅账号的 generate_image 生成,可作为效果参考。
安全与合规:插件以当前 DSH 进程权限运行,会读取凭证与(可选)~/.codex/auth.json;安装前应自行审阅 源码与 MIT 许可证,确认符合组织与个人策略。
常见问题(摘自 README Troubleshooting):
| 现象 | 含义 / 处理 |
|---|---|
HTTP 400 ... model is not supported when using Codex with a ChatGPT account |
当前 host_model 对你的账号不可用;可换 host_model(如 gpt-6.1-sol、gpt-6-sol、gpt-5.6-sol,可参考 Codex 的 models_cache.json) |
HTTP 401/403 |
授权无效或过期;重新设备码登录 |
HTTP 429 |
速率或配额限制;等待订阅配额重置 |
| 超时 | 提高 timeoutMs;常见生成约 20–60 秒,大尺寸更久 |
| 聊天内不显示图 | 当前模型不支持图像输入;PNG 仍会写入 path |
| 安装后没有设置页 | 重启 DSH Desktop |
DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-openai-codex-image 把 ChatGPT(Codex OAuth)登录与 gpt-image-2 生图收进 DSH 工具与设置页,让订阅额度覆盖智能体侧出图需求。进一步细节、变更记录与 Issue 见 GitHub:kkczx5428/dsh-openai-codex-image;目录入口:SkillHub 插件页。