codex-with-chatgpt: routing Codex planning through a ChatGPT web subscription
ChatGPT thinks. Codex works. Use ChatGPT as the planning brain while keeping the Codex harness.
At a glance
- What is it?
- A TypeScript bridge that exposes your local workspace to ChatGPT as a read-only MCP server, so planning happens in the ChatGPT web app while Codex keeps the shell. The install is agent-driven, the tunnel is the fragile part, and the licence is MIT.
- Who is it for?
- Adopt it if you already pay for ChatGPT Plus or Pro, you run Codex against a local checkout, and you accept that a Cloudflare tunnel sits between your source tree and the web app. Do not adopt it if you work in a regulated repo where any outbound read path needs sign-off, or if you want a stable endpoint without owning a domain on Cloudflare.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 3 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The idle-subscription problem this addresses
The README states the premise directly: a ChatGPT Plus or Pro web subscription sits underused while the coding agent burns API or Codex tokens on planning and review. The project moves that thinking to the subscription you already pay for and leaves Codex holding execution. That is a cost argument, not a capability argument. Nothing here claims ChatGPT plans better than Codex does; the claim is that you are already paying for one of the two and not the other.
The target user is narrower than the pitch. It is someone running Codex locally, with a paid ChatGPT web account, who is willing to let an agent perform the install. The README's one-paste block is explicitly written for people who do not know git, Node, or terminals, and it instructs Codex to install Homebrew or winget dependencies, clone the repo, build it, copy a Skill file, and run first-time setup without explaining MCP or OAuth to the user. That is a deliberate design stance: the interface is a sentence typed to your coding agent, not a CLI you learn.
Control plane and data plane are separate paths
The architecture diagram in the README splits traffic in two. The control plane is Computer Use: Codex and ChatGPT exchange small structured [C2C] state messages, described as under 1 KB, following a sequence the README lists as INIT, PLAN, EXECUTED, REVIEW. The data plane is MCP, and it is the only path that touches your files.
The C2C Bridge sits in the middle. It is a loopback-only HTTP server that speaks read-only MCP, handles OAuth 2.1 with a one-time pairing code, and manages a Cloudflare Quick Tunnel. The read-only qualifier appears twice in the material, once in the problem statement and once in the diagram, which suggests it is enforced at the tool surface rather than by convention. The README's framing is that the repository is never uploaded and ChatGPT reads exactly the lines it needs on demand. The practical consequence is that ChatGPT's view of your code is request-driven. It sees what it asks for, not a snapshot. Whether that is a privacy win depends on what it asks for, and the material does not describe any path filter or allowlist.
Installing it means handing the job to Codex
The manual path is three steps. Copy the skill directory to ~/.codex/skills/codex-with-chatgpt/. Tell Codex "Set up Codex with ChatGPT." Then use Codex normally with a prompt like "Use Codex with ChatGPT to implement XXX." The automated path replaces step one and two with a paragraph pasted into Codex, which walks through a numbered sequence: check for git and Node.js >= 20, install cloudflared, clone into ~/codex-with-chatgpt, run corepack pnpm install and corepack pnpm build, copy skill/SKILL.md to ~/.codex/skills/codex-with-chatgpt/SKILL.md, and edit the line reading "The codex-with-chatgpt checkout lives at:" so it points at the real clone path. That path edit is the step most likely to be skipped, and it is the one that tells the Skill where its own code lives.
First-time setup runs c2c setup, which opens a built-in browser to configure the ChatGPT connector and enter a pairing code. The README is emphatic that this must be the built-in browser and never a third-party one. Expect to be interrupted for ChatGPT or Cloudflare logins, CAPTCHAs, or 2FA, one action at a time. Success looks like a fixed checklist: project detected, workspace bridge started, secure connection established, ChatGPT connected, file read test passed.
The temporary hostname is the weak point
By default the bridge is published through a Cloudflare Quick Tunnel, which gives you a temporary URL. The README is honest about what that costs: the address changes when the bridge restarts, and Codex repairs the ChatGPT side by deleting that workspace's connector and adding it again. So every restart is a delete-and-recreate cycle on a remote service.
The escape hatch is a stable hostname such as c2c-<project>.your-domain.com, available if you have a Cloudflare account and a domain already on Cloudflare. First-time setup, and then the next coding session once, asks whether you want it. Choosing it opens a browser for Cloudflare authorization. Skip it, or fail the login, and you stay on the temporary address with the same features and a slower repair. If you restart the bridge often, the stable hostname is the difference between a working connector and a recurring repair loop. If you do not own a domain on Cloudflare, that option is simply closed to you, and the README does not offer a third path.
Workspace setup has two modes, and old workspaces stay behind
A new workspace prompts you once to create a ChatGPT Project, described as a collection, with project-only memory, named after the workspace. If the sidebar has no Projects row, the README tells you to hover Chats, open the ... menu, and choose Organize by project. Codex then stores that collection link and starts chats from that page.
Existing workspaces that already have a C2C chat keep the older one-conversation style until you explicitly ask to switch. That is a migration seam. Two users on the same version can be running structurally different session models, and the README does not say whether the one-conversation path will be removed. The project-only memory setting is worth noting on its own: it scopes what ChatGPT carries between sessions for that collection, which is the closest thing here to a boundary control.
Where the design stops short
Read-only is the whole safety story, and it is a narrow one. The bridge controls what ChatGPT can call, not what Codex does with the answer. A plan generated in the web app still lands in a harness with shell access, tests, and git. The README's diagram shows Codex holding edit and git on the local workspace, so the trust boundary is really between ChatGPT and the bridge, not between ChatGPT and your repository.
The material also does not describe how the pairing code is generated, how long it lives, or whether a connector can be revoked from the Codex side rather than by deleting it in ChatGPT. Credentials are said to stay in the OS app state directory rather than the project, which is the right default, but the README does not name the directory. There is no stated rate limit on MCP reads. None of this is disqualifying for a personal checkout. All of it matters if you point the bridge at a repository with secrets in it, because a read tool that answers any path request will answer the wrong one too.
Maintenance, updates, and the MIT licence
The Skill checks GitHub once a day and updates itself when a new version is released, per the README, and you can also say "Update Codex with ChatGPT" to trigger it. The README's own troubleshooting advice is to run that update first, which tells you the maintainers expect version drift to be the common failure. The release history supports a fast-moving project: v0.1.0 on 30 August 2026, v0.1.1 on 31 August, v0.1.2 on 4 September, with the last push on 9 September. Three releases in under a week, then a gap. Treat the auto-update as a real dependency, because it changes code you did not review.
The licence is MIT, which permits commercial use, modification, and redistribution with the copyright notice and permission text preserved. That is a permissive grant, not a warranty, and it says nothing about the terms of the ChatGPT subscription or the Cloudflare tunnel you route through. Whether using a web subscription this way fits your provider agreement is a question for you and, if it matters, a lawyer. The project itself ships no legal position on it.
Editorial conclusion
Adopt it if you already pay for ChatGPT Plus or Pro, you run Codex against a local checkout, and you accept that a Cloudflare tunnel sits between your source tree and the web app. Do not adopt it if you work in a regulated repo where any outbound read path needs sign-off, or if you want a stable endpoint without owning a domain on Cloudflare. Before trusting it, verify three things: that the MCP tools your ChatGPT session sees are read-only, that credentials really land in the OS app state directory rather than the project folder, and that the file-read test in the setup checklist passes against a file you know the contents of.
Community notes