Skip to content
Updated September 21, 2026

Using Claude Code and Codex together

The complaint is always the same: you run both, you like both for different things, and you spend your day paying a tax to move between them. The fix is real, but it is not the one people ask for.

Short answer

No single harness runs both. Claude Code and Codex are each their own harness, and neither will host the other. What you can share is the layer above them — one workspace that drives both installed runtimes, shows both histories side by side, keeps separate accounts straight, and turns a mid-task switch into an explicit, attributed fork instead of a copy-paste.

Two harnesses, by construction

A harness is the program that turns a model into an agent: it holds the loop, the tools, the permissions, and the session record. Claude Code is Anthropic’s. Codex is OpenAI’s. Each is built against its own provider’s protocol, and each owns its own conversation format.

That is why the thing people ask for cannot exist in the shape they imagine it. A third harness that “supports both” would have to reimplement two moving first-party runtimes and would break every time either one shipped. Anything that claims to be one agent speaking to both providers is either using raw API keys instead of the plan you already pay for, or it is lying about what it runs.

The honest version of the wish is narrower and far more achievable: keep both harnesses exactly as their vendors ship them, and share everything around them.

What “one app for both” can and cannot mean

Before choosing any tool for this, separate the claims. They are not equally possible, and vendors blur them.

The wishHonestly possible?What it actually looks like
One window for both agentsYesBoth runtimes driven from one interface, each still speaking its own native protocol.
One searchable historyYesBoth providers’ records read in place and listed together, with neither converted into a new format.
One view of usage and limitsYesEach provider’s reported window shown side by side, labelled by where the number came from.
Move a task between themYes, as a forkA new provider-native conversation seeded with a bounded briefing, with lineage recorded.
One continuous thread across bothNoThe runtimes cannot share a session. Anything presenting this is reconstructing, not resuming.
One pooled usage allowanceNoEach provider meters and bills its own plan. A shared view is not a shared budget.

The two “no” rows are the ones worth testing a tool against. They are also the two most likely to be quietly implied by a feature list.

Switching mid-task is a fork, and it should look like one

The expensive moment is not choosing an agent. It is being forty minutes into a Claude Code session, deciding Codex would do the next part better, and having no way to carry the context across except selecting text and hoping.

Because the two runtimes cannot share a thread, the switch is a fork by nature. What a tool can do is make the fork deliberate: quote the work so far into a bounded briefing, start the new conversation in the other provider’s own runtime, and record on both sides where the work came from and where it went. You lose the original thread’s continuity either way — what you should not lose is the trail.

Two rules make handoffs survivable. A briefing must be bounded, or you spend the receiving agent’s context re-reading a transcript instead of working. And it must never write into the source conversation, or you corrupt a session the original runtime still expects to resume cleanly.

What a handoff briefing should quote, and what it must never write →

The other reason people switch: one account ran out

Plenty of “I keep switching” is not a preference at all. You hit a weekly limit on one plan and move to the other because it still has room. Handled by hand, that means signing out, signing in, and losing your place.

Treated properly, it is an account-routing problem rather than an agent problem: keep several provider accounts signed in and separate, see which window has capacity before you start, and choose where new work begins instead of discovering the limit halfway through a task.

How multiple Claude Code and Codex accounts stay separate →

Where Crowsnest fits

Crowsnest is the shared layer, not a third harness. It drives the Claude Code and Codex runtimes already installed on your Mac, binds its interface to 127.0.0.1, and uploads no transcripts, prompts, answers, or project paths. Your providers still execute the models under the plans you already pay for.

Both histories, one search

Claude Code and Codex conversations listed and searched together, each read in its own native format rather than imported into a new one.

Explicit handoff

Move a task to the other provider as an attributed fork with a bounded briefing and visible lineage — never an implied resume.

Accounts kept apart

Several provider accounts signed in at once, with the current usage window visible before you choose where new work starts.

Parallel without collisions

Several agents at once on isolated worktrees, with overlap warnings, so “use both” does not become two agents editing one file.

Plans matter here, so the boundary is worth stating plainly. Standard browses and searches both providers’ history and drives one native Claude Code or Codex conversation at a time. Cross-provider handoff, parallel agents, Agent Crew, UI Studio, multiple provider accounts, Remote Workspaces, and full Insights are Pro or Premium.

If you only ever run one agent, one account, one task at a time, you do not need any of this — the vendors’ own apps are a better fit. This matters when you genuinely operate both.

Questions behind the search

Is there a harness that works with both Claude Code and Codex?

Not in the strict sense. Claude Code and Codex are each their own harness, shipped by their own provider, and neither runs the other. What can be shared is the layer above them: one workspace that drives both installed runtimes, shows both histories together, and moves work between them deliberately. That is the part a third-party tool can honestly own.

Can I switch between Claude Code and Codex mid-task?

Yes, but it is a fork, not a transfer. The two runtimes cannot share a thread, so switching means starting a new provider-native conversation seeded with a bounded briefing that quotes the work so far. A good handoff records where the briefing came from so the lineage stays visible on both sides.

Do Claude Code and Codex share the same conversation history?

No. Claude Code writes JSONL session files under its own project directory, and Codex keeps completed history immutable behind its app-server protocol. They are different formats with different rules, so a shared view has to read both natively rather than converting either into a new format.

Does using both agents in one app pool my usage limits?

No. Quota is never pooled. Each provider still meters its own plan and bills your own account, so running Claude Code and Codex from one workspace gives you a shared view of both usage windows rather than a shared allowance.

Crowsnest product behavior was checked against the released application source on September 21, 2026. Claude Code and Codex change faster than a static page; follow each provider’s own documentation for their current capabilities.