Open source · MIT · A Shipwright side project
Codextender
Claude Code, on your Codex plan.
A small local proxy that lets Claude Code sessions run on the models of your ChatGPT Codex plan. Your hooks, skills, subagents and slash commands stay exactly as they are. Nothing to rewrite.
The idea
Keep the harness. Change only the model behind it.
Free and open source. Needs a logged-in Codex CLI, Node 20.12+ and Python 3.11+.
two terminals
Why it exists · one bottleneck
“Shipwright runs so much work in parallel that the limits of a single plan became my bottleneck.”
A Codex path for Shipwright, Codex Light, is started. Porting a full plugin suite takes time, though: hooks, packaging, reviewers, the Command Center. I wanted the extra capacity now. Claude Code can already point itself at a different backend, so I built the piece in between. Everything else stays:
Same Claude Code session, same terminal
Hooks and skills run unchanged
Subagents and slash commands work
Auto mode keeps working
Signs in with your existing Codex login
A second plan’s limits on top of the first
No separate CLI, and nothing rewritten to be Codex-compatible. A few environment variables, and the same setup runs on a different model. Which comes down to one simple idea:
Want to know more about Shipwright, where Codextender came from?
What is Shipwright?
Client
Claude Code
Your session, hooks, skills and agents
Translator
Codextender
Local proxy · 127.0.0.1:4000
Model
Codex backend
Your Codex plan quota
01
Speaks Claude Code’s language.
It accepts the Anthropic Messages API that Claude Code sends, so nothing on the Claude Code side changes.
02
Translates for Codex.
It turns each request into OpenAI’s Responses API and sends it to the Codex backend your codex CLI already talks to.
03
Uses the login you have.
It signs in with the credentials from codex login. No API key, no separate billing, no per-token charges.
What you get
Several models, one proxy.
Map opus, sonnet and haiku to different Codex models and switch per session, no restart.
Auto mode works.
Claude Code’s auto-mode classifier request is served instead of rejected.
Stays logged in.
The login refreshes on a timer in the background, also after the machine wakes from sleep.
Prompt cache stays warm.
Repeated turns keep a stable prompt prefix, so Codex can reuse what it already processed.
Long sessions.
The real 1’050’000-token context window is reported, so Claude Code does not compact early.
Windows autostart.
An optional script starts the proxy at logon, quietly, with a log file you can check.
01
Wrong host, hard 400.
The public API rejects newer Codex-plan models even with a valid token. The fix is the ChatGPT-internal Codex endpoint your codex CLI already uses.
02
Undocumented required fields.
The endpoint needs streaming and storage flags set explicitly, and refuses max_tokens and user outright.
03
System prompts rejected.
Claude Code’s system prompt arrived in a role the endpoint refuses. Codextender folds it into the instructions field instead.
04
A cache that never warmed.
One header line that Claude Code changes on every request made each turn look new. Stripping it keeps the prompt prefix stable.
05
Tool use broke silently.
After a tool call, the endpoint returns an empty output list, so the stop reason came back wrong and Claude Code never ran the tool. A small patch corrects it.
In one line
Each fix calls LiteLLM’s real code, then corrects one thing at a public boundary. No fork.
Specify
Design
Plan
Build
Test
Secure
Who it is for
Technical people who build with AI and want it done properly, without running a full engineering process by hand.
$
npx @svenroth-ai/shipwright@latest
The Command Center · task board
Every task has its lane on the board.
Pipeline and campaign lanes, one card per task. Each card shows where the task stands and launches or resumes it from there.
1
All projects. Every piece of work, on one board.
2
Backlog to done. An iterate is a card with its state.
3
Inbox and Triage. Every permission prompt in one place, and findings from hooks and CI, ready to become tasks.
Kanban Task Board
Backlog to Done, one button to start a run.
Global Inbox
Every question Claude asks, in one place.
Multi-project
Many projects, one board.

The task
Choose the runtime per task.
Every launch surface has the same toggle: new task, new iterate, new pipeline. A task keeps the runtime it was created with.
1
Runtime. Claude or Codex, picked when the task is created.
2
Autonomy. Guided asks before it acts. Autonomous runs on its own.
3
Launch. The command starts in the embedded terminal on the task page.

The settings
Codex Light or Codextender: same task, different engine.
Codex Light runs the real Codex CLI in its own terminal. It is the start of a native Codex port of Shipwright. Porting a full plugin suite turned out to be a lot of work, so I built Codextender to use the limits of both subscriptions sooner: a normal Claude Code session pointed at your Codex plan, with every Shipwright hook and review running as usual. Both options stay, and the task looks the same either way.
1
Runtimes. Both, Claude only, or Codex only, for the days Claude’s quota is used up.
2
Engine. Codex Light or Codextender, chosen once in settings.
3
Port. Where your local Codextender proxy listens.
Shipwright knows who wrote the code.
When a GPT model authored the change, the external review switches to reviewers from Anthropic (Opus) and GLM, instead of the standard setup with OpenAI (Sol) and GLM. A change is never checked by the same model family that wrote it.

Command Center walkthrough
Kanban board, embedded terminal, Mission and the Ship’s Log in one connected flow.
Watch on YouTube · 8:50

Intent Wizard: idea to first run
A rough idea and four answers become a Flight Plan you review before work starts.
Watch on YouTube · 4:34

Control Grade: what can your repo prove?
How the A to F grade is calculated, and how to read the report.
Watch on YouTube · 9:36
Masterclass coming soon
Founding seats still available
$49
Founding · first 50
$97
Early access
$497
Full price
Get the founding offer · $49
Lowest price it will ever be. Fully refundable until launch.
Ship right, not just fast.
Is Codextender free?
Yes. It is open source under the MIT license, on GitHub and on npm. You only need a ChatGPT plan that includes Codex.
Do I need Shipwright?
No. Codextender is a separate project and works with any Claude Code setup. Shipwright is where I use it every day.
Which models can I use?
Whatever your Codex plan offers right now. There is no built-in model list on purpose: the lineup changes, so you pass the model name yourself.
Is this allowed?
It reuses your own Codex login from a third-party client, against the endpoint the codex CLI uses. My reading of public information is that this fits how OpenAI has treated subscription-based tools since April 2026. That is my reading, not a confirmation from OpenAI, and policy in this area has shifted more than once this year.
What are the limits?
It is built for one person on one machine, not as a hardened shared proxy. The login refresh runs on a timer, so an expired token is caught at the next check, not on the first failed request.
What is the Masterclass?
The place where you learn to run Shipwright on real projects. It is in active development. A founding seat is $49 and fully refundable until launch.

Who’s behind it
Ship right, not just fast.
I’ve spent 20+ years on the process of shipping software cleanly, including FINMA-regulated banking and digital-asset environments, where every change comes with proof that it is safe. Shipwright encodes that discipline so you don’t have to carry it in your head.
© 2026 Sven Roth

