Plugin developer guide
Publish a Codex plugin from your repository
By HOL · Reviewed by Michael Kantor on
Direct answer
Put the plugin manifest in .codex-plugin/plugin.json and list the plugin in .agents/plugins/marketplace.json at the repository root. Users then run codex plugin marketplace add owner/repo and install it from /plugins. Run hol-guard plugin check before you push, and hol-guard plugin package --runtimes codex to generate the Codex files from a Claude Code plugin. For the public directory, publish to a ChatGPT workspace and submit through the plugin submission portal.
Who this is for
Plugin authors who want Codex users to install their plugin straight from a GitHub repository.
Good fit
- A Claude Code plugin that should also install in Codex
- A team that shares internal plugins through a private repository
- A maintainer preparing a directory submission
Not a fit
- Plugins whose value is in hooks, commands or subagents, which Codex packages do not carry
Steps
1.Install HOL Guard
The Plugin Kit ships inside HOL Guard. It needs Python 3.10 or newer and pipx. If Guard is already installed, upgrade it so the Kit commands below are available.
pipx install hol-guard pipx upgrade hol-guard hol-guard --version2.Check the plugin
The check detects every manifest in the folder, lists skills and MCP servers, and reports what each runtime would reject. It exits 0 when the plugin passes, 1 when it has errors and 2 when it could not run. It reads only the folder, runs no commands and makes no network calls.
hol-guard plugin check .3.Write the Codex package
Packaging writes
.codex-plugin/plugin.jsonand.mcp.jsonwith your skills and MCP servers, plushol.provenance.jsonwith a digest of every file. It writes nothing when the check fails.hol-guard plugin package . --runtimes codex --out dist/hol-plugin4.List the plugin in a marketplace file
Codex reads
.agents/plugins/marketplace.jsonat the repository root. It needs aname,interface.displayNameand apluginsarray; each entry needs aname, asource, apolicywithinstallationandauthentication, and acategory.hol-guard plugin linksreports the marketplace step as open until the entry exists.hol-guard plugin links .5.Install it the way users will
Add the repository as a marketplace, open the plugin browser, install the plugin and start a new session before using its skills or tools.
codex plugin marketplace add owner/repo codex plugin marketplace list6.Submit to the plugin directory
Repository marketplaces work for anyone who can reach the repository. To appear in the directory shared by ChatGPT and Codex, publish the plugin to your ChatGPT workspace, then submit it through the plugin submission portal, where it is reviewed against the submission guidelines.
7.Add the install block to your README
hol-guard plugin links --blockprints a README block betweenhol-install-blockmarkers: onehol-guard plugin installcommand, how to get HOL Guard, and each runtime's own install commands for the runtimes the repository already supports. Paste it into the README; HOL finds it on its next scan and shows the install count on your listing once enough installs are reported.hol-guard plugin links . --block8.Connect the repository on HOL
Open the connect page with your repository to verify ownership and claim the listing.
hol-guard plugin linksprints the same link with the repository filled in.hol-guard plugin links .
Limitations
- The Kit converts manifests and MCP config. It does not submit to the directory or review the plugin for you.
- Codex packages leave out commands, agents and hooks, and hol-guard plugin check lists each one it drops.
- A listing, a passing check or a marketplace review is not a safety guarantee. HOL shows its scan evidence on the listing so users can judge for themselves.
Questions
Can I keep the Codex and Claude Code marketplaces in one repository?
Yes. Codex reads .agents/plugins/marketplace.json and Claude Code reads .claude-plugin/marketplace.json, so both can list the same plugin.
Do users need the directory to install my plugin?
No. codex plugin marketplace add owner/repo installs from your repository. The directory adds discovery inside ChatGPT and Codex.
Sources
Related guides
List it on HOL
Connect the repository to verify ownership and claim the listing. New plugins can be submitted for free.