You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you use two coding agents, the split is usually the same shape: one you trust to figure out what should happen, one you trust to type it. The problem is there's no good way to move a plan from the first into the second. This post closes that gap.
Why the hand-off is hard
A plan produced in chat is a message in a conversation. Copy it into another agent and it loses everything that made it worth reviewing:
the research context that produced it
which parts you agreed with, which you argued about
which version this is, and what changed since the one before
the fact that you approved this text, not a later revision
The second agent starts from a wall of text with no history, and you re-explain what you already settled. Most people give up and build in whichever agent planned — even when it's the wrong one for the job.
What makes it work: the plan is a file
PlanX stores the plan outside both agents, in ~/.planx, under a plan id and a version number. Because the plan isn't inside a conversation only one agent can see, the hand-off becomes just: <plan-id> v<n>.
The receiving agent needs nothing but the PlanX skill. It reads the stored version and its comments, and starts.
The loop, across two agents
1. Plan in Claude Code.
/planx add rate limiting to the public API
It exits plan mode, asks what it needs to, reads the repo, writes the plan, captures it as v1 — recording its own session id — and stops.
Press s, pick Revise plan in the session that wrote it. PlanX resumes the exact Claude Code session, with the repo research still loaded — something copy-paste can't do.
It replays the launch flags too. A tab started with --model opus --add-dir ../shared comes back with both, printed before anything runs, so what was granted is visible on the scrollback above the agent's first frame.
4. Build in Codex.
When v2 is right, s again and pick an execute hand-off — or copy the invocation into a Codex session that's already running. PlanX gives you the right sigil for the agent you're pasting into:
$planx execute <plan-id> v2
Codex reads the stored version and every comment still open on it. It never saw the Claude Code conversation and doesn't need to.
/ and $
Agent
Type
Claude Code
/planx <task>
Codex
$planx <task>
That's not a PlanX choice — it's how each agent spells a skill invocation. PlanX uses the right one whenever it composes a command for you. See Planning with Codex.
Any two agents, in any order
Nothing here is specific to this pair:
reverse it — Codex plans, Claude Code builds — and it works the same way
use an agent PlanX has never heard of and it still works, as long as the command takes a trailing prompt
planx defaults
Set one command to revise and another to execute, and the review offers them beside the built-in routes. See Custom agents.
Getting back in
Days later: planx, → to the versions, ctrl+r on the green one. PlanX starts that session back up with the same flags, in the plan's own directory, and sends it no prompt — the first thing it hears is whatever you type.
Everything else PlanX does — versions, diffs, line comments — makes reviewing a plan better. This makes something possible that wasn't: the moment a plan stops being a message and becomes a file with a version number, "which agent planned this" and "which agent builds it" become separate questions. You get to answer them independently, and change your mind on the second one without redoing the first.
Install
npm install --global @thisisnsh/planx
Installs the CLI and writes the skill into whichever of Claude Code and Codex are already on the machine. It won't create ~/.codex on a machine with no Codex — install the agent first, then run planx add-skills.
Start a new session in each afterward.
MIT, nothing hosted, plans are local files. If the cross-agent hand-off is useful to you, a star helps.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Plan with Claude Code, build with Codex
If you use two coding agents, the split is usually the same shape: one you trust to figure out what should happen, one you trust to type it. The problem is there's no good way to move a plan from the first into the second. This post closes that gap.
Why the hand-off is hard
A plan produced in chat is a message in a conversation. Copy it into another agent and it loses everything that made it worth reviewing:
The second agent starts from a wall of text with no history, and you re-explain what you already settled. Most people give up and build in whichever agent planned — even when it's the wrong one for the job.
What makes it work: the plan is a file
PlanX stores the plan outside both agents, in
~/.planx, under a plan id and a version number. Because the plan isn't inside a conversation only one agent can see, the hand-off becomes just:<plan-id> v<n>.The receiving agent needs nothing but the PlanX skill. It reads the stored version and its comments, and starts.
The loop, across two agents
1. Plan in Claude Code.
It exits plan mode, asks what it needs to, reads the repo, writes the plan, captures it as
v1— recording its own session id — and stops.2. Review it in the terminal.
spacefolds a sectionvthenfcomments on exact lineserewrites a lineSee Reviewing.
3. Revise in the agent that wrote it.
Press
s, pick Revise plan in the session that wrote it. PlanX resumes the exact Claude Code session, with the repo research still loaded — something copy-paste can't do.It replays the launch flags too. A tab started with
--model opus --add-dir ../sharedcomes back with both, printed before anything runs, so what was granted is visible on the scrollback above the agent's first frame.4. Build in Codex.
When
v2is right,sagain and pick an execute hand-off — or copy the invocation into a Codex session that's already running. PlanX gives you the right sigil for the agent you're pasting into:Codex reads the stored version and every comment still open on it. It never saw the Claude Code conversation and doesn't need to.
/and$/planx <task>$planx <task>That's not a PlanX choice — it's how each agent spells a skill invocation. PlanX uses the right one whenever it composes a command for you. See Planning with Codex.
Any two agents, in any order
Nothing here is specific to this pair:
Set one command to revise and another to execute, and the review offers them beside the built-in routes. See Custom agents.
Getting back in
Days later:
planx,→to the versions,ctrl+ron the green one. PlanX starts that session back up with the same flags, in the plan's own directory, and sends it no prompt — the first thing it hears is whatever you type.See Resuming a build.
Why this is the interesting case
Everything else PlanX does — versions, diffs, line comments — makes reviewing a plan better. This makes something possible that wasn't: the moment a plan stops being a message and becomes a file with a version number, "which agent planned this" and "which agent builds it" become separate questions. You get to answer them independently, and change your mind on the second one without redoing the first.
Install
Installs the CLI and writes the skill into whichever of Claude Code and Codex are already on the machine. It won't create
~/.codexon a machine with no Codex — install the agent first, then runplanx add-skills.Start a new session in each afterward.
MIT, nothing hosted, plans are local files. If the cross-agent hand-off is useful to you, a star helps.
All reactions