Claude Fable 5.1 does the thinking and reads the diff. GPT-6 Astra writes the code and runs the tests. Both run inside one Claude Code session through OpenAI's official Codex plugin, and the whole setup is four commands plus two lines of config.
→OpenAI ships an official plugin for Claude Code. It wraps your local Codex CLI, so Codex reviews, rescues and background jobs show up as slash commands next to everything Claude already does.
→Fable 5.1 landed Sep 1 and GPT-6 Astra landed Sep 3. On Terminal-Bench 4.0 they sit at 55.8% and 57.9%. Two points apart, same $10 in / $50 out API price. I gave them jobs instead of picking one.
→Model choice is a flag. The plugin passes --model straight through, so 'ask Codex to write the tests with gpt-5.6-sol' works mid-session with zero config edits.
“Fable thinks. Astra codes.”
🔒Drop your email, get the cheat sheet
The config, the four install commands, the loop and the cost table as one cheat sheet. Plus every command flag, the prompt recipe I hand Astra, and the three things that bit me.
Join 3,000+ builders already getting this. No spam.
THE EXACT SETUP — 11 STEPS
01
Install the Codex plugin inside Claude Code
Four commands, typed into a Claude Code session. Needs Node 18.18 or newer and a Codex login: a ChatGPT account (Free works for the plugin itself) or an OpenAI API key. The plugin uses the same Codex binary, the same auth and the same repo checkout you'd use running Codex directly.
Signed out? Run !codex login from inside Claude Code. The ! prefix runs it as a shell command. /codex:setup will offer to npm install Codex if it's missing.
02
Make GPT-6 Astra the default Codex model
The plugin reads the same config the Codex CLI reads: ~/.codex/config.toml for user-wide, or .codex/config.toml at the repo root for one project (project configs only load when the project is trusted). I run low effort by default and bump it for test runs. Reasoning effort accepts none, minimal, low, medium, high and xhigh.
# ~/.codex/config.toml
model = "gpt-6-astra"
model_reasoning_effort = "low"
Astra access on ChatGPT Plus is capped inside Codex. Pro ($100 or $200) lifts the cap. In the regular Chat window Plus doesn't get Astra at all.
03
Swap models any time, in plain English
You never have to touch config again. Every rescue accepts --model and --effort, and the plugin's own agent maps plain-English requests onto them. Say 'spark' and it becomes gpt-5.3-codex-spark. Name any concrete model id and it passes straight through. Astra for the hard parts, Sol for the cheap ones, Spark when you want an answer in seconds.
# explicit flag
/codex:rescue --model gpt-5.6-sol --effort medium write the tests for auth.ts
# or just say it
ask Codex to write the tests with gpt-5.6-sol
ask Codex to fix this quickly with spark
04
The split: who does what
Fable 5.1 owns architecture, planning and reading the diff. Anthropic's own framing is a model that fixes root causes, and that's the part I trust it with. GPT-6 Astra owns writing the code and running the tests. OpenAI built it for long-running agentic work, and inside Codex it keeps notes across context windows with earlier windows staying searchable, which is what you want from the model doing the typing.
Job
Model
How it runs
Plan and architecture
Claude Fable 5.1
Claude Code, writes the plan to a file
Build + write tests
GPT-6 Astra
/codex:rescue --background
Read the diff, push back
Claude Fable 5.1
Claude Code reads the result
Fix what got flagged
GPT-6 Astra
/codex:rescue --resume
Pre-ship challenge review
GPT-6 Astra
/codex:adversarial-review --background
05
/codex:review: the read-only second opinion
Runs the same review Codex gives you from its own /review command, on your working tree by default or against a base branch with --base. It's read-only. It never edits a file. It takes no focus text either, which is the point: no steering means no bias. Anything over one or two files, run it in the background and keep working.
/codex:review
/codex:review --base main
/codex:review --background
06
/codex:adversarial-review: steer the challenge
Same targets as /codex:review, but this one takes focus text and is built to break confidence in the change: it questions the approach and the assumptions under it, and reports only material findings with impact and a concrete fix. Also read-only. I run it once before shipping, and once on the plan file before any code exists.
/codex:adversarial-review --background question whether this caching design survives a retry storm
/codex:adversarial-review --base main look for race conditions in the queue worker
07
/codex:rescue: hand Astra the actual work
This is the write-capable one. Rescue delegates a task to Codex through the plugin's codex-rescue subagent: investigate a bug, apply a fix, build a feature, continue a previous thread. Write mode is the default. Add --background for anything multi-step, or your Claude session sits there until Codex finishes. Follow-ups continue the same Codex thread with --resume; --fresh forces a new one. Leave --resume and --fresh off and the plugin asks which you want.
/codex:rescue --background build the endpoint from PLAN.md and write the tests
/codex:rescue --resume apply the top fix from the last run
/codex:rescue --fresh --model gpt-6-astra --effort high investigate the flaky integration test
Plain English works too. 'Ask Codex to redesign the connection pool' routes to the same place.
08
/codex:status, /codex:result, /codex:cancel
Background jobs need a way back. Status shows running and recent Codex jobs for the repo. Result prints the final stored output of a finished job, plus the Codex session id so you can reopen the exact run in the Codex TUI. Cancel kills an active job. Each accepts a task id if you have more than one running.
/codex:status
/codex:result
/codex:cancel task-abc123
# reopen any finished run inside Codex itself
codex resume <session-id>
09
/codex:transfer: move the whole session to Codex
When a debugging conversation in Claude Code gets long and you'd rather Astra finish it natively, transfer converts the current Claude session into a persistent Codex thread and prints the resume command. It uses Codex's external-agent session importer, so you get real visible turns you can continue in the Codex app or terminal. Needs a recent Codex version and plugin 1.0.6 or newer.
/codex:transfer
# then, in a terminal
codex resume <session-id>
Mine was on plugin 1.0.1 and this command didn't exist. Run /plugin update codex@openai-codex if it's missing for you.
10
Prompt Astra like an operator
The plugin ships its own prompting skill for GPT models and the rules are blunt: one task per run, say what done looks like, add a verification loop for anything that edits code, and structure the prompt in XML blocks so Codex has stable landmarks. Follow-ups go to the same thread with --resume and you send only the delta. Tighten the contract before you raise the reasoning effort.
<task>
Write the tests for src/auth.ts. Cover token expiry and refresh.
</task>
<structured_output_contract>
Return: 1. files touched 2. verification performed 3. residual risks
</structured_output_contract>
<default_follow_through_policy>
Default to the low-risk interpretation and keep going. Ask only if a missing detail changes correctness.
</default_follow_through_policy>
<verification_loop>
Run the tests. Fix until green. Do not stop after identifying the issue.
</verification_loop>
<action_safety>
Touch nothing outside the failing path. No unrelated refactors.
</action_safety>
11
What it costs, and the three things that bit me
Same list price on the API. The gap is cache reads and how each subscription meters Astra. My take: run both on subscriptions, save API pricing for agents you ship. Then the gotchas. One: reviews are read-only, Astra only edits through rescue. Two: anything over two files goes --background or your session hangs. Three: /codex:setup --enable-review-gate makes a Stop hook that loops Claude and Codex until one of them clears the review, and OpenAI's own README warns it drains usage limits fast. Leave it off unless you're watching.
Claude Fable 5.1
GPT-6 Astra
API, per 1M tokens in / out
$10 / $50
$10 / $50
Cache read, per 1M
$0.25
$1.00
Subscription
Claude Max $100 or $200
ChatGPT Plus $20 (Astra capped in Codex). Pro $100 or $200
# only if you want the review gate, and only while you're at the keyboard
/codex:setup --enable-review-gate
/codex:setup --disable-review-gate