patch-cc 0.2.0
Highlights
Use your ChatGPT/Codex-plan models inside Claude Code. Pick GPT-5.x models in the menu (or with --codex), and they show up in /model, in the subagent picker, and in /advisor — alongside your Claude ones, with /effort driving how hard they think. Only those models' requests are diverted; every Anthropic request stays byte-identical, so your Claude plan is untouched. Nothing extra to install: the gateway is pure Python and ships with patch-cc.
uvx patch-cc codex login # sign in to your ChatGPT/Codex plan
uvx patch-cc # Codex models → pick models → save with `s`
uvx patch-cc codex serve # start the local gateway; keep it running
claude --model sol # shortcut → the newest gpt-5.6-sol- They read as native, not bolted on. Registered models are written into the binary's own model table, so the status line and welcome banner show
GPT 5.6 Solrather than a raw id, the/modelrows readSol — GPT 5.6 Sol with 272k context from codexlike their neighbours, and/advisor soljust works. - Shortcuts follow the convention, not a list.
sol,terra,lunaresolve to the newest model in that family exactly the wayopusresolves to the latest Opus — derived from the ids you picked, so agpt-5.7-solreleased tomorrow needs no update here. - Effort is handled for you. Ask for a level a model doesn't run and the gateway quietly runs the closest one below it, mirroring Claude Code's own clamping — instead of failing the turn.
- Your binary is the record. The chosen models and the gateway port live in the patched binary, so
patch-cc statusnames exactly what is registered andcodex servefinds the right port with nothing to tell it.
Also in this release
- Bytecode is now verified gone on the binary just written — leftover bytecode would run instead of the patched source, silently reverting every patch.
- A broken patch can no longer ship half-applied. The patch set settles as a fixpoint: a patch that misses its expectations is dropped, re-run without it, and never recorded in the manifest.
- Patching refuses to stack on an already-patched binary when no pristine backup exists, rather than corrupting it.
- A
claudewrapper onPATHcan't shadow the real binary any more. - A startup name with an odd character (a newline, a quote) can no longer produce a bundle that doesn't parse.
- CI now covers Python 3.14, and
AGENTS.mdis the entry point for anyone — or anything — changing this repo.
Notes
- The gateway must be running for Codex models (
patch-cc codex serve); every surface that names it says whether it is, so you never learn it from a request that hangs. - After a Claude auto-update, re-bake — the patch reverts with the binary, but the gateway keeps running.
- A diverted request still carries Claude Code's own auth header to the local port; the gateway ignores it and never forwards it, but treat the port as trusted. Details in
docs/PLAYBOOK.md.
Install / upgrade
uvx patch-cc # run without installing
uv tool install patch-cc # or install on PATH
pipx install patch-cc # or via pipx / pipFull changelog: v0.1.4...v0.2.0