Yes, you can use Claude skills in Codex, Cursor and GitHub Copilot without changing them, because all of them follow the open Agent Skills format that Anthropic built and released as a standard. A skill is a folder with a SKILL.md file in it, and the file is the same everywhere. What differs is the folder each tool reads, so a skill that works in Claude Code can be invisible to Codex until you move or link it. ChatGPT supports skills too, but only on Business, Enterprise, Healthcare and Edu plans, and you add them by upload. Docs checked 2026-10-23.
What is a Claude skill?
A skill is a set of instructions an agent loads only when a task calls for it. The folder holds a SKILL.md with YAML frontmatter on top and Markdown instructions below, plus optional scripts/, references/ and assets/ folders (spec).
The standard needs two frontmatter fields:
---
name: weekly-report
description: Builds the Monday metrics report from the funnel table. Use when asked for the weekly report or the Monday numbers.
---
Pull last week's rows, compare them to the week before, and flag anything that moved more than 20%.
name is lowercase letters, numbers and hyphens, up to 64 characters, and it has to match the folder name. description can run to 1,024 characters, and it decides whether the skill ever gets used. At startup an agent loads only each skill's name and description, about 100 tokens per skill, and reads the full file when a task matches. That's why you can keep dozens installed, and why a vague description like "helps with reports" is the usual reason a skill never fires. Name the task and the words people use when they ask for it.
Claude skills vs agents, MCP, commands and projects: what's the difference?
A skill is know-how the agent pulls in when it needs it. The things it gets confused with each do a different job:
- Skill vs agent (subagent): a subagent is a separate agent with its own context that the main agent hands work to. Use it for a big side task you don't want filling the main conversation. A skill is instructions the main agent reads itself.
- Skill vs MCP: an MCP server is a running service that gives the agent tools to call, like reaching another app or your data. A skill is a procedure, and it can tell the agent when to use those tools.
- Skill vs command: a command is a prompt you trigger by typing
/name. In Claude Code, skills now do this too, and the older.claude/commands/files still work (docs). - Skill vs project: a claude.ai project attaches files and instructions to a set of chats and loads them every time. A skill loads only when the task needs it.
- Skill vs CLAUDE.md or rules: those load at the start of every session, so they're for rules that always apply. Skills are for procedures you need some of the time.
Where does each tool look for skills?
Same file format, different folders:
| Tool | Project skills | Personal skills | Also reads |
|---|---|---|---|
| Claude Code | .claude/skills/ |
~/.claude/skills/ |
Skills enabled on your claude.ai account |
| Codex | .agents/skills/ |
~/.agents/skills/ |
Nothing else in its docs |
| Cursor | .agents/skills/, .cursor/skills/ |
~/.agents/skills/, ~/.cursor/skills/ |
.claude/skills/, .codex/skills/ |
| GitHub Copilot | .github/skills/, .claude/skills/, .agents/skills/ |
~/.copilot/skills/, ~/.agents/skills/ |
Works in the cloud agent, CLI and VS Code agent mode |
| claude.ai and Cowork | None | Zip upload in Settings > Features | Nothing from disk |
| ChatGPT | None | Created in chat, in the Skills editor, or uploaded | Nothing from disk |
Cursor and Copilot are the forgiving ones, since they read Claude's folder. Codex reads only .agents/skills/, and Claude Code's docs list only its own .claude/skills/.
How do I keep one copy of a skill working in all of them?
Keep skills in .agents/skills/, which Codex, Cursor and Copilot all read, and make Claude Code's folder a symlink to it:
mkdir -p .agents/skills .claude
ln -s ../.agents/skills .claude/skills
Do the same for personal skills with ~/.agents/skills and ~/.claude/skills, then run /skills in Claude Code to confirm it picked them up. It's the same trick we use for instructions: our AGENTS.md files are symlinks to CLAUDE.md, so Codex and Cursor read exactly what Claude Code reads. If you'd rather avoid the symlink, keep skills in .claude/skills/; Cursor and Copilot read it too, and only Codex misses out.
If a skill has to travel, stick to the standard's six frontmatter fields: name, description, license, compatibility, metadata and allowed-tools. Claude Code adds extras such as disable-model-invocation and context: fork, and its docs say only the six standard fields are accepted outside Claude Code. Codex keeps its own settings in a separate agents/openai.yaml file, so they don't clutter the shared SKILL.md. Keep the file under 500 lines, as the spec recommends, and move long reference material into separate files.
How do I install a Claude skill?
It depends where you want it. In Claude Code, Codex, Cursor or Copilot, put the skill folder in one of the paths in the table above, and check /skills in Claude Code to see what loaded. In claude.ai and Cowork, zip the folder and upload it in Settings > Features, on Pro, Max, Team or Enterprise with code execution on. In ChatGPT, go to Skills > Create > Upload from your computer.
You call a skill by name with /skill-name in Claude Code and Cursor, $ or /skills in Codex, and @ in ChatGPT. Otherwise the agent picks it up when your request matches its description.
Do Claude skills sync between claude.ai, Claude Code and the API?
Only one way. Anthropic's overview says custom skills don't sync across surfaces: a skill uploaded to claude.ai has to be uploaded again to the API, and API skills don't appear on claude.ai (overview). The exception is Claude Code, which from v2.1.273 downloads the skills enabled on your claude.ai account into ~/.claude/skills/synced/ in Cowork, cloud and signed-in terminal sessions (docs). It never uploads, so edit those skills on claude.ai, not on disk, or the next sync overwrites you.
Sharing differs too. The overview says custom skills on claude.ai are per user, so each teammate uploads their own copy, while API skills are shared across a workspace and Claude Code skills travel with the repo.
Can I use a Claude skill in ChatGPT?
Yes, if your plan has skills. OpenAI says its skills build on the same open standard (OpenAI), and ChatGPT's help page lists Business, Enterprise, Healthcare and Edu as the plans that get them (help). Uploads are scanned first and can come back marked "Needs Review" or "Blocked". Inside a workspace you can share a skill with people or publish it to the workspace library if your admin allows it. Like claude.ai, it's a copy: change the skill in your repo and you upload it again.
Where Tokenrip fits
Folders and symlinks solve one repo on one machine. They don't reach a teammate's Cowork, an agent running on its own computer, or ChatGPT on the web, and every upload is a copy that starts going stale the day you change the original.
Tokenrip keeps skills for a person or a team in one place, versioned, and any agent connected to the workspace can list them and read the current version, over the MCP connector or the rip CLI. This blog runs that way: the procedure for writing and publishing a post, including the validation rules and the cover style, is a team skill in Tokenrip, and whichever agent writes a post fetches the latest version first with rip skill get tokenrip-blog --team tokenrip. When Simon changes a rule, the next post follows it, with nothing to re-upload.
Connect me to Tokenrip. Fetch https://tokenrip.com/setup?ref=claude-skills and follow it.
Related reading: Claude Code for teams, Codex and Claude Code together, Claude Cowork vs Claude Code.