大模型
github.com ·
@XiaoDuoYa
Codex with ChatGPT v0.1.2 发布:增强 MCP 结构化输出与 Windows 稳定性
该版本主要提升可靠性和互操作性:为只读 MCP 工具提供结构化输出模式,强化数据验证,改进 Windows 下 Quick Tunnel 启动逻辑,并隐藏后台进程窗口。核心架构不变:ChatGPT 负责规划,Codex 负责执行,无需 API 密钥或反向代理。
AI推荐理由 官方发布说明,详细列出改进点,但属于小版本更新,信息密度中等,对开发者有一定参考价值。
70
正文
Official release notes (https://github.com/XiaoDuoYa/codex-with-chatgpt/releases/tag/v0.1.2)
Codex with ChatGPT v0.1.2
ChatGPT thinks. Codex works.
v0.1.2 is a reliability and interoperability update focused on making the bridge safer to start, quieter on Windows, and easier for MCP clients to consume correctly.
The core model remains unchanged: ChatGPT plans and reviews; Codex owns execution. No API key. No reverse proxy. No cookies or session extraction.
✨ Highlights
- Structured MCP outputs
- Read-only MCP tools now advertise structured output schemas
- Successful calls return matching "structuredContent" while keeping the existing text JSON content for compatibility
- Workspace, file, search, Git, test status, execution summary, and execution output results are covered
- This makes C2C easier and safer for MCP clients to consume without guessing response shapes
- Structured-output hardening
- "c2c record" now validates numeric arguments before saving them
- Execution records are validated on write
- Malformed historical records are skipped safely on read instead of breaking otherwise read-only MCP calls
- "test_status" and "execution_summary" now stay aligned with their advertised schemas
- Workspace and package metadata returned by "workspace_info" are sanitized before entering structured output
- "git_diff" documentation now uses the real pagination fields: "hasMore" and "nextOffset"
- Safer Windows Quick Tunnel startup
- Quick Tunnel startup now fails closed instead of reporting success too early
- Startup completes only after the public "/health" endpoint identifies a healthy C2C Bridge
- Invalid or reserved "api.trycloudflare.com" URLs are rejected
- Early "cloudflared" exits, invalid health responses, timeouts, and stopped startup are handled as failures
- "C2C_CLOUDFLARED_PATH" can explicitly select a custom "cloudflared" executable
- A quieter Windows experience
- Bridge daemon processes no longer open unnecessary console windows
- Named Tunnel processes no longer flash console windows
- Quick Tunnel processes are also hidden
- C2C can now stay in the background without repeatedly popping terminal windows during normal Windows use
🛠 Reliability & UX
- "doctor" no longer assumes an inconclusive local bridge probe means the bridge process is dead
- If the process still exists, C2C will not start a second bridge or unnecessarily ask ChatGPT to delete the connector
- Quick Tunnel URL discovery and public-health verification are stricter
- Windows tunnel process handling is more predictable
- Several setup and troubleshooting wording issues were cleaned up
Idea for the bridge-probe reliability improvement from @AtlaxTech (#43).
Windows background-process improvements include contributions from @moonjun (#164).
🔐 Safety & correctness
- Structured MCP results now have explicit schemas instead of relying only on text conventions
- Malformed persisted execution data cannot silently violate the MCP output contract
- Invalid numeric execution metadata is rejected before persistence
- Unexpected values in ".c2c.json" and "package.json" are filtered before being exposed through "workspace_info"
- Quick Tunnel startup requires confirmation from the actual public C2C "/health" endpoint
- No new MCP permissions were introduced by these changes
- No reverse proxy, cookie, session-extraction, or credential-sharing behavior was added
🧪 Tests
Regression coverage was expanded for:
- structured MCP output schemas
- malformed persisted execution records
- invalid "c2c record" CLI arguments
- workspace metadata sanitization
- bridge runtime detection
- Windows Quick Tunnel startup and failure handling
The structured-output hardening follow-up reports 164 tests passed, along with successful typecheck, build, and "git diff --check".
📚 Documentation
- Fixed "login" / "log in" wording in the Skill and README
- Updated Quick Tunnel troubleshooting guidance
- Corrected "git_diff" pagination documentation to use "hasMore" / "nextOffset"
- Documentation now better reflects the stricter bridge and tunnel behavior
🙌 Contributors
Thanks to everyone who reported issues, tested C2C across different environments, and contributed fixes or ideas.
Special thanks to:
- @AtlaxTech — bridge-process diagnosis / reliability idea
- @moonjun — Windows background-process improvements
- @peak-xiong — structured MCP output schemas and hardening
- Contributors behind the documentation fixes and Windows tunnel testing
---
中文
这是 v0.1.2,重点是把 C2C 的稳定性、Windows 使用体验和 MCP 输出规范继续打磨扎实。
核心理念仍然没变:
«ChatGPT 负责思考,Codex 负责干活。»
这版重点
- MCP 正式加入 structured output schema
- 只读 MCP 工具现在明确告诉客户端自己会返回什么格式
- 同时保留原来的 JSON 文本输出,兼容已有使用方式
- workspace、文件、搜索、Git、测试状态、execution summary / output 等结果都覆盖到了
- structured output 二次加固
- "c2c record" 的数字输入会先检查再保存
- execution record 写入前验证
- 历史脏数据不会再把只读 MCP 工具直接搞崩,而是安全跳过
- "test_status"、"execution_summary" 与 schema 保持一致
- "workspace_info" 会过滤异常的项目配置和 package metadata
- "git_diff" 分页说明修正为实际使用的 "hasMore" / "nextOffset"
- Windows Quick Tunnel 更可靠
- 不再 tunnel 一启动就默认“成功”
- 必须真正从公网 "/health" 确认这是正常运行的 C2C Bridge 才算启动完成
- 拒绝错误的 "api.trycloudflare.com" 地址
- cloudflared 提前退出、health 异常、启动超时等都会正确失败
- 支持用 "C2C_CLOUDFLARED_PATH" 指定 cloudflared
- Windows 后台终于更安静
- Bridge daemon 不再弹黑色控制台窗口
- Named Tunnel 不再弹
- Quick Tunnel 也不再弹
- 正常使用 C2C 时后台进程不会疯狂闪终端窗口
- doctor 更聪明
- 本地 probe 一时没有得到明确结果,不再直接认定 bridge 死了
- 只要原进程还存在,就不会再启动第二个 bridge
- 也不会因为一次模糊检测就让 ChatGPT 去删 connector
安全与正确性
这次没有扩大 MCP 权限,也没有加入 reverse proxy、cookie、session 提取之类的新行为。
主要是在原来的架构上继续收紧:
输入更严格、输出更确定、脏数据更难把系统搞崩、Tunnel 启动成功的判断更可信。
另外补了更多 regression tests;最新 structured-output 加固相关测试达到 164 tests passed。
感谢 @AtlaxTech、@moonjun、@peak-xiong 以及所有提交 Issue、测试 Windows / Tunnel 场景、修正文档和贡献代码的人。❤️
最重要的一点仍然是:
能让 Agent 自己完成的事情,就不要让用户完成。
Repository README (current repository documentation, not release changes)
# Codex with ChatGPT
> ChatGPT thinks. Codex works.
> ChatGPT 负责思考,Codex 负责干活。
> [!IMPORTANT]
> **遇到问题?** 请先向 Codex 发送 **「更新 Codex with ChatGPT」** 并重试。更新到最新版本可以解决大多数已知问题。
> **Having trouble?** First ask Codex to **“Update Codex with ChatGPT”** and try again. Updating to the latest version resolves most known issues.
## The problem · 解决什么问题
**中文** — ChatGPT 付费订阅的网页版额度大量闲置,Codex 却在消耗紧张的
API 额度做规划和 Review。本项目把"思考"交给你已付费的网页版 ChatGPT,
Codex 只负责执行。不用 API Key、不搞逆向代理——官方网页 + 只读 MCP 桥接。
**EN** — ChatGPT Plus/Pro web quota sits idle while your coding agent burns
scarce API/Codex tokens on planning and review. This project moves the
thinking to the subscription you already pay for; Codex only executes.
No API keys, no reverse proxy — official web UI plus a read-only MCP bridge.
## What it is · 这是什么
**中文** — 把 ChatGPT 网页版变成 Codex 编码会话的"规划与审查大脑",执行权
完全保留在 Codex 手里。你的仓库永远不会被上传:ChatGPT 通过一条安全的、
OAuth 保护的**只读** MCP 连接,按需读取当前工作区里它真正需要的那几行代码。
**EN** — Use the ChatGPT web app as the planning and review brain for your
Codex coding sessions, while Codex keeps full ownership of execution. Your
repository is never uploaded: ChatGPT reads exactly the lines it needs through
a secure, OAuth-protected, **read-only** MCP connection to your current
workspace.
Detailed docs below are in English · 详细中文文档见 **[README.zh-CN.md](README.zh-CN.md)**
## One-paste install · 一段话安装
**中文** — 不懂 git、Node、终端?完全不需要懂。把下面这段话原样复制给你的
编码 Agent(Codex),然后去倒杯咖啡:
```text
请帮我完整安装并配置 Codex with ChatGPT,全程自动,我是不懂技术的小白,
所有事情你自己做:
1. 环境自检:需要 git 和 Node.js ≥ 20,缺什么就自动安装
(macOS 用 Homebrew,Windows 用 winget),同时安装 cloudflared。
2. 下载:把 https://github.com/XiaoDuoYa/codex-with-chatgpt 克隆到
~/codex-with-chatgpt(已存在就 git pull 更新)。
3. 构建:在该目录里执行 corepack pnpm install 和 corepack pnpm build。
4. 安装 Skill:把仓库里的 skill/SKILL.md 复制到
~/.codex/skills/codex-with-chatgpt/SKILL.md,并把文件中
"The codex-with-chatgpt checkout lives at:" 那一行的路径改成实际克隆路径。
5. 首次配置:按 SKILL.md 里的 first-time setup 流程执行
(运行 c2c setup,用内置浏览器打开 ChatGPT 配置连接器并输入配对码)。
全程只用内置浏览器,禁止打开任何第三方浏览器。
6. 只有遇到需要我登录(ChatGPT / Cloudflare)、验证码或两步验证时才叫我,
而且一次只告诉我一个动作。
7. 完成后给我看 ✓ 清单,并确认文件读取测试通过。我不懂 MCP、OAuth、
Tunnel、端口这些词,不要向我解释;出了问题先自己修。
```
**EN** — Don't know git, Node, or terminals? You don't need to. Copy the
paragraph below, paste it to your coding agent (Codex), and go grab a coffee:
```text
Please install and configure "Codex with ChatGPT" for me, fully automatically.
I am a non-technical user — do everything yourself:
1. Check the environment: git and Node.js >= 20 must be available. Install
anything missing yourself (macOS: Homebrew, Windows: winget). Also install
cloudflared.
2. Download: clone https://github.com/XiaoDuoYa/codex-with-chatgpt into
~/codex-with-chatgpt (if it already exists, git pull to update).
3. Build: inside that folder run `corepack pnpm install` then `corepack pnpm build`.
4. Install the Skill: copy skill/SKILL.md to
~/.codex/skills/codex-with-chatgpt/SKILL.md, and update the line
"The codex-with-chatgpt checkout lives at:" to the actual clone path.
5. First-time setup: follow the SKILL.md "first-time setup" workflow
(run c2c setup, configure the ChatGPT connector in the BUILT-IN browser,
enter the pairing code). Never open a third-party browser.
6. Only interrupt me for logins (ChatGPT / Cloudflare), CAPTCHAs or 2FA —
and give me exactly ONE action at a time.
7. When done, show me the ✓ checklist and confirm the file-read test passed.
I don't know what MCP, OAuth, tunnels or ports are. Don't explain them.
If anything breaks, fix it yourself first.
```
**Updates · 更新** — The Skill checks GitHub once a day and updates itself when a
new version is released; no action needed. You can also say "更新 Codex with ChatGPT"
anytime. / Skill 每天自动检查一次 GitHub,有新版本会自动更新,无需任何操作;
也可以随时对 Codex 说"更新 Codex with ChatGPT"。
---
*The sections below are in English. 以下详细内容为英文,中文完整版见
[README.zh-CN.md](README.zh-CN.md)。*
## Install → Setup → Use (manual)
1. Install the Codex Skill: copy `skill/` to `~/.codex/skills/codex-with-chatgpt/`.
2. Tell Codex: **"Set up Codex with ChatGPT."** (中文: "使用 Codex with ChatGPT 完成首次配置。")
3. Use Codex normally: **"Use Codex with ChatGPT to implement XXX."**
That's the whole manual. You don't need to know what MCP, OAuth, tunnels,
ports or localhost are — Codex configures everything automatically and you
just see:
```
Codex with ChatGPT
✓ Project detected
✓ Workspace Bridge started
✓ Secure connection established
✓ ChatGPT connected
✓ File read test passed
Ready.
```
The only steps that may need you: logging into ChatGPT (and, if you want a
stable hostname, logging into Cloudflare once). A **new** workspace also asks
you to create a ChatGPT Project (collection) once — pick **project-only
memory**, name it after the workspace. If the sidebar has no Projects row,
hover **Chats**, open the … menu, and choose **Organize by project**. Codex
then saves that collection link and starts chats from that page. Existing
workspaces that already have a C2C chat stay on the old one-conversation
style until you ask to switch.
### Optional stable hostname
The default public address is a temporary Cloudflare URL. It changes when the
bridge restarts, and Codex repairs ChatGPT by deleting that workspace's
connector and adding it again.
If you have a Cloudflare account and a domain already on Cloudflare, first-time
setup (and the next coding session, once) will ask whether you want a stable
hostname such as `c2c-.your-domain.com`. That path opens a browser so
you can authorize Cloudflare. After that, the ChatGPT connector keeps working
across restarts. If you skip it, or the login fails, Codex stays on the temporary
address — same features, just a slower repair.
Credentials stay in the OS app state directory, not in the project.
## How it works
```
┌───────────────────────────┐
│ ChatGPT Web │
│ Reason / Plan / Review │
└──────────┬──────────▲─────┘
│ │
MCP │ │ Computer Use
Data Plane │ │ Control Plane ( dist/, exposes the `c2c` bin
pnpm test # vitest: 146 tests (path security, OAuth, pairing, MCP e2e)
c2c setup # bridge + tunnel + pairing code, all in one
c2c sandbox-allow # whitelist the settings dir in Codex (macOS + Windows)
c2c status / doctor / pair / unpair / logs / stop
```
Requirements: Node.js >= 20, git. `cloudflared` for the public connection
(auto-detected; the Skill installs it for you).
Docs: [architecture](docs/architecture.md) · [protocol](docs/protocol.md) ·
[security](docs/security.md) · [troubleshooting](docs/troubleshooting.md)
## Project layout
```
src/
bridge/ loopback HTTP server, port recovery, admin API
mcp/ 9 read-only tools, stateless Streamable HTTP
auth/ OAuth 2.1 (PKCE, DCR, refresh rotation, revocation)
pairing/ one-time pairing codes (CSPRNG, TTL, rate limits)
workspace/ path containment, sensitive-file policy, search, git
tunnel/ TunnelProvider abstraction + Cloudflare Quick/Named Tunnel
execution/ execution records for the review loop
process/ daemon lifecycle
cli/ the c2c CLI
skill/ the Codex Skill (the real UX layer)
tests/ unit + integration tests
docs/ architecture / protocol / security / troubleshooting
```
## Status & disclaimer
V1. Verified end-to-end: bridge, OAuth + pairing, public tunnel, ChatGPT
connector setup, zero-touch first-run experience.
**Unofficial community project. Not affiliated with or endorsed by OpenAI.**
## License
[MIT](LICENSE)