---
title: "Codex Provider"
slug: "skillset/reference/providers/codex"
description: Explains how Skillset renders adaptive and Codex-native source into Codex provider output.
---

<a id="codex-provider"></a>

Provider id: `codex`

The Codex [target](/skillset/glossary/#target) [renders](/skillset/glossary/#render) project guidance and configuration under `.codex/`, directory-local `AGENTS.md` files, ChatGPT product manifests and components inside the shared `plugins/<plugin>/` package, and the repository ChatGPT catalog at `.agents/plugins/marketplace.json` as [generated output](/skillset/glossary/#generated-output). Each product bundle uses the closed Agent Plugins root manifest and fixed portable components, with reviewed Codex-native interface, app, and hook meaning under `extensions.com.openai`. ChatGPT is product terminology for the bundle and catalog; `codex` remains the target and runtime identity, while Agent Plugins remains the portable package standard. [Adaptive source](/skillset/glossary/#adaptive-source) remains [canonical source](/skillset/glossary/#canonical-source); Codex-only behavior belongs in explicit [provider-native](/skillset/glossary/#provider-native) source or Codex-scoped overrides.

## Provider Shape

Portable listing metadata renders to `extensions.com.openai.interface`. The ChatGPT bundle has fixed locations for portable skills and MCP servers plus reviewed OpenAI extension locations for hooks and apps; neutral assets, scripts, and source files stay inside the package boundary. Format availability alone is not a Skillset implementation claim, so the generated registry table below reports current support for each feature. Codex does not currently expose a plugin-local agent or executable-bin surface equivalent to Claude's, so Skillset reports those [destinations](/skillset/glossary/#destination) as unsupported instead of copying incompatible files.

An ordinary build also owns `.agents/plugins/marketplace.json`. With no declared catalog targeting `codex`, Skillset derives one from enabled local ChatGPT bundles; otherwise it renders the one declared Codex-targeted catalog in entry order. Local `./` source paths resolve from the repository catalog root. The file makes packages discoverable to compatible local clients, but does not install, trust, enable, activate, register, sync, upload, or publish them. Repository discovery is distinct from explicit `codex plugin marketplace add` runtime registration, and `skillset marketplace update` remains a Claude-only writer.

Adaptive project agents render as TOML under `.codex/agents/`. Adaptive rule source renders to the `AGENTS.md` of the directory each rule governs, taken from its position under `.skillset/rules/`. Codex cannot narrow below a directory, so `paths` narrowing is recorded as a `degraded` render result rather than enforced. The `applies_to` attribute on a generated `AGENTS.md` section tells the reading agent the rule's scope; it is a signal, not enforcement. Codex `.rules` files are command-execution policy, not prose guidance, and remain a provider-native surface rather than an alternative rendering of rules. Tool policy that has no skill-local Codex enforcement surface remains visible metadata rather than a false [activation](/skillset/glossary/#activation) claim.

For exact source and destination behavior, use the feature pages for [plugins](/skillset/reference/features/plugins/), [agents](/skillset/reference/features/agents/), [rules](/skillset/reference/features/rules/), [hooks](/skillset/reference/features/hooks/), [apps](/skillset/reference/features/apps/), and [tools policy](/skillset/reference/features/tools-policy/).

With `compile.session_start_hook: on` (or eligible `auto`), Skillset composes one advisory project SessionStart command into `.codex/hooks.json`. The path is drawn from the checked-in provider-location evidence and shared with `hooks print --agent-runtime --target codex`; plugin hooks remain a separate output surface. The command reports stale output but does not rebuild or grant runtime trust.

## Feature Support

<!-- skillset:generated:start provider-feature-support -->
| Feature | Feature status | Target support | Qualification | Docs |
| --- | --- | --- | --- | --- |
| Activation Probes | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/tests-and-evals/) |
| Adaptive Hooks | `implemented` | `degraded` | Codex supports plugin-level command hooks, but has no faithful skill-local or project-agent hook destination and narrower event/matcher support. | [1](/skillset/reference/features/hooks/) |
| Changes | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/changes/) |
| Dependencies | `implemented` | `degraded` | The ChatGPT Agent Plugins bundle has no portable plugin dependency component. | [1](/skillset/reference/features/dependencies/) |
| Dev Watch | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/dev-watch/) |
| Distributions | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/distributions/) |
| Feature Registry | `implemented` | `not_applicable` | — | [1](https://github.com/outfitter-dev/skillset/blob/24800e02ed4e7150ea1bc7130c35603c98ea9da2/docs/development/features/feature-registry.md) |
| Future Companion Source Pointers | `planned` | `planned` | — | [1](/skillset/reference/features/apps/), [2](/skillset/reference/features/hooks/), [3](/skillset/reference/features/commands/), [4](/skillset/reference/features/settings/) |
| Marketplaces | `implemented` | `native` | — | [1](/skillset/reference/features/marketplaces/) |
| Output Safety | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/output-safety/) |
| Plugin Agents | `implemented` | `unsupported` | Codex plugin documentation does not include a plugin agents component. | [1](/skillset/reference/features/agents/) |
| Codex Plugin Apps | `implemented` | `pass_through` | — | [1](/skillset/reference/features/apps/) |
| Plugin Assets | `implemented` | `pass_through` | — | [1](/skillset/reference/features/plugins/) |
| Plugin Bin | `implemented` | `unsupported` | Codex plugins do not expose a documented plugin-local bin contract. | [1](/skillset/reference/features/executables/), [2](/skillset/reference/features/feature-source-pointers/) |
| Plugin Commands | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/commands/), [2](/skillset/reference/features/plugins/) |
| Plugin Hooks | `implemented` | `pass_through` | — | [1](/skillset/reference/features/hooks/) |
| Plugin LSP Servers | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/lsp-servers/), [2](/skillset/reference/features/plugins/) |
| Plugin Manifests | `implemented` | `native` | — | [1](/skillset/reference/features/plugins/) |
| Plugin MCP Servers | `implemented` | `native` | — | [1](/skillset/reference/features/feature-source-pointers/), [2](/skillset/reference/features/mcp-servers/) |
| Plugin Monitors | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/monitors/), [2](/skillset/reference/features/plugins/) |
| Plugin Output Styles | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/output-styles/), [2](/skillset/reference/features/plugins/) |
| Plugin README | `implemented` | `pass_through` | — | [1](/skillset/reference/features/plugins/) |
| Plugin Rules | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/rules/), [2](/skillset/reference/features/plugins/) |
| Plugin Scripts | `implemented` | `pass_through` | — | [1](/skillset/reference/features/plugins/) |
| Plugin Skills | `implemented` | `native` | — | [1](/skillset/reference/features/plugins/), [2](/skillset/reference/features/skills/) |
| Plugin Source | `implemented` | `pass_through` | — | [1](/skillset/reference/features/plugins/) |
| Plugin Themes | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/themes/), [2](/skillset/reference/features/plugins/) |
| Project Agents | `implemented` | `transformed` | — | [1](/skillset/reference/features/agents/) |
| Project Instructions | `implemented` | `transformed` | — | [1](/skillset/reference/features/rules/) |
| Releases | `implemented` | `metadata_only` | — | [1](/skillset/reference/features/releases/) |
| Render Results | `implemented` | `not_applicable` | — | [1](https://github.com/outfitter-dev/skillset/blob/24800e02ed4e7150ea1bc7130c35603c98ea9da2/docs/development/features/render-results.md) |
| Resources | `implemented` | `native` | — | [1](/skillset/reference/features/resources/) |
| Runtime Adapters | `planned` | `not_applicable` | — | [1](https://github.com/outfitter-dev/skillset/blob/24800e02ed4e7150ea1bc7130c35603c98ea9da2/docs/development/features/runtime-adapters.md) |
| Runtime Context | `implemented` | `transformed` | Normalized fields are provider, hook.event, and session.id; raw Codex environment remains available to the hook command. | [1](/skillset/reference/features/hooks/), [2](https://github.com/outfitter-dev/skillset/blob/24800e02ed4e7150ea1bc7130c35603c98ea9da2/docs/development/features/hook-guardrails.md) |
| Skill Invocation Policy | `implemented` | `transformed` | — | [1](/skillset/reference/features/skills/) |
| Standalone Skills | `implemented` | `native` | — | [1](/skillset/reference/features/skills/) |
| Supports | `implemented` | `metadata_only` | — | [1](/skillset/reference/features/supports/) |
| Provider Source | `implemented` | `pass_through` | — | [1](/skillset/reference/features/target-native-islands/) |
| Tools Policy | `implemented` | `metadata_only` | Recorded as .skillset.tools.yaml metadata; no proven skill-local enforcement surface. | [1](/skillset/reference/features/tools-policy/) |
| Version Audit | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/version-audit/) |
| Workflows | `implemented` | `not_applicable` | — | [1](/skillset/reference/features/ci/), [2](/skillset/reference/features/build-scopes/), [3](https://github.com/outfitter-dev/skillset/blob/24800e02ed4e7150ea1bc7130c35603c98ea9da2/docs/development/features/workbench.md) |
<!-- skillset:generated:end provider-feature-support -->

## Evidence Boundary

Implemented provider claims are backed by checked-in destination-format snapshots, the immutable released OpenAI marketplace-parser pin, current official package documentation, schema snapshots or manual overlays, and rendering tests. The generated table reports registry status; it does not make an app, plugin, or agent trusted by a Codex runtime.

Skillset renders files. It does not install, trust, activate, symlink, or mutate user-level provider configuration. See [Build Versus Activation](/skillset/start/build-versus-activation/).
