Guides · Updated November 4, 2026

Do agent skills work in Codex, Cursor and Gemini CLI?

By Tineessa Nelson, Use This Skill

Yes. Claude Code, Codex, Cursor and Gemini CLI all read the same format: a folder with a SKILL.md file whose front matter gives a name and a description. Most skills move between them unchanged: of the 1,959 public skills we read on November 4, 2026, 1,675 use no feature that only Claude Code documents, and 84 depend on text that only Claude Code fills in before the model reads it.

How many real skills are portable?

Use This Skill lists every skill folder it finds in public GitHub repositories. On November 4, 2026, we cloned the 48 repositories in the November 2 crawl (data/skills.json: 2,060 skills) and read each SKILL.md. One repository with 100 skills could not be cloned without signing in, and one skill's file was no longer at its recorded path, which left 1,959 skills from 47 repositories.

What we counted Skills Repositories
Front matter with both name and description 1,959 47
Use no Claude Code-only field, variable, command or tool name 1,675 41
Use at least one Claude Code-only feature 284 18
Depend on text Claude Code fills in (!`command`, ${CLAUDE_SKILL_DIR}, $ARGUMENTS, other CLAUDE_ variables) 84 5
Name a Claude Code tool in the instructions (mostly AskUserQuestion) 70 6
Ship agents/openai.yaml for Codex 133 6
Name breaks Cursor's rule (lowercase, numbers and hyphens, same as the folder) 103 8
Carry a front matter field outside the six in the Agent Skills spec 1,025 20

SKILL.md files read on November 4, 2026 from each repository's default branch, at the path recorded in the November 2, 2026 crawl. Front matter parsed as YAML; body searched by script. "Claude Code-only" means listed in Claude Code's skills documentation and in none of the Codex, Cursor or Gemini CLI skills pages, checked the same day.

The Claude Code-only features are concentrated. One game-studio repository accounts for 74 of the 284 skills, and 69 of the 84 that need Claude Code to fill in text. Outside that repository, 210 skills use a Claude Code-only feature, and 183 of them do so only through front matter fields that another agent does not act on.

What does each agent read?

All four products link to the Agent Skills open standard at agentskills.io, and all four load a skill in the same order: the name and description first, the full SKILL.md when the task matches. The differences are in folders and extra settings.

Claude Code Codex Cursor Gemini CLI
Project folder .claude/skills .agents/skills .agents/skills, .cursor/skills .gemini/skills, .agents/skills
Also reads Nested and --add-dir folders, plugins /etc/codex/skills, bundled skills .claude/skills, .codex/skills Extension and built-in skills
name Optional (defaults to the folder) Required Required; lowercase, hyphens, must match the folder Should match the folder
Manual-only switch disable-model-invocation allow_implicit_invocation: false in agents/openai.yaml disable-model-invocation Not documented; asks you to confirm each activation
Limit to file paths paths Not documented paths Not documented
Call by name /name $name or /skills / then search Activated by the model

From each product's official skills documentation, checked November 4, 2026; links in the sources below.

The folder row matters most in practice. A skill installed only in .claude/skills is visible to Claude Code and Cursor, but Codex and Gemini CLI do not list that folder. A skill in .agents/skills is visible to Codex, Cursor and Gemini CLI, but Claude Code's documentation lists only .claude/skills locations. For installing into either, see how to install a skill from GitHub and the per-agent paths in how to use a skill.

Which Claude Code features do not carry over?

Claude Code's documentation says it "extends the standard with additional features like invocation control, subagent execution, and dynamic context injection." Here is how often the skills we read use each one.

Claude Code feature What it does in Claude Code Skills using it
allowed-tools Lets listed tools run without asking, for that turn 228
argument-hint Autocomplete hint for arguments 103
user-invocable Hides or shows the skill in the / menu 76
model Switches model while the skill runs 74
${CLAUDE_SKILL_DIR} Replaced with the skill's own folder path 69
!`command` Runs a shell command and puts its output in the skill before Claude reads it 67
disable-model-invocation Manual use only (Cursor supports it too) 33
$ARGUMENTS Replaced with what you typed after /name 15
effort Sets the effort level while the skill runs 3

allowed-tools is one of the six fields in the Agent Skills spec, but of the four products only Claude Code's skills page describes acting on it. The fields further down mostly change convenience, not the result.

The lines that fill in text are different. The Codex, Cursor and Gemini CLI skills pages describe no command execution or variable substitution inside SKILL.md, so in those agents the model receives the line as written. A skill such as adopt opens with a !`bash "${CLAUDE_SKILL_DIR}/..."` line that loads the project's settings; in Claude Code the output arrives ready to use, and elsewhere the agent sees a command it may or may not decide to run. The same goes for a skill that tells the agent to "use AskUserQuestion": that tool exists in Claude Code, and another agent has to find its own way to ask.

