Codex and the ChatGPT local runtime share one plugin directory, so a single local install shows up on both surfaces. You get the Arcade gateway and both skills. Installing the plugin on the web does not deploy hook scripts.
Arcade is not in OpenAI's public Plugins Directory. Add it from GitHub with
one of the install paths below. The directory upload package,
arcade-chatgpt-{VERSION}.zip, is attached to each
GitHub release.
Codex does not load arcade-operator from the plugin. OpenAI plugins can ship
skills and MCP, but not custom agent roles yet
(codex#36855). Use the
arcade:try-arcade skill instead.
Lifecycle hooks don't run on Codex yet. Codex ignores plugin hooks for
Agent Plugins packages (openai/codex#39895).
Removing the root $schema would work around it but break Agent Plugins
conformance, so use @Arcade or $arcade:try-arcade for routing until that
issue is fixed.
codex plugin marketplace add ArcadeAI/arcade-plugin
codex plugin add arcade@arcadeThis uses Codex's own marketplace support and the repo's marketplace manifest.
Cross-client CLI. npx plugins add alone caches the plugin and enables it
in config.toml, but codex plugin list shows it as not installed and no MCP
server loads until you finish with codex plugin add:
npx plugins add ArcadeAI/arcade-plugin --target codex
codex plugin add arcade@plugins-cliFrom a local checkout, point at the plugin directory:
npx plugins add /path/to/arcade-plugin/plugin --target codex
codex plugin add arcade@plugins-clicodex plugin marketplace add of this repository uses
.claude-plugin/marketplace.json. Codex reads that Claude marketplace. The
Arcade entry's source is ./plugin, and codex plugin add arcade@arcade
installs that directory.
- Start a new Codex session (or a new chat in ChatGPT desktop). Installs are not retroactive to open sessions.
- Run
/pluginsand confirmarcadeis installed and enabled (Space toggles enablement). - Confirm the
arcadeMCP server is connected. - Skills appear as
arcade:try-arcadeandarcade:scale-arcade. Codex does not expose plugin skills as/slashcommands. Pick@Arcadefrom the@menu plus a plain-language ask, or$arcade:try-arcade/$arcade:scale-arcadefor explicit skill invocation.
Listing metadata such as the Arcade display name lives in
extensions.com.openai.interface on the portable plugin.json.
@Arcade— "How do I use Arcade?"$arcade:try-arcade— explicit skill invocation- "What's on my calendar tomorrow?"