AI coding agents compared: shared config formats, different approval defaults
We compared the official docs for Claude Code, Codex, GitHub Copilot, Cursor and Gemini CLI as of 2026-10-06. All five support AGENTS.md, Agent Skills and MCP, but they read them from different files and folders, and their default approval for local sessions follows three different approaches
On this page
When people choose an AI coding agent, the first thing they usually compare is the model. But models change every few months. GPT-5.5, which the first version of this article (2026-06-16) named as the model behind Codex, retires from every ChatGPT and Codex plan on 2026-10-14. So this time, instead of comparing models, we used five tools' official documentation to compare where each tool stores configuration, which actions require approval, where code runs, and how usage is billed.
Key findings
Gemini CLI needs a setting; Claude Code only when there is no CLAUDE.md
.agents/skills in 4 · .claude/skills in 3Claude Code 2.1.283 and later, Cursor 3.6 and later (recommended default)
.agents/skills and .claude/skills. The differences that actually drive the choice are elsewhere. Tools differ in who approves actions locally (a person, a classifier or a reviewer agent), whether the shell sandbox is on by default, what serves as the boundary instead of approval in cloud runs, and the billing unit. The three vendors that let a model review approvals in place of a person (by default in Claude Code and Cursor, as an option in Codex) all state in their docs that this review either does not guarantee safety or does not grant extra permissions.
Terms used here
- AGENTS.md is a Markdown instruction file kept in a repository. It holds what an agent should know before working, such as build commands and code conventions. OpenAI created it, and it was contributed, together with MCP, to the Agentic AI Foundation (AAIF), which the Linux Foundation formed on 2025-12-09.
- Agent Skills is an open standard (agentskills.io) for packaging reusable agent capabilities as a folder with one
SKILL.mdfile plus optional scripts and reference documents. An agent normally sees only each skill's name and description, and reads the body when it needs it. - MCP (Model Context Protocol) is an open protocol that defines how agents connect to external tools and data. A program that provides tools to an agent is called an MCP server.
- An approval mode is the setting that decides whether an agent asks a person before acting, for example before editing files, running shell commands or making network requests. In this article, a classifier means a separate model that reviews such actions in place of a person.
- A sandbox is an execution boundary enforced by the operating system. It limits which paths shell commands can write to and which network destinations they can reach. The approval mode decides whether the agent must ask before an action runs; the sandbox decides what that action can access once it is allowed to run.
How we checked
On 2026-10-06 we downloaded the official documentation for all five tools as source files or API responses, then compared the relevant sections directly. To avoid going through a summarizer, we read Claude Code's docs as Markdown sources (a .md suffix on the URL), Codex's docs as Markdown sources on learn.chatgpt.com, GitHub's docs through the docs.github.com body API, Gemini CLI's docs as source files in its GitHub repository, and Cursor's docs as Markdown sources on cursor.com. Each table cell is taken from sentences in these documents.
The baseline versions were the newest npm releases available that day: Claude Code 2.1.290, Codex CLI 0.160.1 and Gemini CLI 0.62.0. For Cursor we used the change log inside its docs (3.5 and 3.6). GitHub Copilot runs in IDEs, a CLI and GitHub.com, but the parts that compare execution location and isolation cover Copilot cloud agent, where you hand tasks over on GitHub.com. That feature's doc URLs still say coding-agent, while the text calls it cloud agent.
We did not compare performance, accuracy or speed. We cover benchmark interpretation in a separate article on agent evaluation, and tool adoption in a comparison of usage surveys.
Instruction files: four tools read AGENTS.md as is
These tools have used different names for repository instruction files, but as of 2026-10-06 all five can read AGENTS.md. The difference is under what conditions.
| Tool | Own instruction file | When it reads AGENTS.md |
|---|---|---|
| Claude Code | CLAUDE.md, .claude/CLAUDE.md, CLAUDE.local.md | Only when none of these three files exists in the working directory or above it (2.1.277 and later). It does not read AGENTS.override.md or files under .agents/ |
| OpenAI Codex | AGENTS.md (its own format) | Always. If AGENTS.override.md exists in the same directory, it takes priority. Files are concatenated from the repository root down to the current directory, with a default limit of 32 KiB on the combined size |
| GitHub Copilot | .github/copilot-instructions.md, .github/instructions/*.instructions.md | Reads an AGENTS.md anywhere in the repository; the nearest file takes precedence. The docs also allow a single CLAUDE.md or GEMINI.md at the root instead |
| Cursor | .cursor/rules/*.mdc | Reads AGENTS.md in the project root and in subdirectories |
| Gemini CLI | GEMINI.md | Not by default. You have to add AGENTS.md to context.fileName in settings.json |
Two points matter in practice. First, Claude Code skips AGENTS.md if any CLAUDE.md exists. Adding a personal CLAUDE.local.md has the same effect. In that case the docs say to import it by putting @AGENTS.md on the first line of CLAUDE.md. Before 2.1.281, some sessions, such as those with telemetry disabled, did not read AGENTS.md; we covered that issue in a separate article. Second, the AGENTS.override.md that Codex users rely on is Codex-only. The Claude Code docs state that it does not read this file.
Skills: the same standard, but no single folder
All five tools' docs describe Agent Skills as an open standard. The standard defines six fields for the SKILL.md frontmatter (the YAML metadata block at the top of the file), of which name and description are required. name must be at most 64 characters of lowercase letters, digits and hyphens, and must match the folder name.
But each tool looks for project skills in different folders.
| Tool | Project skill folders | Personal skill folders |
|---|---|---|
| Claude Code | .claude/skills/ | ~/.claude/skills/ |
| OpenAI Codex | .agents/skills/ (from the current directory up to the repository root) | ~/.agents/skills/ |
| GitHub Copilot | .github/skills/, .claude/skills/, .agents/skills/ | ~/.copilot/skills/, ~/.agents/skills/ |
| Cursor | .agents/skills/, .cursor/skills/, and for compatibility .claude/skills/, .codex/skills/ | ~/.agents/skills/, ~/.cursor/skills/, and for compatibility ~/.claude/skills/, ~/.codex/skills/ |
| Gemini CLI | .gemini/skills/, .agents/skills/ | ~/.gemini/skills/, ~/.agents/skills/ |
.agents/skills/ appears in the docs of four tools (Codex, Copilot, Cursor and Gemini CLI) but not in Claude Code's table of skill locations. .claude/skills/ appears in the docs of three (Claude Code, Copilot and Cursor) and not in the Codex or Gemini CLI docs. So, going only by documented behavior, there is no project folder that all five tools read.
paths, disable-model-invocation, icon and color fields. How other tools handle these fields differs from doc to doc, and the Claude Code docs say that outside Claude Code (claude.ai and the API) only the standard's six fields can be used. If you want the same skill to work in several tools, it is safer to keep the frontmatter within the standard fields. How to build and review skills is covered in our Agent Skills adoption guide.
MCP: same support, different config files and limits
All five tools can attach MCP servers. Where you write the server definitions differs by tool.
| Tool | Project-level configuration | Limits stated in the docs |
|---|---|---|
| Claude Code | .mcp.json | Even with the Bash sandbox on, MCP servers run outside the sandbox |
| OpenAI Codex | .codex/config.toml (trusted projects only); the default is ~/.codex/config.toml | — |
| Copilot cloud agent | JSON entered in the repository settings page on GitHub.com (Copilot CLI is configured separately) | Cloud agent uses only MCP tools, not resources or prompts. Remote servers that authenticate with OAuth are not yet supported |
| Cursor | .cursor/mcp.json | Cloud Agents support HTTP and stdio servers, and OAuth |
| Gemini CLI | mcpServers in settings.json | — |
Even for the same MCP server, the configuration format differs by tool (JSON, TOML or a web settings page), so keeping one configuration file in the repository for every tool to share, as you can with instruction files or skills, is not yet practical. A "—" in the table means we did not find a limit worth listing in the documents we read.
Local approval defaults: "automatic" means different things
This is where the tools differ most. When the agent runs on your own machine, who approves its actions by default, and do shell commands run inside a sandbox?
| Tool | Default approval in interactive sessions | Shell sandbox default | Caveat stated in the docs |
|---|---|---|---|
| Claude Code | auto: a classifier reviews shell commands, network requests and similar actions before they run. Applies to terminal and VS Code sessions on every plan from 2.1.283 | Off. Turn it on with /sandbox or sandbox.enabled (macOS, Linux, WSL2) | "Auto mode reduces permission prompts but does not guarantee safety" |
| OpenAI Codex | For version-controlled folders (such as Git repositories), the recommended Auto setting is workspace-write combined with on-request. It asks a person when crossing the boundary (approvals_reviewer = "user") | On. Writes are limited to the workspace and network access is off | The reviewer agent (auto_review) "is a reviewer swap, not a permission grant"; it does not widen the sandbox |
| Cursor | Auto-review, the recommended default since 3.6 (2026-05-29). Allowlisted calls run immediately, other shell commands run in the sandbox when possible, and everything else goes to a classifier on Cursor's servers | Applied to shell commands under Auto-review (macOS Seatbelt; on Linux, Landlock and seccomp on kernel 6.2 or later) | "Auto-review is not a security boundary" |
| Gemini CLI | default: asks for approval. YOLO mode, which auto-approves every action, can be enabled only from the command line | Off. Turn it on with --sandbox and similar options; it is on by default in YOLO mode | — |
| GitHub Copilot | Cloud agent does not run locally, so it is covered in the next section | Not applicable | We did not compare the approval behavior of Copilot CLI or the IDEs |
The word "automatic" appears three times in the table, but it refers to different things.
- Claude Code's auto has a classifier take over the confirmation a person used to give. The shell sandbox is off by default, so a command the classifier lets through has no separate OS-level boundary. The docs also say that adding a sandbox or container adds a layer of defense.
- With Codex's auto_review, the sandbox first limits file writes and network access, and the reviewer agent only checks requests to cross that boundary. The default is a human reviewer.
- Cursor's Auto-review combines the two. Shell commands that can run in the sandbox go to the sandbox; commands that cannot, along with MCP and Fetch calls, go to the classifier.
So the practical question is not whether approval is automatic, but what protection remains if the classifier approves the wrong action. If the sandbox is also on, the write-path and network limits remain; if it is off, the full permissions of your user account remain. What a sandbox actually blocks, and what it does not, is covered with measurement papers in our article on agent sandboxes.
Cloud runs: the environment becomes the boundary instead of approval
Four of the five tools can hand a task to the cloud. In the cloud a person often does not approve actions in real time, so the boundary becomes how the environment is isolated and how network access and secrets are handled.
| Tool | Execution environment | Network and secrets | Unit of work and approval |
|---|---|---|---|
| Claude Code cloud sessions | An isolated Anthropic-managed VM per session (or a self-hosted environment, depending on organization settings) | Network access is limited by default. Git credentials and signing keys stay outside the sandbox, and a proxy authenticates on the session's behalf | You choose the approval mode per session. Available on Pro, Max and Team, and on some Enterprise seats |
| Codex Cloud | A separate workspace per task. It keeps running while your computer is asleep | For legacy environments: the network is used only in the setup phase, the agent phase is offline by default, and secrets are removed after setup. Current environments are documented separately | You review the result, then commit or open a pull request |
| Copilot cloud agent | An ephemeral cloud development environment (on GitHub Actions) | A firewall is on by default, together with a recommended allowlist for installing dependencies. The firewall applies only to processes the agent starts through its Bash tool, not directly to MCP servers or setup-step processes | One repository, one branch and one pull request per task |
| Cursor Cloud Agents | An isolated VM with a desktop environment per task. The agent can check the UI in a browser | Each environment is configured with repositories, dependencies, secrets and network access | Local Run Modes do not apply, and the agent never asks for approval |
| Gemini CLI | The Gemini CLI docs we read describe no cloud execution | Not applicable | Not applicable |
Two things stand out. Cursor's docs state that Cloud Agents "never ask you to approve an action". And Copilot's docs spell out the firewall's limits: it does not directly cover MCP server processes, and sophisticated attacks may bypass it. When configuring a cloud environment, assume the agent can use anything inside it and include only the secrets and network access the task actually needs; that is consistent with what the docs describe.
Billing units: five tools count five ways
Prices change often, so we recorded what each tool counts rather than amounts. All of this was checked on 2026-10-06.
| Tool | What it bills by | Details checked |
|---|---|---|
| Claude Code | Usage included in a subscription (Pro, Max, Team, Enterprise), or token usage on the Console (API) | Not included in the free claude.ai plan. Beyond the subscription limit you can add usage credits |
| OpenAI Codex | Usage and credits included in ChatGPT plans (Free, Go, Plus, Pro, Business, Edu, Enterprise) | Shares usage with ChatGPT Work. On the pricing page, the Free and Go cards list only the desktop app, while the Plus card lists the web, CLI, IDE extension and iOS |
| GitHub Copilot | GitHub AI Credits (1 credit = US$0.01), deducted at per-model token rates | Pro (US$10/month) includes 1,000 base credits plus a 500-credit flex allotment, for 1,500 credits a month. Only some existing annual plans kept premium-request billing after 2026-06-01 |
| Cursor | Usage is split into two pools: one for Cursor's own models, and one that deducts third-party model usage at API rates | Pro, Pro Plus and Ultra include both pools |
| Gemini CLI | A daily request limit that depends on the authentication method, or pay-as-you-go | Google account (Gemini Code Assist for individuals) 1,000 requests a day, Google AI Pro 1,500, Ultra 2,000, free Gemini API key 250 |
Requests, tokens, credits and subscription limits are mixed together, so you cannot directly compare the cost of the same task across tools. The only way to compare is to run a few of your own tasks in each tool and read the values on its usage page. This article did not do that measurement.
What changed since the June initial note
This article rewrites an initial note published on 2026-06-16. Below are statements from that note and what today's official documentation shows.
| Statement in the initial note | Result checked on 2026-10-06 |
|---|---|
| Codex is based on GPT-5.5 | GPT-5.5 retires from all ChatGPT, ChatGPT Work and Codex plans on 2026-10-14. The pricing page says the OpenAI API is not affected |
| Copilot Pro at US$10/month is the cheapest option | Pro is still US$10/month, but the usage unit has changed to AI Credits |
| Cursor, Codex and Copilot adopted Agent Skills | Adding Claude Code and Gemini CLI, all five describe it as an open standard in their docs. The skill folders, however, have not converged |
| MCP moved under the Linux Foundation | Confirmed in the Linux Foundation press release. With the formation of AAIF on 2025-12-09, Anthropic's MCP, Block's goose and OpenAI's AGENTS.md were contributed |
| Benchmark figures (SWE-bench Verified, Terminal-Bench 2.0 and others) | Removed. Measurement conditions differ from source to source, which makes them hard to use as grounds for choosing a tool, and they fall outside this article's scope (configuration and execution) |
| Number of public MCP servers, monthly downloads, growth in job postings, parallel runs per tool | Removed. We could not check them against primary sources |
| Windsurf, Kiro, Antigravity, Jules, Devin, Aider, Cline and others | Left out of this comparison. See "What is not settled yet" below |
What you can do today
Only items that follow directly from the documentation comparison above.
1. Keep repository instructions in one AGENTS.md
Codex, Copilot and Cursor read it as is. If the repository has a CLAUDE.md, put @AGENTS.md on its first line so Claude Code reads both. For Gemini CLI, add AGENTS.md to context.fileName in settings.json. Don't put team-wide content in AGENTS.override.md, which only Codex reads.
2. Match skill locations to your tool mix
If you don't use Claude Code, .agents/skills/ alone covers four tools. If you use Claude Code together with Codex (or Gemini CLI), the docs require two locations: .claude/skills/ and .agents/skills/. Keep the frontmatter within the standard's six fields.
3. Check the approval mode of your current session
If you have updated Claude Code to 2.1.283 or later, terminal sessions may start in auto mode, and in Cursor Auto-review is the recommended default. Both vendors' docs state that the classifier does not guarantee safety. Lock down the actions a person must always see using the mechanism each tool documents, such as ask and deny rules in Claude Code, block_instructions in Cursor and rules in Codex.
4. If you use a classifier, turn on the sandbox too
In Claude Code and Gemini CLI the shell sandbox is off by default. If you use automatic approval with the sandbox off, a command the classifier wrongly lets through has the full permissions of your user account.
5. Keep secrets in cloud environments to a minimum
Cursor Cloud Agents never ask for approval, and Copilot's firewall does not directly cover MCP server processes. Put only the secrets and network allowances that the task actually needs into a cloud environment.
6. Find configurations that pin a retiring model
If your Codex configuration or scripts pin GPT-5.5, change them before 2026-10-14. The pricing page points to the retirement notice in the models documentation.
What is not settled yet
- This article is a rewrite of the 2026-06-16 initial note. The initial note mostly cited blogs and comparison articles, and many of its figures were not checked against primary sources. This version relies only on each vendor's official documentation and standards documents, and statements we could not check were removed.
- We did no measurement of our own. Every cell describes documented behavior. For example, we did not run the tools to confirm whether Claude Code actually reads
.agents/skills/, or whether Codex reads.claude/skills/. A path that is not in the docs might work in practice, and the reverse is also possible. - Classifier accuracy is unknown. All three vendors say their classifiers can be wrong, but we found no public documentation of how often. This article does not rank classifier approaches.
- We looked at five tools only. Windsurf, AWS Kiro, Google Antigravity, Jules, Devin, Aider, Cline and OpenCode, which appeared in the initial note, were left out because we did not check their official docs this time. That does not mean they matter less.
- For Copilot we focused on cloud agent. AGENTS.md and skill support is based on docs that span several Copilot environments, but we did not compare the approval behavior of Copilot CLI or the IDEs.
- We did not compare model performance or output quality. This article cannot tell you which tool does better on the same task.
- Defaults and pricing change quickly. Claude Code's auto default starts at 2.1.283, and Cursor's Auto-review recommended default at 3.6. On versions newer than this article's baseline (Claude Code 2.1.290, Codex CLI 0.160.1, Gemini CLI 0.62.0), the tables may no longer hold.
References
Official documentation was downloaded as Markdown sources or through body APIs and compared on 2026-10-06.
| Source | What this article took from it | Type |
|---|---|---|
| Claude Code — Memory · Skills · MCP | When AGENTS.md is read (2.1.277 and later, when there is no CLAUDE.md), the @AGENTS.md import, files it does not read, the skill location table, extension fields outside the standard, .mcp.json | Primary (vendor) |
| Claude Code — Permission modes · Sandboxing · Cloud · Setup · Costs | The auto default (2.1.283 and later) and its caveat, the sandbox being off by default and excluding MCP servers, cloud sessions' isolated VMs, network and credentials, plan requirements | Primary (vendor) |
| Codex — AGENTS.md · Build skills · MCP | AGENTS.override.md precedence, the 32 KiB limit, the .agents/skills location, config.toml | Primary (vendor) |
| Codex — Sandbox · Agent approvals & security · Auto-review · Codex Cloud · Pricing | Sandbox and approval defaults, network off by default, the reviewer agent's scope, cloud task workspaces and the legacy two-phase runtime, what plans include, the GPT-5.5 retirement date | Primary (vendor) |
| GitHub — Repository custom instructions · About agent skills | Handling of AGENTS.md, CLAUDE.md and GEMINI.md, skill folder locations | Primary (vendor) |
| GitHub — Copilot cloud agent · MCP and cloud agent · Firewall · Usage-based billing | Ephemeral cloud environment, per-task limits, MCP tools only and no OAuth remote servers, firewall defaults and limits, AI Credit rate and Pro allowance | Primary (vendor) |
| Cursor — Rules · Skills · MCP · Run Modes · Cloud Agents · Models and pricing | AGENTS.md support, skill folders (including compatibility paths), .cursor/mcp.json, Auto-review behavior, caveat and change log (3.5, 3.6), sandbox platform requirements, Cloud Agents' isolated VMs and absence of approval, the two usage pools | Primary (vendor) |
| google-gemini/gemini-cli docs (gemini-md, skills, sandbox, configuration, mcp-server, quota-and-pricing) | context.fileName, skill folders, approval modes and the YOLO restriction, sandbox off by default, mcpServers, daily request limits by authentication method | Primary (vendor) |
| Agent Skills Specification | The six frontmatter fields, required fields, name rules | Primary (standard) |
| Linux Foundation — Agentic AI Foundation announcement | Formation on 2025-12-09; contribution of MCP, goose and AGENTS.md | Primary (foundation) |
npm registry — @anthropic-ai/claude-code · @openai/codex · @google/gemini-cli | Newest versions published on 2026-10-06: 2.1.290 · 0.160.1 · 0.62.0 | Checked directly |
The 2026-06-16 initial note was rewritten to current standards on 2026-10-06. Benchmark and market figures and secondary-source citations from the initial note were removed because we could not check them against primary sources. If defaults or pricing change, we will update this article and record the revision date.