What are Codex skills? How they load, where they live and how to use them

Codex skills are folders of instructions Codex loads only when a task needs them. How loading works, where skills live, how to invoke them, where to get them.

  • Start here
  • 6 min read
  • Updated
  • By the Codex Skills editors

The short answer

A Codex skill is a folder that teaches Codex one kind of task. At its center is a file called SKILL.md: a few lines of YAML frontmatter with a name and a description, followed by Markdown instructions. The folder can also carry scripts Codex runs, reference documents it reads on demand, and templates or other assets.

Skills follow the open Agent Skills format, so the same folder works in other agents that read that format. In Codex they are available in the CLI, the IDE extension and Codex in the ChatGPT desktop app.

The reason skills exist is context. You could paste a 200-line release checklist into every prompt, or keep it in AGENTS.md where it loads into every session whether you are releasing or fixing a typo. A skill keeps that checklist out of the way until the task needs it.

What is inside a skill folder

release-notes/
├── SKILL.md            # required: frontmatter + instructions
├── scripts/            # optional: code Codex can run
│   └── collect_prs.py
├── references/         # optional: docs Codex reads when needed
│   └── style.md
├── assets/             # optional: templates, schemas, images
│   └── template.md
└── agents/
    └── openai.yaml     # optional: Codex UI metadata, invocation policy, tool dependencies

A minimal SKILL.md looks like this:

---
name: release-notes
description: Drafts user-facing release notes from merged pull requests since the last tag. Use when the user asks for release notes, a changelog entry or a "what shipped" summary.
---

1. Find the last tag with `git describe --tags --abbrev=0`.
2. Run `scripts/collect_prs.py <tag>` to list merged PRs.
3. Group entries as Added, Changed, Fixed. Follow references/style.md.
4. Write the result to RELEASE_NOTES.md and show the diff.

Only name and description are required. The SKILL.md format reference covers every field, naming rules and the optional agents/openai.yaml file.

How Codex loads skills

Codex uses progressive disclosure: it reveals a skill in stages instead of loading everything at startup.

StageWhat Codex has in contextWhen
CatalogEach skill’s name, description and file pathAt the start of a session
InstructionsThe full SKILL.md bodyWhen Codex selects the skill or you mention it
ResourcesFiles from references/, output of scripts/, assetsOnly when the instructions call for them

The catalog has a budget. By default it uses at most 2% of the model’s context window, or 8,000 characters when the window size is unknown. When many skills are installed, Codex shortens descriptions first; with a very large set it may leave some skills out of the catalog and show a warning. You can change the budget with skills.max_context_tokens in ~/.codex/config.toml, up to 10,000 tokens:

[skills]
max_context_tokens = 6000

The budget only covers the catalog. Once a skill is selected, Codex reads its whole SKILL.md, which is why a skill’s body should stay focused and push long material into references/.

Two practical consequences follow. First, the description does most of the work: it is the only text Codex sees when deciding whether a skill applies, so it needs the trigger words a user would actually type. Second, installing hundreds of skills is not free. Each one adds a line to the catalog, and past the budget the descriptions get trimmed, which makes implicit matching less reliable. The troubleshooting guide covers both.

Where Codex looks for skills

ScopeLocationTypical use
Repo.agents/skills in the working directorySkills for one service or module
Repo.agents/skills in each parent folder up to the repository rootSkills shared by a part of a monorepo, or by the whole repo at the root
User~/.agents/skillsYour personal skills, available in every repository
Admin/etc/codex/skillsSkills for every user on a machine or container
SystemBundled with CodexBuilt-ins such as skill-creator

A few details matter in practice:

  • Symlinks are followed. You can keep skills in one git checkout and link them into ~/.agents/skills.
  • Names are not merged. If two skills share a name, Codex keeps both and both can appear in the picker. Pick unique names.
  • Changes are picked up automatically. If an edited or newly installed skill does not show up, restart Codex.
  • Older installs. Earlier Codex releases used ~/.codex/skills. Current Codex still reads that folder for backward compatibility, but new skills belong in ~/.agents/skills.
  • Cloud tasks. Skills committed to the repository are available in Codex cloud tasks. Personal skills from your machine are not synced to cloud environments.

Plugins add one more source: an installed Codex plugin can bundle skills, which become available in the next session after install.

