Contributing
AgentHub is MIT-licensed and open to PRs. Whether you're fixing a typo or adding a whole new agent, here's the shape of what lands.
Repo layout (dual-platform)
| Primitive | Claude Code path | Codex path |
|---|---|---|
| Agents | agents/*.md (YAML frontmatter) | plugins/hub/agents/*.toml (auto-generated) |
| Commands | commands/*.md | plugins/hub/commands/*.md (mirror) |
| Skills | skills/*/SKILL.md — shared between platforms, mirrored into plugins/hub/skills/ | |
| Manifest | .claude-plugin/plugin.json | plugins/hub/.codex-plugin/plugin.json |
Adding a skill
- Create
skills/<skill-name>/SKILL.mdwith YAML frontmatter (name,description,allowed-tools). - Add longer sub-references as sibling
.mdfiles if needed. - Copy the whole folder into
plugins/hub/skills/<skill-name>/so Codex users get it too. - Update
CATALOG.mdand theHighlighted skillssection in the README.
YAML trap: if your description contains a colon, quote the whole thing or YAML will parse it as a nested mapping. Wrap in double quotes, use an em-dash, or both.Adding an agent
- Create
agents/<agent-name>.mdwith YAML frontmatter:name,description,tools,model,skills. - Regenerate the Codex TOML mirror:
python tools/generate_codex.py --write - Add the agent to
CATALOG.mdand theAgents (20)table in the README.
Adding a command
- Create
commands/<name>.mdwith frontmatter:description,tier(LIGHT/MEDIUM/HEAVY),argument-hint. - Copy into
plugins/hub/commands/<name>.md(there's no auto-sync yet). - Add to
CATALOG.mdand the commands table.
Before you PR
- Run
python tools/generate_codex.py --check— CI will fail if the TOML is stale. - Validate your skill frontmatter parses as YAML (see the trap above).
- Test the install path end to end on at least one platform.
Where to start
- Open issues on GitHub — good-first-issue tags welcome.
- CONTRIBUTING.md — the canonical version of this page lives here.