Portia

Compare · last checked October 2026

Portia vs OpenAI Codex

Codex runs each task in its own cloud environment, many at once, and proposes a PR for each. It needs nothing of yours to run; Portia runs on your machine and lands one feature as one PR.

Codex is OpenAI's software engineering agent. In the cloud, each task gets an isolated environment with your repository preloaded; you can run many at once, and each one proposes a pull request. It is also a CLI and an IDE extension, reachable from the web and a phone, with automatic review of PRs on GitHub.

Like Copilot's agent and Devin, it is hosted and task-shaped: one task, one environment, one PR. Parallelism is unlimited by your hardware because there is none of yours involved.

Portia is epic-shaped and local: Claude Code on your machine, a plan drawn from your tickets and approved by you, the shared code landed first, acceptance specs signed off, each child gated on its rebased head, and one PR at the end that a person merges.

PortiaOpenAI Codex
Who proves the work is right, and whenThe tests, written first and signed off by a person before any wave; then the gate on each child's rebased head; then you, at the one PR.Its own tests in its environment; then you, in the PR.
Where rework shows upAt the gate, per child, before it lands: a failed exit gate retries with the failure in its brief. Siblings never touch the same file, so there is nothing to reconcile at the end.In PR review, after the fact; parallel tasks are independent PRs that meet on your branch.
Unit of workAn epic, or a story big enough to split into children.A task; many at once.
What you get backOne reviewed pull request for the whole feature, with a ledger of every child and the evidence for each scenario in its description.A proposed PR per task.
Where the agents runYour machine, or a build box you open over SSH. One git worktree per child.OpenAI's cloud, an isolated environment per task; also a CLI and IDE extension.
Which agentsClaude Code, on your own subscription. Workers follow the target repo's CLAUDE.md, skills and settings.Codex.
PlanningA wave table drawn from the tickets and shown to you first. Written back into the tickets, with each dependency as a blocker link.Its own, per task.
Tests before featuresThe spine writes every acceptance scenario as a failing spec. You sign off before any wave starts.Runs tests in its environment.
Isolation between tasksA worktree, branch, port and database per child. No two children in a wave touch the same file.A cloud environment per task.
Gates before landingTask gate; exit gate, run again on the rebased head; CI; an optional review of each child; the epic gate.Your CI on the PR; automatic PR review.
Who mergesYou. Children squash-merge into an integration branch, pinned to the commit their gate passed. Portia never merges to main.You.
TrackerJira or GitHub Issues.GitHub.
Model choicePer child, from its tier: a cheaper model for routine children, a stronger one for the hard ones.OpenAI's.
Spend and capacityCaps per worker, per wave and per epic. Waves are sized from free memory and the other runs on the machine.ChatGPT plans and credits.
Unattended, and resumingParks with one question instead of guessing. Detached workers outlive the session, with a stall detector; portia resume picks a run back up.Fully hosted.
Licence and priceFree. Source on GitHub.A ChatGPT subscription, or the API.

What OpenAI Codex does that Portia doesn't

  • Nothing to run locally.
  • Many tasks at once with no machine limit.
  • Web, terminal, IDE and phone.

Choose OpenAI Codex when

Independent tasks, each its own PR, in OpenAI's cloud.

Choose Portia when

One feature with shared code, Claude Code, your machine, and a single PR that a person merges.

Questions

Can Portia use Codex as a worker?
No. Workers are Claude Code sessions.

Sources

OpenAI Codex's column comes from the pages below, read in October 2026. Portia's comes from its README and reference. If a cell is wrong, open an issue.

Every comparison · Home