The ultimate developer's index for AI coding agents. A community-driven reference for configuring, extending, and intercepting every major agentic development tool. Easily compare lifecycle hooks (e.g., PreToolUse and PostToolUse), built-in capabilities, Model Context Protocol (MCP) servers, system instruction file paths, and customized skills across 40+ different developer agents.
| Universal Hooks Index | Standardized naming, exit-code blocking rules, and in-depth event execution behaviors for intercepting actions. |
| Comprehensive Matrix | Side-by-side comparisons of file reads, shell commands, web searches, browser automation, and planning modes. |
| MCP Config Reference | Direct paths, environment variables, local/remote stdio transports, and tool discovery rules. |
| Conventions & Rules | Where to write custom instruction files (e.g., CLAUDE.md, CONVENTIONS.md, .cursor/rules/) to customize agent behaviors. |
| Tool | Vendor | Config format | Hooks | MCP | Official docs |
|---|---|---|---|---|---|
| Claude Code | Anthropic | JSON | ✅ Full (31 events) | ✅ | code.claude.com/docs/en/hooks |
| Codex CLI | OpenAI | TOML | ✅ Full (10 events) | ✅ | developers.openai.com/codex |
| GitHub Copilot | GitHub/Microsoft | JSON | ✅ Full (13 events) | ✅ | docs.github.com/en/copilot/reference/hooks-reference |
| Gemini CLI | JSON | ✅ Full (11 events) | ✅ | geminicli.com/docs | |
| Factory Droid | Factory.ai | JSON | ✅ Full (9 events) | ✅ | docs.factory.ai |
| Kiro IDE/CLI | Amazon (AWS) | YAML | ✅ Full | ✅ | kiro.dev/docs |
| Kimi Code | Moonshot AI | TOML | ✅ Full — Beta (16 events) | ✅ | kimi.com/code/docs |
| Cursor | Anysphere | JSON | ✅ Full (23 events) | ✅ | cursor.com/docs/hooks |
| Hermes | NousResearch | YAML | ✅ Full (❓ events) | ✅ | hermes-agent.nousresearch.com |
| Devin CLI | Cognition AI | JSON | ✅ Full (7 events) | ✅ | cli.devin.ai/docs/extensibility/hooks |
| Pi Coding Agent | earendil-works | JSON + YAML | ✅ Full (7 events) | ✅ | pi.dev |
| OpenCode | OpenCode.ai | JSON | ✅ Via plugins | ✅ | opencode.ai/docs |
| OpenClaw | OpenClaw | YAML | ✅ Full (18 events via Plugin SDK) | ✅ | docs.openclaw.ai |
| Trae | ByteDance | Markdown rules | ✅ | docs.trae.ai | |
| Trae CN | ByteDance | Markdown rules | ✅ | docs.trae.ai | |
| Aider | Aider-AI | YAML | ❌ Not shipped | ❌ | aider.chat/docs |
| Google Antigravity | JSON / TOML | ✅ Full (5 events) | ✅ | antigravity.google | |
| Amazon Q Developer CLI | AWS | JSON | ✅ Full (5 events) | ✅ | docs.aws.amazon.com |
| Amp | Amp (ex-Sourcegraph) | JSON/JSONC | ✅ | ampcode.com/manual | |
| Goose | Agentic AI Foundation (ex-Block) | YAML | ✅ Full (11 events) | ✅ | goose-docs.ai |
| OpenHands | All Hands AI | JSON | ✅ Full (6 events) | ✅ | docs.openhands.dev |
| Crush | Charmbracelet | JSON | PreToolUse only) |
✅ | github.com/charmbracelet/crush |
| Continue CLI | Continue Dev (acquired by Cursor) | YAML/JSON | ✅ Full (17 events, undocumented officially) | ✅ | docs.continue.dev |
| Auggie CLI | Augment Code | JSON | ✅ Full (5 events) | ✅ | docs.augmentcode.com |
| Qwen Code | Alibaba (QwenLM) | JSON | ✅ Full (16 events) | ✅ | qwenlm.github.io/qwen-code-docs |
| Warp (Agent Mode) | Warp | JSON/Markdown | ❌ Not shipped (permissions/rules instead) | ✅ | docs.warp.dev |
| Cline | Cline Bot Inc. | JSON + Markdown rules | ✅ Full (8 events, Unix-only) | ✅ | docs.cline.bot |
| Kilo Code | Kilo-Org | JSONC | ✅ | kilo.ai/docs | |
| Junie | JetBrains s.r.o. | JSON | ✅ Full (7 events, CLI-only, confirmed) | ✅ | junie.jetbrains.com/docs |
| Grok Build | xAI | TOML | ✅ Full (14 events) | ✅ | docs.x.ai/build |
| Muse Code | Meta (Meta Superintelligence Labs) | JSON | ✅ Full (12 events) | ✅ | dev.meta.ai/docs/muse-code |
| DeepSeek Harness | DeepSeek | YAML (Cordis patches) | ✅ | deepseek.com/harness | |
| jcode | Solo Systems | TOML | ✅ Full (5 events, 1 blocking) | ✅ | jcode.sh/docs |
| Paseo | Paseo (getpaseo) | JSON | ✅ Full (11 hooks via TypeScript plugins — agent-lifecycle, not per-tool) | ✅ (server + injector) | paseo.sh/docs |
| QM | Y Combinator (yc-software) | JSONC + env (self-hosted) | ❌ Not shipped (security postures instead) | ✅ (admin-gated) | qm.ycombinator.com |
| Codewhale | Hmbown (community) | TOML | ✅ Full (13 events, TUI-only) | ✅ | github.com/Hmbown/Codewhale |
| Reasonix | ESEngine (community) | TOML + JSON (hooks) | ✅ Full (10 events) | ✅ | reasonix.io |
| oh-my-pi | can1357 (community) | YAML | ✅ Via TS/JS extension modules (blocking) | ✅ | omp.sh |
| MiMo Code | Xiaomi | npm plugins | ❌ Not shipped (plugins instead) | ✅ (OAuth-capable) | mimo.xiaomi.com/mimocode |
| Prime Agent | Prime Intellect | ❓ (packages) | ❌ Not shipped (capability packages instead) | ✅ | github.com/PrimeIntellect-ai/prime-agent |
| Tau | Hugging Face | TOML | ❌ Not shipped (extensions instead) | ❓ | twotimespi.dev |
| Azure SRE Agent | Microsoft | YAML (portal / REST v2) | ✅ Full (2 events) | ❓ | learn.microsoft.com/azure/sre-agent |
Legend: ✅ Full = shipped, documented hook system with blocking ·
Notes: Warp is primarily a GUI terminal app with an embedded agent (plus a separate
ozCLI for headless/cloud use) — included here as a borderline entry, not a pure install-anywhere CLI like the others. Amazon Q Developer CLI is marked unmaintained by AWS as of this writing, with development moved to the closed-source Kiro CLI. Continue was acquired by Cursor/Anysphere in June 2026; its GitHub repo is now read-only. Goose was donated by Block to the Agentic AI Foundation (Linux Foundation) in 2026. Cline, Kilo Code, Junie, Grok Build, Muse Code, DeepSeek Harness, jcode, and QM were added 2026-08-15 as a doc-only pass (sourced from official docs/GitHub, not yet sandbox live-verified like the earlier entries) — several are brand-new (DeepSeek Harness shipped 2 days prior as a v0.1 preview) so expect more ❓s than the older pages; see_shared/source-audit.md. Paseo (added 2026-09-10, doc-only) is an orchestrator, not a coding agent — it launches and supervises other agent CLIs, and is listed here because it has its own config file, lifecycle hooks, MCP server, and skills. Codewhale, Reasonix, oh-my-pi, MiMo Code, Prime Agent, and Tau were added 2026-09-10 as a live-verified pass — all six were installed on the st3ve sandbox (Ubuntu 24.04) and driven through a real multi-step task against the OpenAI API; see each page's "Live Verification" section for what passed, what needed configuration, and what broke.Azure SRE Agent is a hosted Azure service (configured via the portal or REST API v2), not a local CLI — the "Config format" column reflects its YAML hook schema, and it has no local config file or terminal binary. Its hook surface is limited to
StopandPostToolUse.
| Question | Go to |
|---|---|
| Which agents support activity X? | _shared/activity-agent-matrix.md |
| What are all of Agent Y's hooks/tools/config? | _shared/agent-tools-hooks-config.md |
| What is PreToolUse called in each tool? | _shared/hook-event-comparison.md |
| Where does Tool Y store its config and skills? | _shared/config-file-locations.md |
| Which pages still rely on community or inferred sources? | _shared/source-audit.md |
How do agent-specific tool names (Bash vs run_shell_command vs execute_bash...) map to a common taxonomy? |
_shared/tool-normalization-map.md |
| What did a session cost, and can I trust the tool's own number? | _shared/token-cost-accounting.md |
| The agent runs in a hosted VM (Codex cloud, Claude Code on the web, Cursor cloud agents, Copilot, Replicas...) — what runs at boot, and which hook config does it load? | _shared/cloud-agent-environments.md |
| Do we track orchestration frameworks and SDKs too? | frameworks/README.md |
These are tracked separately from the coding-agent matrices because they are developer frameworks/runtimes rather than end-user CLI agents with a shared hooks/config surface.
| Framework / SDK | Vendor | Notes | Docs |
|---|---|---|---|
| LangGraph | LangChain | Low-level stateful agent orchestration | https://github.com/langchain-ai/langgraph |
| CrewAI | CrewAI, Inc. | Crews, flows, memory, guardrails | https://docs.crewai.com/ |
| AutoGen | Microsoft | Stable docs tracked instead of unverified "2.0" branding | https://microsoft.github.io/autogen/stable/ |
| Mastra | Mastra | TypeScript agent/app framework | https://mastra.ai/ |
| OpenAI Agents SDK | OpenAI | Agent runtime with handoffs, guardrails, MCP | https://openai.github.io/openai-agents-python/ |
| Pydantic AI | Pydantic | Python agent framework with typed outputs | https://pydantic.dev/docs/ai/overview/ |
| Claude Code Agent SDK | Anthropic | Official product name for the requested "Anthropic Agent SDK" | https://code.claude.com/docs/en/agent-sdk/overview |
| Google ADK | Agent Development Kit | https://adk.dev/ | |
| Microsoft Agent Framework | Microsoft | Direct successor to Semantic Kernel + AutoGen; Harness reached GA 2026-07-22, orchestration patterns reached 1.0 on 2026-07-08 | https://learn.microsoft.com/en-us/agent-framework/overview/agent-framework-overview |
.
├── README.md # Master index + comparative benchmarks
├── frameworks/
│ └── README.md # Sourced framework / SDK catalog
├── tools/
│ └── <tool-name>/
│ └── README.md # Per-tool configuration & command references
├── _shared/
│ ├── activity-agent-matrix.md # Capabilities matrix (natively supported tools)
│ ├── agent-tools-hooks-config.md # Unified agent specifications & schemas
│ ├── source-audit.md # Source coverage audit and unresolved gaps
│ ├── hook-event-comparison.md # Cross-agent hook event name lookup
│ ├── mcp-support.md # MCP client capabilities & transport settings
│ ├── cloud-agent-environments.md # Hosted platforms: boot scripts + which hook config the cloud agent loads
│ └── config-file-locations.md # Global/local paths & git-ignored overrides
└── _templates/
└── tool-template.md # Blueprint for documenting new developer tools
How the same lifecycle moment is named across tools:
| Lifecycle moment | Claude Code | Codex | Gemini CLI | GitHub Copilot | Kimi Code | Factory Droid | Cursor | Devin CLI | Pi Agent | Cline | Junie | Grok Build | jcode | Muse Code |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Before any tool | PreToolUse |
PreToolUse |
BeforeTool |
preToolUse |
PreToolUse |
PreToolUse |
preToolUse |
PreToolUse |
tool.before.* |
PreToolUse |
PreToolUse |
PreToolUse |
pre_tool |
PreToolUse |
| After any tool | PostToolUse |
PostToolUse |
AfterTool |
postToolUse |
PostToolUse |
PostToolUse |
postToolUse |
PostToolUse |
tool.after.* |
PostToolUse |
— | PostToolUse |
post_tool |
PostToolUse |
| After tool fails | PostToolUseFailure |
— | — | postToolUseFailure |
PostToolUseFailure |
— | postToolUseFailure |
— | — | — | — | PostToolUseFailure |
— | — |
| Prompt submitted | UserPromptSubmit |
UserPromptSubmit |
BeforeAgent |
userPromptSubmitted |
UserPromptSubmit |
UserPromptSubmit |
beforeSubmitPrompt |
UserPromptSubmit |
— | UserPromptSubmit |
UserPromptSubmit |
UserPromptSubmit |
— | UserPromptSubmit |
| Agent turn ends | Stop |
Stop |
AfterAgent |
agentStop |
Stop |
Stop |
stop |
Stop |
— | — | Stop |
Stop |
turn_end |
Stop |
| Subagent starts | SubagentStart |
SubagentStart |
— | subagentStart |
SubagentStart |
— | subagentStart |
— | — | — | — | SubagentStart |
— | SubagentStart |
| Session starts | SessionStart |
SessionStart |
SessionStart |
sessionStart |
SessionStart |
SessionStart |
sessionStart |
SessionStart |
session.created |
— | SessionStart |
SessionStart |
session_start |
SessionStart |
| Session ends | SessionEnd |
— | SessionEnd |
sessionEnd |
— | SessionEnd |
sessionEnd |
— | — | — | SessionEnd |
SessionEnd |
session_end |
— |
| Context compacted | PreCompact |
PreCompact |
PreCompress |
preCompact |
PreCompact |
PreCompact |
preCompact |
— | — | PreCompact ❓ |
— | PreCompact |
— | PreCompact |
| Permission request | PermissionRequest |
PermissionRequest |
— | permissionRequest |
— | — | — | PermissionRequest |
— | — | PermissionRequest |
PermissionDenied |
— | PermissionRequest |
| LLM call | — | — | BeforeModel / AfterModel |
— | — | — | — | — | — | — | — | — | — | PreLLMCall / PostLLMCall |
| Notification | Notification |
— | Notification |
notification |
— | Notification |
— | — | — | — | — | Notification |
— | — |
How each tool's PreToolUse-equivalent blocks a tool call:
| Tool | Block method | Stderr / reason goes to |
|---|---|---|
| Claude Code | Exit 2 | LLM as context |
| Codex CLI | Exit 2 or {"decision":"block"} stdout |
LLM |
| GitHub Copilot | {"permissionDecision":"deny"} stdout |
LLM (via permissionDecisionReason) |
| Gemini CLI | Exit 2 | LLM |
| Factory Droid | {"permissionDecision":"deny"} stdout |
LLM |
| Kimi Code | Exit 2 or {"permissionDecision":"deny"} stdout |
LLM |
| Cursor | Exit 2 + failClosed option |
LLM |
| Hermes | {"action":"block","message":"..."} stdout |
LLM |
| Devin CLI | Exit 2 or {"decision":"block"} stdout |
LLM |
| Kiro | Exit 2 | LLM |
| Pi Agent | Exit 2 | LLM |
| Azure SRE Agent | Exit 2 or {"decision":"block"} stdout (PostToolUse); reject with reason (Stop) |
LLM (via reason / additionalContext) |
Each tool README labels sources:
| Label | Meaning |
|---|---|
| [official] | Published by the vendor on their own docs site |
| [github] | Vendor GitHub repo (README, source code) |
| [official mirror] | Vendor-maintained mirror of official docs |
| [community] | Community-maintained project (e.g., oh-my-pi) — may diverge from vendor |
| [third-party] | Non-vendor package index, mirror, or independently maintained page |
| [press] | News or press coverage, useful for release context but not normative product behavior |
| [installer-src] | Inferred from the installer scripts or directory structures |
See _templates/tool-template.md for the standard page format.
When adding or updating a tool:
- Source everything to an official URL — no guessing.
- Mark uncertain items with ❓.
- Use the
[official]/[github]/[community]labels in the Sources table. - Update the master table in this README.
- Update
_shared/agent-tools-hooks-config.mdwith the agent's section.
The Hook Event Cross-Reference table and event counts in the Tools Covered table are sourced directly from each tool's official documentation at the time of last update. Hook APIs evolve rapidly — vendor docs are the authoritative source and should always be consulted before relying on counts or event names listed here. Entries marked ❓ could not be verified against live official documentation at the time of writing.