Eazler AI Lab AI Engineering Journal
Skip to article
Agents◷ 18 min readUpdated:

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.

Korean original: 한국어 원문 (2026-06-16, rewritten 2026-10-06)Scope: official docs for Claude Code 2.1.290 · Codex CLI 0.160.1 · Gemini CLI 0.62.0 · Cursor · GitHub CopilotSources checked: 2026-10-06Own measurement: none (documentation comparison)

Key findings

4 / 5
tools that read AGENTS.md without extra configuration
Gemini CLI needs a setting; Claude Code only when there is no CLAUDE.md
0
project skill folders that appear in the docs of all five tools
.agents/skills in 4 · .claude/skills in 3
2 / 5
tools whose default approval for interactive local sessions goes to a classifier
Claude Code 2.1.283 and later, Cursor 3.6 and later (recommended default)
Main conclusion: All five tools support instruction files (AGENTS.md), skills (Agent Skills) and connections to external tools (MCP), so most repository instructions and skill definitions can be reused when you switch tools. But each tool reads them under different conditions and from different folders: to use the same skill in all five, the docs require two locations, .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.md file 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.

ToolOwn instruction fileWhen it reads AGENTS.md
Claude CodeCLAUDE.md, .claude/CLAUDE.md, CLAUDE.local.mdOnly 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 CodexAGENTS.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.mdReads 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/*.mdcReads AGENTS.md in the project root and in subdirectories
Gemini CLIGEMINI.mdNot 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.

ToolProject skill foldersPersonal 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.

Fields outside the standard: Each tool adds its own fields to the Agent Skills standard fields. Claude Code has extensions such as invocation control (who may invoke a skill), running a skill as a subagent, and dynamic context injection (shell commands run before the skill is passed to the model, and their output is inserted into the skill body); Cursor documents 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.

ToolProject-level configurationLimits stated in the docs
Claude Code.mcp.jsonEven 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 agentJSON 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.jsonCloud Agents support HTTP and stdio servers, and OAuth
Gemini CLImcpServers 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?

ToolDefault approval in interactive sessionsShell sandbox defaultCaveat stated in the docs
Claude Codeauto: 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.283Off. Turn it on with /sandbox or sandbox.enabled (macOS, Linux, WSL2)"Auto mode reduces permission prompts but does not guarantee safety"
OpenAI CodexFor 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 offThe reviewer agent (auto_review) "is a reviewer swap, not a permission grant"; it does not widen the sandbox
CursorAuto-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 serversApplied 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 CLIdefault: asks for approval. YOLO mode, which auto-approves every action, can be enabled only from the command lineOff. Turn it on with --sandbox and similar options; it is on by default in YOLO mode—
GitHub CopilotCloud agent does not run locally, so it is covered in the next sectionNot applicableWe 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.

ToolExecution environmentNetwork and secretsUnit of work and approval
Claude Code cloud sessionsAn 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 behalfYou choose the approval mode per session. Available on Pro, Max and Team, and on some Enterprise seats
Codex CloudA separate workspace per task. It keeps running while your computer is asleepFor 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 separatelyYou review the result, then commit or open a pull request
Copilot cloud agentAn 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 processesOne repository, one branch and one pull request per task
Cursor Cloud AgentsAn isolated VM with a desktop environment per task. The agent can check the UI in a browserEach environment is configured with repositories, dependencies, secrets and network accessLocal Run Modes do not apply, and the agent never asks for approval
Gemini CLIThe Gemini CLI docs we read describe no cloud executionNot applicableNot 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.

ToolWhat it bills byDetails checked
Claude CodeUsage 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 CodexUsage 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 CopilotGitHub AI Credits (1 credit = US$0.01), deducted at per-model token ratesPro (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
CursorUsage is split into two pools: one for Cursor's own models, and one that deducts third-party model usage at API ratesPro, Pro Plus and Ultra include both pools
Gemini CLIA daily request limit that depends on the authentication method, or pay-as-you-goGoogle 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 noteResult checked on 2026-10-06
Codex is based on GPT-5.5GPT-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 optionPro is still US$10/month, but the usage unit has changed to AI Credits
Cursor, Codex and Copilot adopted Agent SkillsAdding 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 FoundationConfirmed 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 toolRemoved. We could not check them against primary sources
Windsurf, Kiro, Antigravity, Jules, Devin, Aider, Cline and othersLeft 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.

SourceWhat this article took from itType
Claude Code — Memory · Skills · MCPWhen 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.jsonPrimary (vendor)
Claude Code — Permission modes · Sandboxing · Cloud · Setup · CostsThe 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 requirementsPrimary (vendor)
Codex — AGENTS.md · Build skills · MCPAGENTS.override.md precedence, the 32 KiB limit, the .agents/skills location, config.tomlPrimary (vendor)
Codex — Sandbox · Agent approvals & security · Auto-review · Codex Cloud · PricingSandbox 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 datePrimary (vendor)
GitHub — Repository custom instructions · About agent skillsHandling of AGENTS.md, CLAUDE.md and GEMINI.md, skill folder locationsPrimary (vendor)
GitHub — Copilot cloud agent · MCP and cloud agent · Firewall · Usage-based billingEphemeral cloud environment, per-task limits, MCP tools only and no OAuth remote servers, firewall defaults and limits, AI Credit rate and Pro allowancePrimary (vendor)
Cursor — Rules · Skills · MCP · Run Modes · Cloud Agents · Models and pricingAGENTS.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 poolsPrimary (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 methodPrimary (vendor)
Agent Skills SpecificationThe six frontmatter fields, required fields, name rulesPrimary (standard)
Linux Foundation — Agentic AI Foundation announcementFormation on 2025-12-09; contribution of MCP, goose and AGENTS.mdPrimary (foundation)
npm registry — @anthropic-ai/claude-code · @openai/codex · @google/gemini-cliNewest versions published on 2026-10-06: 2.1.290 · 0.160.1 · 0.62.0Checked 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.

Newsletter

The week’s new reports, every Sunday

One email a week with that week’s reports, skipped when nothing new came out. Nothing but report news.

Used only to announce new reports. Unsubscribe any time. Privacy Policy
Publisher

Eazler AI Lab is the AI engineering journal of Eazler Inc. We read primary sources in full, and say so when something is unverified.

Editorial standards and method →

We also post report summaries on Threads: @eazler.inc.

Building or adopting AI agents? hello@eazler.com