GitHub Copilot, Claude Code or Codex? How I'd choose for a company
I get this question in almost every first call, usually phrased as 'which one writes the best code?'. That's the wrong question. All three write good code, open pull requests and can work on their own for hours. What actually differs is where they live, how far they go without a human, how your security team can control them and how they are billed. Get those four wrong and you end up with three tools, no central policy and an invoice nobody can explain. This is the comparison I walk clients through, based on the vendors' own documentation and changelogs as of November 2026, plus the rules I set for all three before anyone starts.
11 min read
1. The four questions behind the choice
Before any demo I ask four things. Where does your work live: GitHub Enterprise, another Git platform, ChatGPT as the company's AI workspace, or the terminal of a few platform engineers? How autonomous should the agent be: completing lines, finishing a ticket in a pull request, or running a migration for hours against a goal? What does security need to enforce centrally: blocked commands, network access, which models and MCP servers are allowed, audit logs in the SIEM? And how do you want to pay: per seat, per token, or a mix with budgets per team? The answers usually point to a primary tool within ten minutes. The benchmarks matter less than people think, because all three vendors ship new models every few months, while the integration and governance decisions stay with you for years.
2. GitHub Copilot: closest to your repositories
If your code and reviews live in GitHub, Copilot is the easiest start. Its cloud agent takes an issue, works in an ephemeral GitHub Actions environment whose internet access goes through a firewall with a recommended allowlist, pushes only to its own copilot/ branch and opens a pull request. According to GitHub's risks-and-mitigations docs it can't mark its own pull request ready, approve or merge it, workflows wait until someone with write access approves them, and existing branch protection and required checks still apply. Governance is Copilot's strength. The agent control plane has been generally available since 26 February 2026, with audit log entries that flag agent actions and record who the agent acted for, plus session-level events. Since 9 September, enterprise managed permissions let Business and Enterprise admins mark shell commands, file reads and edits and network domains as blocked, approval-required or allowed, in the Copilot app, the Copilot CLI and VS Code Agent Host sessions, and users can't weaken them. Billing moved to GitHub AI Credits on 1 June: Business stays at 19 dollars and Enterprise at 39 dollars per user per month, each including the same amount in credits, pooled across the organisation, with budgets at enterprise, cost-center and user level.
Tip from practice
Since September, Copilot code review can approve pull requests, switched off by default. I keep it off for anything branch protection relies on: an approval should come from a person who is accountable for the change.
3. Claude Code: the deepest agent workflows
Claude Code is strongest for long, autonomous engineering work: it runs in the terminal, the IDE, the desktop app and in the cloud, and it has the most complete set of ways to keep going without you, with /goal until a verifiable condition holds, /loop while you work and cloud scheduled tasks triggered by a schedule, an API call or a GitHub event. Hooks let you run your own checks before or after tool calls. For governance, the managed settings docs describe three delivery routes: a managed-settings.json file in a system directory, an MDM or OS policy, or server-managed settings from the claude.ai admin console, which also reach cloud sessions. Managed settings sit at the top of the precedence order. Typical keys are permission deny rules, disableBypassPermissionsMode, allowManagedPermissionRulesOnly so only the organisation's allow rules count, allowManagedHooksOnly, allow and deny lists for MCP servers, and availableModels. On pricing, Team runs from 20 dollars per standard seat and 100 dollars per premium seat per month on annual billing, and Enterprise is 20 dollars per seat plus usage at API rates, with SCIM, audit logs, spend limits and a compliance API.
{
"permissions": {
"deny": ["Read(./.env)", "Read(./secrets/**)", "Bash(kubectl delete *)"],
"disableBypassPermissionsMode": "disable"
},
"allowManagedPermissionRulesOnly": true,
"allowManagedHooksOnly": true,
"availableModels": ["opus", "sonnet", "haiku"]
}4. Codex: for teams that live in ChatGPT
Codex is included in the ChatGPT plans and runs in the ChatGPT desktop app, the CLI, the IDE extension and as cloud tasks. It has a goal mode, and since DevDay in September, dots, OpenAI's always-on agents, can create and continue Codex tasks on their own. If your company already uses ChatGPT Business or Enterprise as its AI workspace, Codex means no new vendor, one identity and shared usage. Governance works through two layers described in OpenAI's docs: config.toml for personal defaults, and requirements.toml, managed under Agent security, which limits approval policies, sandbox modes, permission profiles, web search, hooks and the MCP servers users can enable. Business costs 20 dollars per user per month on annual billing with SAML SSO and no training on business data by default; Enterprise and Edu are quoted. For CI, Codex also runs with an API key at API rates, without the cloud features.
5. Side by side
Put next to each other, the differences are about place, depth and control. Copilot runs where GitHub is: the cloud agent in GitHub Actions, plus the Copilot app, CLI and IDE; its admin controls are the AI Controls tab, the agent control plane with audit logs and enterprise managed permissions; it's billed per seat with included AI Credits and budgets; best fit is a company standardised on GitHub that wants agents inside its existing review process. Claude Code runs in the terminal, IDE, desktop and Anthropic's cloud; its controls are managed settings via file, MDM or admin console, plus Enterprise audit logs and spend limits; it's billed per Team or Enterprise seat, with Enterprise usage at API rates; best fit is platform and DevOps engineers doing long autonomous work. Codex runs in the ChatGPT desktop app, CLI, IDE and cloud, with dots on top; its controls are requirements.toml, workspace policy and the Compliance API with audit events; it's billed through ChatGPT plans or API keys; best fit is a company whose people already work in ChatGPT. Use the table below to filter by what matters to you.
Interactive
Compare the three side by side
Pick what matters most to you. Facts as of November 2026, from the vendors' docs and changelogs listed under sources.
6. Rules that apply to all three
Whatever you pick, the same five rules carry most of the risk reduction. One instruction file per repository, AGENTS.md, CLAUDE.md or .github/copilot-instructions.md, owned by the platform team through CODEOWNERS, because these files change what an agent does. Agents work on branches only, with branch protection or rulesets and required status checks, so an agent can't merge what CI hasn't passed. A person merges, and the person who asked the agent for the change isn't the only approver. No production credentials on any machine or environment where an agent runs; agents get scoped, short-lived tokens for exactly the systems they need. And every agent action is logged where your security team already looks: Copilot's audit log and session streaming, Claude Code's Enterprise audit logs, the ChatGPT Compliance API and audit events for Codex. If you can't answer 'which agent changed this line, for whom, and who approved it', you aren't ready to scale.
# .github/CODEOWNERS
# Instruction and agent config files change what agents do: platform team owns them.
AGENTS.md @your-org/platform
CLAUDE.md @your-org/platform
.github/copilot-instructions.md @your-org/platform
.claude/ @your-org/platform
.codex/ @your-org/platform
.github/workflows/ @your-org/platformTip from practice
Make 'Require review from Code Owners' part of the branch rule, otherwise CODEOWNERS only suggests reviewers and an agent's change to its own instruction file can slip through.
7. My usual recommendation and how to pilot it
Don't pick one tool for everybody. Give the whole development team the one that fits your platform, usually Copilot if you're on GitHub Enterprise or Codex if ChatGPT is already your AI workspace, and give the platform and DevOps engineers the deepest agent for long autonomous work, which in my projects is often Claude Code. Then run a four-week pilot that compares, not a demo that impresses: the same 20 to 30 real tickets on two tools, split by type (bug fixes, dependency upgrades, small features, test repairs). Measure lead time from ticket to merged change, review minutes per pull request, how often a change needed rework, and cost per merged change from each vendor's usage data. Set the central policies before the pilot, not after, so you measure the tools in the configuration you'd actually run. In my experience the decision is obvious after week three, and it's rarely the one the loudest person in the first meeting predicted.
Takeaway
The tool matters less than the rules around it: pick by where your team works, lock it down centrally, then let the pilot data decide.
Real projects behind this
Try it yourself
Sources and official guides
- GitHub Changelog: Enterprise managed permissions for Copilot agent operations (9 Sep 2026)
- GitHub Changelog: Enterprise AI Controls & agent control plane GA (26 Feb 2026)
- GitHub Docs: Copilot cloud agent risks and mitigations
- GitHub Blog: Copilot is moving to usage-based billing
- Claude Code docs: Managed settings
- Claude pricing: Team and Enterprise
- OpenAI Codex docs: Managed configuration
- OpenAI Codex docs: Pricing
More articles
- 3,025 pull requests in ten months: an AI-assisted delivery process, from the inside
- The EU AI Act for mid-sized companies: what applies to you, and when
- FinOps for AI spend: tokens, caching, routing and budgets that hold
- Making a restaurant network visible in AI answers: a GEO project, step by step
- How this site is built: static where it can be, streaming where it must
- Kubernetes cost on EKS and GKE: the same playbook, different levers
- A landing zone for mid-sized companies, in Terraform or Bicep: the parts that matter
- The legacy migration playbook: waves, parallel runs, and identical row counts and checksums
- MCP security in depth: how to let AI assistants into your product without opening the doors
- Monitoring on business outcomes: green dashboards, empty checkout
- Phone AI agents: the architecture, and the pitfalls nobody shows in the demo
- Restore tests: a backup you have never restored is only a hope
- Streaming AI answers on Azure Static Web Apps: the one header that buffered everything
- Building an AI assistant for WhatsApp, end to end: what it takes beyond the demo
- Air-gapped systems: running critical software with no internet
- Production AI on AWS: Amazon Bedrock and AgentCore in a private setup
- Production AI on Microsoft Foundry: a private reference setup for agents
- /goal, /loop or routines: stop babysitting your coding agent
- Claude's new plans: Max, Ultra and what they mean for teams
- OpenAI Codex at the end of 2026: goal mode, dots and how to lock it down
- GEO basics: how to show up in AI answers
- Production AI on Google Cloud: from Vertex AI to Gemini Enterprise Agent Platform
- Local LLMs in an air-gapped network: AI for your most sensitive data
- I want to run a local LLM: which server should I buy?
- MiniMax M3: an open frontier model you can run yourself?
- Prompt research at scale with an open model
- SEO and GEO together: a practical audit in 6 steps
- Right-size Kubernetes: the playbook that took a cluster from 7 to 4 nodes
- Private AI for sensitive data: a local LLM setup that passes the security review
- From AI prototype to production: the eight layers I add, in order
