agent-config 0.3.0

Install hooks/integrations into AI coding harnesses (Claude Code, Cursor, Gemini CLI, OpenCode, Codex CLI, Cline, Windsurf, ...) without learning each one's filesystem layout.
Documentation
# Agent reference

One file per supported AI coding harness. See
[`../support-matrix.md`](../support-matrix.md) for the release-facing support
contract across all integrations. Each entry documents:

- **ID** — the string passed to `agent_config::by_id`.
- **Hooks** — install path and JSON/script format, broken out by scope.
- **Prompt** — optional rules-markdown surface, if the harness supports one.
- **MCP**, **Skills**, and **Instructions** — implemented where this crate has
  a file-backed or config-backed contract and tests for the emitted shape.

**Last updated:** 2026-05-29. MCP, skills, and instruction coverage reflects
the current file-backed locations implemented by this crate.

## Implemented

| Agent | Hooks | Prompt | MCP | Skills | Instructions |
| ----- | ----- | ------ | --- | ------ | ------------ |
| [Claude Code]claude.md         | ✓ (Global + Local) || ✓ (Global + Local) | ✓ (Global + Local) | ✓ (Global + Local, ReferencedFile) |
| [Cursor]cursor.md              | ✓ (Global + Local) | -   | ✓ (Global + Local) | ✓ (Global + Local) | - |
| [Gemini CLI]gemini.md          | ✓ (Global + Local) || ✓ (Global + Local) | ✓ (Global + Local) | ✓ (Global + Local, InlineBlock) |
| [OpenClaw]openclaw.md          | - | ✓ (Local) | ✓ (Global, JSON5) | ✓ (Global + Local) | ✓ (Local, InlineBlock) |
| [Hermes Agent]hermes.md        | - | ✓ (Local) | ✓ (Global, YAML) | ✓ (Global) | ✓ (Local, InlineBlock) |
| [Codex CLI]codex.md            | ✓ (Global + Local) || ✓ (Global + Local, TOML) | ✓ (Global + Local) | ✓ (Global + Local, InlineBlock) |
| [GitHub Copilot]copilot.md     | ✓ (Local)          || ✓ (Global + Local) | ✓ (Global + Local) | ✓ (Local, InlineBlock) |
| [OpenCode]opencode.md          | ✓ (Global + Local) || ✓ (Global + Local, object) | ✓ (Global + Local) | ✓ (Global + Local, InlineBlock) |
| [Cline]cline.md                | ✓ (Local, v3.36+ scripts) || ✓ (Global) | ✓ (Global + Local) | ✓ (Local, StandaloneFile) |
| [Roo Code]roo.md               | -                    || ✓ (Global + Local) | -    | ✓ (Local, StandaloneFile) |
| [Windsurf]windsurf.md          | ✓ (Local) || ✓ (Global + Local) | ✓ (Global + Local) | ✓ (Local, StandaloneFile) |
| [Kilo Code]kilocode.md         | -                    || ✓ (Global + Local, JSONC) | ✓ (Global + Local) | ✓ (Local, StandaloneFile) |
| [Google Antigravity]antigravity.md | -                || ✓ (Global + Local) | ✓ (Global + Local) | ✓ (Local, StandaloneFile) |
| [Antigravity CLI]antigravitycli.md | -                || ✓ (Global + Local) | - | ✓ (Global + Local, InlineBlock) |
| [Amp]amp.md                    | - || ✓ (Global + Local) | ✓ (Global + Local) | ✓ (Global + Local, InlineBlock) |
| [CodeBuddy CLI]codebuddy.md    | ✓ (Global + Local) || - | ✓ (Global + Local) | ✓ (Global + Local, InlineBlock) |
| [Charm Crush]crush.md          | ✓ (Global + Local) || ✓ (Global + Local, JSONC) | ✓ (Global + Local) | ✓ (Global + Local, InlineBlock) |
| [Forge]forge.md                | - || ✓ (Global + Local) | ✓ (Global + Local) | ✓ (Global + Local, InlineBlock) |
| [iFlow CLI]iflow.md            | ✓ (Global + Local) | - | ✓ (Global + Local) | - | - |
| [JetBrains Junie]junie.md      | - | ✓ (Local) | ✓ (Global + Local) | - | ✓ (Local, InlineBlock) |
| [Pi]pi.md                      | - || ✓ (Global + Local) | ✓ (Global + Local) | ✓ (Global + Local, InlineBlock) |
| [Qoder CLI]qodercli.md         | - || ✓ (Global + Local) | - | ✓ (Global + Local, InlineBlock) |
| [Qwen Code]qwen.md             | - || ✓ (Global + Local) | ✓ (Global + Local) | ✓ (Global + Local, InlineBlock) |
| [Tabnine CLI]tabnine.md        | ✓ (Global + Local) | - | ✓ (Global + Local) | - | - |
| [Trae]trae.md                  | - | ✓ (Local) | - | ✓ (Global + Local) | ✓ (Local, InlineBlock) |

## Conventions

- A *scope* is either `Global` (the user's home dir) or `Local(<project>)`.
- Hook JSON entries include `"_agent_config_tag": "<your tag>"` so multiple
  consumers can coexist and each can find its own work to remove.
- MCP servers and skills use sidecar ownership ledgers instead of embedding
  agent-config metadata in the harness payload.
- Prompt-markdown injections are wrapped in HTML-comment fences keyed on the
  identifier. Hooks (and prompt-only rules) use
  `<!-- BEGIN AGENT-CONFIG:<tag> --> ... <!-- END AGENT-CONFIG:<tag> -->`;
  the instruction surface uses a distinct prefix
  `<!-- BEGIN AGENT-CONFIG-INSTR:<name> --> ... <!-- END AGENT-CONFIG-INSTR:<name> -->`
  so a hook tag and an instruction name with the same string cannot
  collide.
- Any pre-existing file we modify gets a one-time `<path>.bak` sibling on
  first patch.