Portia

Compare · last checked October 2026

Portia vs GitHub Copilot coding agent

Assign an issue to Copilot and it returns a PR from an Actions environment. GitHub's own guidance says it suits low-to-medium complexity tasks in well-tested codebases, one at a time.

Copilot coding agent takes one issue, assigned to Copilot like any other assignee, from github.com, GitHub Mobile, the CLI, Raycast, or Jira in public preview since March 2026. It plans, works in an ephemeral GitHub Actions environment, runs your tests and linters, opens a PR on a copilot/ branch and asks for your review.

Nothing to install and nothing to run: it lives where the code and CI already are. GitHub's own description of its sweet spot is low-to-medium complexity tasks in well-tested codebases.

Portia is for the feature, not the issue: several tickets with shared code, planned in dependency order, with the shared contracts landed first and the acceptance specs written before any child starts. It runs on your machine on your Claude subscription, and the children collect into one PR rather than one PR per issue.

PortiaGitHub Copilot coding agent
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.Your tests and linters in Actions, after it writes; 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, one issue at a time; parallel issues meet on your default branch.
Unit of workAn epic, or a story big enough to split into children.One issue, assigned to Copilot.
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 PR on a copilot/ branch that requests your review.
Where the agents runYour machine, or a build box you open over SSH. One git worktree per child.An ephemeral GitHub Actions environment.
Which agentsClaude Code, on your own subscription. Workers follow the target repo's CLAUDE.md, skills and settings.Copilot.
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 issue.
Tests before featuresThe spine writes every acceptance scenario as a failing spec. You sign off before any wave starts.Runs your tests and linters in Actions.
Isolation between tasksA worktree, branch, port and database per child. No two children in a wave touch the same file.A fresh environment per issue.
Gates before landingTask gate; exit gate, run again on the rebased head; CI; an optional review of each child; the epic gate.Your Actions workflows on the PR.
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 Issues; Jira in public preview (March 2026); Raycast.
Model choicePer child, from its tier: a cheaper model for routine children, a stronger one for the hard ones.Copilot's.
Spend and capacityCaps per worker, per wave and per epic. Waves are sized from free memory and the other runs on the machine.Premium requests on Copilot plans, plus Actions minutes.
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: it runs in GitHub's cloud.
Licence and priceFree. Source on GitHub.A Copilot subscription (Pro+ or Enterprise at launch; check current plans).

What GitHub Copilot coding agent does that Portia doesn't

  • Nothing to install: assign an issue and walk away.
  • Lives where the code and CI already are.
  • Any contributor with a seat can use it.

Choose GitHub Copilot coding agent when

Low-to-medium complexity issues in a well-tested codebase, one at a time.

Choose Portia when

An epic: shared code first, children in dependency order, one integration branch, one PR, on your own Claude subscription.

Questions

Can Copilot take an epic?
It takes an issue. You could assign each child issue separately, but nothing orders them, lands shared code first, or collects them into one branch; each returns its own PR against your default branch.

Sources

GitHub Copilot coding agent'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