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)

PrimitiveClaude Code pathCodex path
Agentsagents/*.md (YAML frontmatter)plugins/hub/agents/*.toml (auto-generated)
Commandscommands/*.mdplugins/hub/commands/*.md (mirror)
Skillsskills/*/SKILL.md — shared between platforms, mirrored into plugins/hub/skills/
Manifest.claude-plugin/plugin.jsonplugins/hub/.codex-plugin/plugin.json

Adding a skill

  1. Create skills/<skill-name>/SKILL.md with YAML frontmatter (name, description, allowed-tools).
  2. Add longer sub-references as sibling .md files if needed.
  3. Copy the whole folder into plugins/hub/skills/<skill-name>/ so Codex users get it too.
  4. Update CATALOG.md and the Highlighted skills section 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

  1. Create agents/<agent-name>.md with YAML frontmatter: name, description, tools, model, skills.
  2. Regenerate the Codex TOML mirror:
    python tools/generate_codex.py --write
  3. Add the agent to CATALOG.md and the Agents (20) table in the README.

Adding a command

  1. Create commands/<name>.md with frontmatter: description, tier (LIGHT/MEDIUM/HEAVY), argument-hint.
  2. Copy into plugins/hub/commands/<name>.md(there's no auto-sync yet).
  3. Add to CATALOG.md and 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