Agent Skills let you extend Codex with task-specific capabilities. A skill packages instructions, resources, and optional scripts so Codex can perform a specific workflow reliably. You can share skills across teams or the community, and they build on the open Agent Skills standard.
Skills are available in both the Codex CLI and IDE extensions.
A skill captures a capability expressed through markdown instructions inside a SKILL.md file accompanied by optional scripts, resources, and assets that Codex uses to perform a specific task.
-
my-skill/
-
SKILL.md Required: instructions + metadata
-
scripts/ Optional: executable code
-
references/ Optional: documentation
-
assets/ Optional: templates, resources
-
Skills use progressive disclosure to manage context efficiently. At startup, Codex loads the name and description of each available skill. Codex can then activate and use a skill in two ways:
- Explicit invocation: You can include skills directly as part of your prompt. To select one, run the
/skillsslash command, or start typing$to mention a skill. (Codex web and iOS don’t support explicit invocation yet, but you can still prompt Codex to use any skill checked into the repo.)
- Implicit invocation: Codex can decide to use an available skill when the user’s task matches the skill’s description.
In either method, Codex reads the full instructions of the invoked skills and any extra references checked into the skill.
Codex loads skills from these locations. A skill’s location defines its scope.
When Codex loads available skills from these locations, it overwrites skills with the same name from a scope of lower precedence. The list below shows skill scopes and locations in order of precedence (high to low):
| Skill Scope | Location | Suggested Use |
|---|---|---|
REPO | $CWD/.codex/skills | If in a repository or code environment, teams can check in skills most relevant to a working folder here. For instance, skills only relevant to a microservice or a code module. |
REPO | $CWD/../.codex/skills | If in a repository with nested folders, organizations can check in skills most relevant to a shared area in a parent folder. |
REPO | $REPO_ROOT/.codex/skills | If in a repository with nested folders, organizations can check in skills that are relevant to everyone using the repository. These serve as root skills that any subfolder in the repository can overwrite. |
USER | $CODEX_HOME/skills | Use to curate skills relevant to a user that apply to any repository the user may work in. |
ADMIN | /etc/codex/skills | Use for SDK scripts, automation, and for checking in default admin skills available to each user on the machine. |
SYSTEM | Bundled with Codex. | Useful skills relevant to a broad audience such as the skill-creator and plan skills. Available to everyone when they start Codex and can be overwritten by any layer above. |
To create a new skill, use the built-in $skill-creator skill inside Codex. Describe what you want your skill to do, and Codex will start bootstrapping your skill. If you combine it with the $plan skill, Codex will first create a plan for your skill.
You can also create a skill manually by creating a folder with a SKILL.md file inside a valid skill location. A SKILL.md must contain a name and description to help Codex select the skill:
---
name: skill-name
description: Description that helps Codex select the skill
metadata:
short-description: Optional user-facing description
---
Skill instructions for the Codex agent to follow when using this skill.
Codex skills build on the Agent Skills specification. Check out the documentation to learn more.
To expand on the list of built-in skills, you can download skills from a curated set of skills on GitHub using the $skill-installer skill:
$skill-installer linear
You can also prompt the installer to download skills from other repositories.
Plan a new feature
Codex ships with a built-in $plan skill that’s great to have Codex research and create a plan to build a new feature or solve a complex problem.
Access Linear context for Codex tasks
$skill-installer linear
Have Codex access Notion for more context
$skill-installer notion-spec-to-implementation