Codex has several extension mechanisms. They are complementary, but using the wrong one creates unnecessary configuration.
| Need | Use |
|---|---|
| Durable behavior | AGENTS.md |
| Reusable procedure | Skill |
| Installable bundle | Plugin |
| External data or actions | MCP or connector |
| Specialized parallel worker | Subagent |
Codex initially loads skill metadata, then reads full instructions and references only when the skill is selected. A precise description matters more than a large always-loaded prompt.
---
name: release-check
description: Verify a release candidate. Use before tagging a production release.
---
1. Run the repository release checks.
2. Summarize failures with file references.
3. Do not publish or tag anything.
Before creating an extension, ask what capability is actually missing:
| Example | Smallest fit |
|---|---|
| Always run one project-specific test command | AGENTS.md |
| Prepare a release using a repeatable checklist | Skill |
| Distribute release and incident skills together | Plugin |
| Read current incidents from Sentry | MCP or connector |
| Investigate logs while another agent traces code | Explicit subagents |
A skill is instructions until it invokes scripts or tools. An MCP server may expose read operations, destructive actions, or both. Plugins can bundle several capabilities. Review tool lists, authentication, approval modes, and update sources before installation.
Every installed description competes for discovery and every active tool expands the decision surface. Disable unused skills and MCP servers instead of keeping them “just in case.”
Inventory three existing Kiro or Claude customizations. Classify each as guidance, workflow, distribution, external capability, or parallel role. For each, explain why the next larger mechanism would be unnecessary.
Codex customization explains how AGENTS.md, skills, plugins, MCP, and subagents fit together.