*真实运行截图:生成 1254 × 1254 PNG,自动保存到工作区,提供下载入口,并正常完成后续回复。设置页和图片卡片同时支持中文与英文。*
## 你可以做什么
| 功能 | 在 DSH 中的体验 |
| --- | --- |
| **编码对话** | `openai-codex` 模型路由,支持流式回复与图片上下文。 |
| **账号与额度** | ChatGPT 登录、导入 CLI 登录、取消、退出,以及服务返回的套餐和额度窗口。 |
| **文生图** | `imagegen` 工具、图片预览、尺寸、下载和工作区保存状态。 |
| **参考图编辑** | 使用工作区图片或最近的图片附件进行编辑。 |
| **网页搜索** | Codex 搜索服务,支持 cached、indexed 和 live 模式。 |
| **原生设置页** | 独立 Codex 页面和 Plugins 紧凑卡片,适配浅深色主题与中英文。 |
## 快速开始
需要具备 0.1.5 适配器接口的当前 DSH,以及 Node.js 22.19+ 或 24+。
```bash
dsh plugin --profile web add dsh-codex-adapter@latest
dsh web
```
1. 打开 **设置 → Codex**,使用 ChatGPT 登录,或导入已有的 Codex CLI 登录。
2. 在对话的模型选择器中选择 **Codex** 下的模型。
3. 开始对话,或直接描述想生成的图片。
如果已经安装 `dsh-codex`,先移除它再安装本适配器:两个包使用相同的 `openai-codex` 路由。
```bash
dsh plugin --profile web remove dsh-codex
```
## 图片生成
在对话中试试:
> 生成一张窗边橘猫的水彩插画,旁边有小盆绿植,午后暖光,无文字。保存为 window-cat.png。
图片卡片会显示预览、尺寸、文件大小、下载按钮和保存状态。DSH 可能自动折叠已完成的工具调用;展开工具组即可再次查看图片。
编辑图片时,向 `imagegen` 提供 `referenced_image_paths` 或 `num_last_images_to_include`。每次选择一种参考方式,最多使用五张图片。
生成结果会保留为持久附件,后续对话可以继续看图。本地保存遵守工作区权限、取消信号和文件覆盖保护。远程文件系统需要提供二进制写入接口才能保存;不支持时仍可查看和下载图片附件。
## 设置面板
- **账号:** 浏览器或设备登录、手动回调兜底、取消、导入 CLI 登录和退出;授权尝试十分钟后超时。
- **额度:** 显示服务返回的套餐、剩余额度、重置时间和余额。缺失数据保持未知,额度查询失败不会导致退出登录。
- **功能:** 图片生成与编辑、网页搜索和搜索模式;保存后对后续请求生效。
## 网页搜索
先在 **设置 → Codex** 开启网页搜索。安装了多个搜索服务时,在 profile patch 中明确选择 Codex:
```yaml
# ~/.dsh/profiles/web/cordis.patch.yml
- id: web
config:
searchProvider: openai-codex
fetchProvider: http
```
也可以设置 `DSH_WEB_SEARCH_PROVIDER=openai-codex`。本插件提供搜索,页面抓取仍由 DSH 配置的 fetch provider 负责。
## 凭证与兼容性
登录状态使用 DSH 凭证服务。独立 CLI 凭证文档可以初始化空记录,后续刷新由共享凭证写入器负责。退出会同时清理两处,避免旧文件让账号重新登录。
```bash
dsh plugin --profile web exec dsh-codex-adapter status
dsh plugin --profile web exec dsh-codex-adapter import
```
`status` 只打印账号元数据,不打印 token。CLI 还支持 `login`、`logout` 和指定路径导入。存储位置与高级设置见[配置和授权说明](docs/configuration.zh.md)。
适配器遵循当前 `PiAiAdapter` 接口,补齐模型错误映射和图片附件解析;不包含其他 bundle 的 fast mode、原生压缩或 `/codex` 终端命令。
## 实现与致谢
认证基于 [pi-ai](https://github.com/earendil-works/pi/tree/main/packages/ai) 的 `openaiCodexProvider`,认证流程与设置 UI 参考 [Yan-Zero/dsh-codex](https://github.com/Yan-Zero/dsh-codex)。运行时由 pi-ai 提供模型通信、OAuth 登录和凭证刷新,DSH 的 `PiAiAdapter` 负责将 provider 接入宿主。
**图像生成/编辑与 ChatGPT 内置网页搜索的功能接入由本项目实现。** 适配器直接调用 ChatGPT Codex 后端的图片和搜索接口,复用 pi-ai 管理的认证凭证,并将结果接入 DSH 的工具、附件和搜索服务。Provider 的图片输入能力用于让对话模型接收图片;图像生成使用本适配器单独实现的 `imagegen` 客户端。
用于保存生成图片的本地二进制写入兼容代码改编自 dsh-codex 0.2.9,保留其 [Apache-2.0 许可证](lib/licenses/dsh-codex-Apache-2.0.txt)。本包其余部分采用 MIT 许可证。
## 自动发布
版本标签通过 [GitHub Actions](.github/workflows/release.yml) 和 npm Trusted Publishing 发布。推送与 `package.json` 版本一致的 `v<版本号>` 标签后,流程会执行干净安装、完整检查并发布到 `latest`。标签不匹配会停止,已经存在的不可变版本会跳过;发布使用 GitHub OIDC,不保存长期 npm 发布 token。
首个 npm 版本需要交互式创建,后续版本使用绑定到 `baixianger/dsh-codex-adapter` 仓库和 `release.yml` 的信任关系。
## 开发与反馈
```bash
npm ci
npm run check
```
[提交问题](https://github.com/baixianger/dsh-codex-adapter/issues) · [版本记录](RELEASES.md) · [MIT 许可证](LICENSE)