How do I make a skill work in all four?

  1. Keep the front matter to the spec. name, description, license, compatibility, metadata and allowed-tools are the six fields Claude Code's documentation names as the Agent Skills spec. They load everywhere, and they are also the only fields a claude.ai upload or the Skills API accepts; 1,025 of the skills we read carry at least one other field, most of them a requires field from a single template.
  2. Name the skill the way Cursor requires. Lowercase letters, numbers and hyphens, identical to the folder name. That also satisfies Codex's and Gemini CLI's guidance.
  3. Write relative paths, not ${CLAUDE_SKILL_DIR}. Cursor's documentation says to reference scripts by their path from the skill root, and Gemini CLI gives the model access to the whole skill folder once it is activated.
  4. Put commands in the instructions instead of !`command`. "Run scripts/check.sh and read its output" works in every agent; injection works only in Claude Code.
  5. Pair the manual-only settings. The ask-matt skill sets disable-model-invocation: true and ships an agents/openai.yaml with allow_implicit_invocation: false, which covers Claude Code, Cursor and Codex. All 24 skills in our count that set the Codex policy also set the front matter field.
  6. Install to both folders. .agents/skills for Codex, Cursor and Gemini CLI, and .claude/skills (a copy or a symlink) for Claude Code.

What goes into the context, and when, is the same idea in all four products; progressive disclosure in agent skills compares how each one budgets the first stage.

Does a skill's safety change between agents?

No. The files are the same, so the risk is the same. What changes is who asks before something runs: Gemini CLI shows a confirmation with the skill's name, purpose and folder before it activates a skill, while in Claude Code a skill's allowed-tools list can let named tools run without a prompt for that turn.

In the November 2, 2026 scan of 2,060 skills (data/scan.json), 1,987 were clear, 58 needed a review and 15 were flagged. Before you install a skill in any agent, run the folder through the free skill check, which reads every text file for nine risky patterns and shows the file and line of each finding.

How we counted

The skill list and paths come from data/skills.json (crawl of November 2, 2026). Each repository was cloned at depth 1 from its default branch on November 4, 2026, and each skill's SKILL.md read at its recorded path. Front matter is the YAML block between the first two --- lines. Claude Code-only fields are those in Claude Code's front matter table that are not among the six spec fields; body features were found by searching for !` at the start of a line or after a space, a ```! block, ${CLAUDE_SKILL_DIR}, $ARGUMENTS, and CLAUDE_SESSION_ID, CLAUDE_EFFORT, CLAUDE_PROJECT_DIR, CLAUDE_PLUGIN_ROOT and CLAUDE_PLUGIN_DATA. Tool names counted were AskUserQuestion, TodoWrite, ExitPlanMode, NotebookEdit, SlashCommand and "Task tool". Cursor's name rule was tested as lowercase letters and digits joined by single hyphens, equal to the folder name. Agent behavior comes from each product's documentation, read on November 4, 2026; we did not run the skills in each agent.

Questions

Where should I put a skill so every agent finds it?

According to each product's documentation on November 4, 2026, Codex, Cursor and Gemini CLI all read .agents/skills in the project, while Claude Code reads .claude/skills. Cursor also reads .claude/skills and .codex/skills. So a copy in .agents/skills covers Codex, Cursor and Gemini CLI, and a second copy or a symlink in .claude/skills covers Claude Code.

What happens to Claude Code fields like model or argument-hint in another agent?

The Codex, Cursor and Gemini CLI skills pages do not list them, so those agents do not act on them; none of the three pages says how it treats fields it does not list. One place where they do cause a failure is inside Anthropic's own products: Claude Code's documentation says a claude.ai upload, the Skills API or Anthropic's packaging script stops with an error on any field outside the six in the Agent Skills spec.

How do I stop a skill from loading on its own in every agent?

Use two settings. disable-model-invocation: true in the front matter works in Claude Code and Cursor, and an agents/openai.yaml file with allow_implicit_invocation: false does the same in Codex. In our November 2026 count, all 24 skills that set the Codex policy also set the front matter field. Gemini CLI's skills page documents no such switch, but it asks you to confirm before it activates a skill.

Is a skill that works in Claude Code safe to use in another agent?

Safety does not change with the agent, because the files are the same. What changes is who asks before a script runs. Gemini CLI asks you to confirm each activation; Claude Code honors a skill's allowed-tools list, which can skip permission prompts for that turn. The free skill check at usethisskill.com/scan reads every file in a skill folder for nine risky patterns, whichever agent you use.