Skip to content

patch-cc 0.2.0

Choose a tag to compare

@anfreire anfreire released this 25 Jul 19:56
· 37 commits to main since this release

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 Sol rather than a raw id, the /model rows read Sol — GPT 5.6 Sol with 272k context from codex like their neighbours, and /advisor sol just works.
  • Shortcuts follow the convention, not a list. sol, terra, luna resolve to the newest model in that family exactly the way opus resolves to the latest Opus — derived from the ids you picked, so a gpt-5.7-sol released 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 status names exactly what is registered and codex serve finds 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 claude wrapper on PATH can'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.md is 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 / pip

Full changelog: v0.1.4...v0.2.0