Using a skill

There are two ways a skill gets used.

Explicit invocation. In the CLI or IDE extension, type $ and the skill name, or run /skills to browse the list and insert one:

$release-notes since v2.3.0, skip dependency bumps

This always loads the skill, regardless of how well your wording matches its description. Use it when you know which skill you want.

Implicit invocation. Codex compares your request against the catalog and loads a skill on its own when the task matches its description. Asking “write the release notes for this sprint” should pull in the release-notes skill without you naming it.

A skill author can turn implicit use off. Setting allow_implicit_invocation: false under policy in agents/openai.yaml means Codex only loads the skill when you mention it with $. That suits skills with side effects, such as deploy or publish workflows.

To switch a skill off without deleting it, add an entry to ~/.codex/config.toml and restart Codex:

[[skills.config]]
path = "/Users/you/.agents/skills/release-notes/SKILL.md"
enabled = false

Skills compared with AGENTS.md and MCP

Codex has several ways to shape its behavior, and they are meant to be combined:

MechanismLoadedBest for
AGENTS.mdEvery session, before any workBuild and test commands, conventions, boundaries that always apply
SkillCatalog always, body on demandRepeatable procedures, domain knowledge, scripts
MCP serverTools listed when the server startsLive access to external systems: issue trackers, browsers, docs
PluginInstalled as a packageDistributing skills together with MCP servers and other parts

A useful rule: if Codex should know it on every task, it goes in AGENTS.md. If Codex should know it only when doing a particular kind of task, it is a skill. If Codex needs to reach a system outside the repository, that is MCP, and a skill can describe how to use those tools well. The decision guide walks through edge cases.

Where to get skills

Built into Codex. System skills ship with Codex. $skill-creator interviews you and drafts a new skill; $skill-installer installs skills from OpenAI’s curated list (for example $skill-installer linear) or from another GitHub repository.

Plugins. The plugin directory shared by ChatGPT and Codex holds packaged workflows, many of which include skills. In the CLI, /plugins opens the browser.

This directory. codexskills.dev is an independent catalog of free, MIT-licensed skills written for Codex. It is not affiliated with OpenAI. Every skill can be installed with one command:

curl -fsSL https://codexskills.dev/install.sh | sh -s -- systematic-debugging agents-md-authoring

That unpacks each skill into ~/.agents/skills/<name>/. Add --project to install into ./.agents/skills so the skill is committed with the repository. The install guide covers every method, including manual copies, git and Windows.

Write your own. A skill is a text file, so the fastest path to a skill that fits your team is often to write it. The first skill tutorial builds one with $skill-creator and by hand.

What to install first

If you are new to skills, start small. Three or four skills you actually use teach you more than fifty you never trigger. These are good first picks:

The Starter Pack collection bundles ten of these, and the best Codex skills guide lists more by role.

Frequently asked questions

What is a Codex skill?

A Codex skill is a folder containing a SKILL.md file with a name, a description and instructions, plus optional scripts, reference documents and assets. Codex reads the name and description up front and loads the full instructions only when a task matches or you mention the skill by name.

Where does Codex look for skills?

Codex scans .agents/skills in every directory from your working directory up to the repository root, then ~/.agents/skills for your personal skills, /etc/codex/skills for machine-wide admin skills, and the system skills bundled with Codex. Symlinked skill folders are followed.

How do I use a skill in Codex?

Type $ followed by the skill name in the Codex CLI or IDE extension, or run /skills to pick one from a list. Codex can also choose a skill on its own when your request matches the skill's description.

Are Codex skills the same as AGENTS.md?

No. AGENTS.md is loaded at the start of every session and holds rules that always apply to a repository. A skill sits idle until a task calls for it, so it can hold a long, specific procedure without costing context on unrelated work.

Do skills cost context when I am not using them?

A little. Codex keeps a list of every available skill's name, description and file path in context, capped by default at 2% of the model's context window. The full SKILL.md body is read only when the skill is selected.

esc
Just launched

Codex Skills Pro is live

79 premium skills for Codex, each with scripts, references and an evidence report that proves the result.

Bought one by one$882.21
All 79 skills$49
94% off

That's $0.62 a skill, paid once.

Get all 79 for $49Or pick single skills from $4.99 →

Secure checkout by Creem