CORALCORAL
Guides

Harness Plugin

Drive CORAL from Claude Code or Codex without memorizing the CLI — skills + a SessionStart install check.

Inside Claude Code or Codex the agent can already run coral via Bash. The plugin doesn't execute coral for you — it teaches the agent when and how: a set of skills for the two workflows that happen outside a run (authoring a task, operating a run), plus a SessionStart hook that checks coral is installed and points the agent at the right skill.

It is skills-first and multi-harness, with no MCP — the capability is text guidance plus a Bash call, mirroring obra/superpowers. The plugin lives in the repo under plugin/: one shared skills/ directory, a per-harness manifest (.claude-plugin/, .codex-plugin/), and per-harness hooks/ configs. The marketplace manifest sits at the repo root (.claude-plugin/marketplace.json) so owner/repo discovery works.

Skills

SkillUse when
coral-quickstart"what is coral?", "should I use coral?", or coral isn't installed yet
setting-up-coralone-time machine setup — register runtimes as bindings (coral setup, coral agents doctor)
creating-a-coral-taskauthor a task — coral init → edit grader/seed → coral validate
running-coral-experimentsrun/manage a run — coral start / status / log / show / resume / stop

The in-run eval loop (coral eval) is intentionally not a skill: every in-run agent already reads it from the generated CORAL.md, so a skill would duplicate it. coral-quickstart folds in the thin pointer.

These are for people in their own harness who want to drive CORAL. They are distinct from the repo's .claude/skills/ (coral-new-task, coral-debug, coral-extend), which target contributors editing CORAL itself.

Install — Claude Code

/plugin marketplace add Human-Agent-Society/CORAL
/plugin install coral@coral-marketplace

Or from a local checkout: /plugin marketplace add . then the same install. On session start the hook checks coral is on PATH and injects a short context block — an install hint if it's missing, or which-skill-for-what if it's present. Validate the manifest locally with claude plugin validate ./plugin.

Install — Codex

Codex (v0.117.0+) has a git-backed plugin marketplace, mirroring Claude Code. The repo ships a Codex marketplace at .agents/plugins/marketplace.json:

codex plugin marketplace add Human-Agent-Society/CORAL
codex plugin add coral@coral-marketplace

The plugin's .codex-plugin/plugin.json wires the shared skills/ and the Codex SessionStart hook. Invoke skills with $coral-quickstart or let Codex match by description.

As a lighter alternative without the marketplace, Codex also discovers skills from filesystem dirs (it follows symlinks): ln -s /abs/path/to/CORAL/plugin/skills/* ~/.agents/skills/. That route skips the hook — paste plugin/AGENTS.md into your AGENTS.md instead.

Other harnesses

Cursor, OpenCode, and Kimi follow the same shared-skills/ + per-harness-manifest layout — the skill text is harness-agnostic. Add a .cursor-plugin/ / .opencode/ / .kimi-plugin/ manifest pointing at ./skills/ as support grows; no skill content changes needed.

Publishing

"Published" is per-harness, and only Claude Code has a public target today. Self-hosting works now with no submission: anyone can /plugin marketplace add Human-Agent-Society/CORAL and install. The relative "source": "./plugin" resolves against the repo root after Claude clones it, so the subdirectory layout publishes fine.

To list in the community marketplace (@claude-community), submit through the in-app form (claude.ai directory submissions, or the Console form for individuals) after claude plugin validate ./plugin passes; approved plugins are pinned to a commit SHA and synced nightly. The separate claude-plugins-official marketplace is curated by Anthropic with no submission process.

Codex (v0.117.0+) has its own git-backed marketplace (.agents/plugins/marketplace.json), so the plugin is installable today with codex plugin marketplace add Human-Agent-Society/CORAL; self-serve publishing to the official Codex Plugin Directory is "coming soon" per OpenAI. Cursor, Kimi, and OpenCode have no public registry yet — distribute via filesystem routes. Nothing publishes automatically: pushing to the repo does not register the plugin anywhere; a user adds the marketplace, or you submit to a directory.