Codex Skills and /skills, Explained: Built-in, Custom, Plugin, Team-Shared

A complete Codex skills guide: what a skill is, how /skills discovery works, how to invoke skills, how to write SKILL.md, and how built-in, plugin, and custom skills differ.

What this covers

This guide explains Codex skills: what they are, why they appear under /skills, how to invoke them, how to write SKILL.md, and when to use a skill instead of a prompt, AGENTS.md, MCP, or a plugin.

Version note: Codex skills, plugins, and desktop capabilities change quickly. This guide is written against the 2026-05-22 Codex desktop / CLI 0.125.x workflow. The real source of truth is the /skills list in your current session.

One-sentence definition

A Codex skill is a local bundle of instructions, scripts, templates, or references that Codex can load on demand, turning a repeated workflow into a discoverable and reusable capability.

What /skills does

ItemExplanation
/skillsOpens the list of skills visible to the current session.
$SkillNameExplicitly asks Codex to use a skill by name.
Auto-selectionCodex may load a skill when the task clearly matches its description.
SKILL.mdThe instruction entry point for a skill.
Skill assetsScripts, templates, references, and examples that support the workflow.

/skills is not “run every skill” and not “install skills.” It is a discovery surface for capabilities visible in the current session.

Common skill types in Codex

TypeExplanationExamples
System skillsBuilt into Codex or provided by the host environment. Usually read-only.imagegen, openai-docs
Plugin skillsProvided by enabled plugins, often with MCP tools or artifact workflows.browser-use:browser, documents:documents, presentations, spreadsheets
User skillsCustom workflows stored in your local Codex skills directory.release-check, seo-audit
Project skillsRepo-scoped skills shared with a project/team.repo-qa, design-system-review
Thread-provided skillsTemporarily provided by the current thread/environment.Workspace-specific export or review workflows

Skill vs. AGENTS.md vs. slash command vs. MCP vs. plugin

GoalUseExplanation
Persistent project rulesAGENTS.mdRepo conventions, test commands, style, boundaries.
Reusable workflowskillRelease QA, SEO audit, render verification.
One prompt snippetprompt/snippetToo small for a skill.
Connect external systemsMCPBrowser, database, GitHub, internal APIs.
Ship skills plus toolspluginA packaged capability set for a team.
Discover available skills/skillsBrowse and select visible skills.

Rule of thumb: if the workflow needs steps, constraints, examples, and maybe scripts, make it a skill. If it is one sentence, keep it as a prompt.

What a skill looks like

my-skill/
  SKILL.md
  scripts/
    check-links.mjs
  templates/
    pr-description.md
  references/
    release-policy.md

Minimal SKILL.md:

---
name: release-check
description: Run this skill when the user asks to prepare a release, verify changelog, run tests, or create a release checklist.
---

# Release Check

1. Read AGENTS.md and package scripts.
2. Inspect git status and changed files.
3. Run the repo's fastest relevant tests first.
4. Verify changelog, version, and migration notes.
5. Produce a release checklist with blockers first.

Essentials:

  • Keep name short, stable, and memorable.
  • description should say when to use it, not market it.
  • Body should define steps, constraints, and output format.
  • Put scripts in scripts/, templates in templates/, long references in references/.

How to invoke a skill

InvocationExampleBest for
Explicit mentionUse $release-check to prepare this PR.You know the exact skill.
Pick from /skillsType /skills, then chooseYou forgot the name.
Natural trigger”Prepare a pre-release check.”The description is clear enough.
With filesUse $seo-audit on these MDX files.The skill must inspect files.
With toolsUse $browser to inspect localhost.The skill needs browser/docs/sheets tools.

Invocation template:

Use $release-check on the current repo.
Scope: changed files only.
Output blockers first, then commands run, then remaining risks.
Do not commit unless I ask.

How to write a good description

WeakStrong
Helps with releases.Use when the user asks to prepare a release, verify changelog/version, run pre-release tests, or produce a go/no-go checklist.
SEO skill.Use for auditing MDX article metadata, internal links, canonical slugs, hreflang, thin sections, and sitemap readiness.
Documents.Use when creating, editing, redlining, or visually verifying .docx documents.

A strong description includes trigger phrases, boundaries, and expected output. Avoid vague words like powerful, efficient, or automated.

Skill design checklist

CheckQuestion
TriggerWhen should Codex use it?
BoundaryWhat should it avoid?
InputWhat files, links, or data are required?
OutputWhat should the final output look like?
ToolsDoes it need browser, spreadsheet, document render, or MCP tools?
VerificationHow do we know it is done?
RiskCould it edit files, run commands, cost money, or expose data?

What should not be a skill

  • One-off tasks.
  • Tiny preferences like “answer briefly.”
  • Fast-changing temporary business data.
  • Secrets, tokens, passwords, customer data.
  • Final high-stakes legal, medical, financial, or ethical decisions.

Team-sharing guidance

PracticeNote
Version itReview skills like code.
Assign ownerEvery skill should have a maintainer.
Define forbidden areasName paths/commands the skill must avoid.
Start read-onlyAudit first, allow edits later.
Include examplesAdd 2-3 real invocation examples.
Prune stale skillsOld skills become bad instructions.

FAQ

Why is my skill missing from /skills? Check whether it is installed in a path visible to Codex, whether the plugin is enabled, and whether the current session has loaded that capability. For a project skill, confirm the repo path and the skill directory are both visible to Codex.

Can a skill run commands automatically? A skill is instructions plus resources. Command execution still depends on Codex tools, approval policy, and your request. A skill is not a permission bypass.

How is a skill different from a prompt library? A prompt is text. A skill is a reusable workflow package that can include instructions, resources, scripts, and tool guidance.

Do I have to use $SkillName? The $ form is a clear explicit mention. /skills is the discovery entry point. Natural language can also work when the description is clear.

Are Codex skills the same as Claude Code skills? The idea is similar: on-demand workflow instructions. The host tool, directory conventions, plugin system, and slash commands may differ. Do not copy Claude Code’s /commands, hooks, or directory structure directly into Codex.

First skills to build

SkillUse
repo-tourCodebase tour: architecture, directories, test entry points.
bug-auditBug audit through call paths before editing.
release-checkPre-release tests, version, changelog, risk list.
seo-mdx-auditMetadata, links, slugs, and thin-content review for MDX sites.
test-generationRead existing test style, then add minimal tests.
migration-planPlan phases and rollback points before large changes.

Tags: #AI coding #Codex #Skills #Tutorial