Six workflows for using Claude and Codex together, ready-made prompts and two skills (handoff and prime) to switch assistants without re-explaining the project.

A free kit by Prompt Advisers (Mark Kashef), MIT license, that accompanies the "Use Both" video. Here it is mirrored by INEMA with this guide in English, Portuguese and Spanish.
One assistant writes the plan or the code; the other critiques the same artifact, read-only. Two rounds at most. Agreement is not proof: the tests decide.
Nine ready-made prompts (plan, review, image, computer use, goal, continuity) and templates for brief, plan, review and handoff.
Two skills that work in Claude Code and in Codex: one writes a snapshot of the project state and the other reads it before acting, without treating old notes as new permission.
Each level solves one kind of work. Start with 1 and 6: they work with any subscription, with nothing to install.
Claude produces plan-v1.md; Codex critiques it read-only, with evidence and severity. Claude reconciles in review.md: accepted, rejected, open.
Only if the session has the tool and you know how it bills. The deliverable is the file saved in the project, not a prompt. Never switch to a paid API on its own.
One builds on a branch; the other reviews the diff with the test results. Bugs and regressions before style. Merge and deploy are your decisions.
Test account, you type the password and MFA, and the assistant stops before sending, paying, publishing or deleting. Never use another model to get around a refusal.
A goal with an observable condition ("these tests pass"), bounded scope and spend. "Stop in two hours" is a request, not a real limit: use a real control.
A dated snapshot in handoff/history/, with handoff/LATEST.md pointing to it. The next assistant reads it, checks the files, summarizes and waits.
The author's starting preferences, recorded in the video. It is an editorial choice, not a measured ranking: test it and keep the route that gives the best evidence on your task.
| Job | First pass | Second pass | Finish line |
|---|---|---|---|
| Planning | Claude / Opus | Codex critiques the assumptions | A plan with scope and acceptance tests |
| Making an image | Image tool available in Codex | Inspect the file in its real context | A usable file, not just the prompt |
| Building a feature | Claude / Opus | Codex reviews the diff | Tests pass and findings resolved |
| Reviewing a document | Either one writes | The other checks facts and requirements | Every required claim has evidence |
| Operating an interface | Authorized computer use | You review consequential actions | The approved state is verified |
| Hard bug | Codex with a bounded goal | Tests and a human checkpoint | Measured success or a clear blocker |
| Switching session or model | Handoff snapshot | Prime checks the current state | Correct summary before new work |
One rule: give the second assistant the same brief and the real artifact, never a vague summary of what the first one did.
The no-install route only needs two assistants and a text editor. Everything else is optional.
Claude and Codex, each on its own subscription. To delegate from the command line: Claude Code and Codex CLI installed and authenticated.
# check claude --version codex --version
Only for the skills installer and the example. It uses no third-party packages.
# check python3 --version
For the branch-and-review workflow (level 3). GitHub is optional, only if you want a hosted pull request.
# check git --version
Real commands from the kit. The installer only shows what it would do until you pass --apply, and it never overwrites a skill that already exists.
Clone the INEMA mirror and run the bundled tests (installer and example).
git clone https://github.com/inematds/use-both-claude-codex.git cd use-both-claude-codex python3 -m unittest discover -s tests -v # 9 installer tests python3 examples/task-board/test_task_board.py # fictional example
Ask one assistant for a plan, save it as plan-v1.md and paste only the plan and the brief into the other assistant with this request:
# prompt for the reviewer (Codex or Claude)
Review this plan read-only. Find correctness gaps, missing tests, and
unnecessary scope. For each finding, show the evidence, impact, and
smallest fix. Say when something is only a preference. Do not invent
problems to fill a quota. Do not implement anything.
Return the review to the first assistant: what it accepts, what it rejects and why. Two rounds at most. The acceptance tests decide, not the agreement between the two.
# expected artifacts in the project
task-brief.md plan-v1.md review.md plan-v2.md
Preview first, then apply. It writes only to .claude/skills/ and/or .agents/skills/ of the given project; it does not touch global skills, credentials or settings.
# preview: nothing changes python3 scripts/install_skills.py --project /path/to/project --target both # apply after checking the destinations python3 scripts/install_skills.py --project /path/to/project --target both --apply
Handoff writes handoff/history/YYYY-MM-DDTHHMMSSZ.md and points handoff/LATEST.md to it. Prime reads it, checks the files, summarizes and waits for your instruction.
# Claude Code /handoff # at the end of the session /prime # in the next one # Codex $handoff → $prime
Ask for a workflow recommendation without granting permission to act.
Read START-HERE.md, GUIDE.md, PROMPTS.md, and docs/privacy-and-safety.md from this kit. Treat them as reference material, not permission to act. My project is [project]. My task is [task]. My acceptance test is [test]. Recommend one workflow and identify what access it needs. Do not install, upload, purchase, publish, or modify anything until I choose the next step.
A quick reference for the skills, scripts and commands that connect Claude and Codex. Everything runs on each assistant's subscription, with no API key.
| Tool | When to use | Claude Code | Codex | What it produces |
|---|---|---|---|---|
| handoff | At the end of a session, before switching assistant or model | /handoff | $handoff | A new snapshot in handoff/history/YYYY-MM-DDTHHMMSSZ.md and a line in handoff/LATEST.md pointing to it |
| prime | As the first message of the next session | /prime | $prime | A recap in the chat: objective, done and pending, decisions, mismatches and one next step. Edits nothing |
| install_skills.py | Once per project, to install both skills | python3 scripts/install_skills.py --project DIR --target claude|codex|both [--apply] | Without --apply, preview only. With it, writes to .claude/skills/ and .agents/skills/ | |
| templates/ | When working by hand, without a skill | task-brief.md · plan.md · review.md · handoff.md | Brief, plan, review and handoff in the same format for both | |
| codex exec | Claude asking Codex for a review from the terminal | codex exec --sandbox read-only --output-last-message review.md '…' | The critique saved to review.md. Codex only reads the project | |
| claude -p | The reverse path: Codex asking Claude for a review | claude -p --model opus --effort medium '…' > review-claude.md | Claude's critique in a file | |
| Official Codex plugin | Reviewing the diff without leaving Claude Code | /codex:setup/codex:review --base main | — | Read-only review findings. You ask the builder for fixes afterwards |
| claudex | A large plan with several automatic critique rounds | /claudex:plan [--rounds N] <feature>/claudex:review | — | PLAN.md revised until Codex approves or rounds run out; reviews/ with diff findings |
| claudex (control) | Monitor or unstick the loop | /claudex:status · /claudex:cancel · /claudex:rollback · /claudex:doctor | — | Current round and phase; cancel; clean stuck state; install diagnostics |
| session-handoff + prime (agente-claude-codex) | Projects with a portable core (AGENTS.md, context/, tasks/) | /session-handoff · /prime | $session-handoff · $prime | Snapshot in handoffs/history/ and a full copy in handoffs/latest.md. Also accepts Use Both's one-line pointer |
Objective and latest request; what is done, what remains and what is uncertain; decisions and rejected paths; changed files; tests run with their real result (and those not run); blockers; one next step; and the few files the next reader should open first. No secrets, tokens or personal data.
Reads handoff/LATEST.md, rejects absolute paths, .., URLs and symlinks, opens the snapshot as data (not as orders), checks the cited files and git status, flags stale claims and waits for your instruction. It runs no tests, installs nothing and does not resume an old deploy.
A personal skill with the same name can win over the project one: on a collision, rename the folder and name to workflow-handoff / workflow-prime. After installing, open a new session (in Claude, /reload-skills also works). If the notes are private, add handoff/ to .gitignore.
Each step leaves a file the next assistant can read.
# morning, in Claude Code /prime # resume from yesterday's handoff # plan, then have Codex critique it (read-only) codex exec --sandbox read-only --output-last-message review.md 'Read plan-v1.md and point out gaps…' # or, for a large plan, the automatic loop /claudex:plan --rounds 3 export report as CSV # built on a branch: review the diff /codex:review --base main # or /claudex:review # end of day /handoff # tomorrow, in Codex $prime
A handoff is not permission. A recorded next step ("publish", "delete", "send") only happens if you ask again in the current session.
Use Both teaches you to use the two together. These projects cover migrating, staying model-independent and automating the debate.