matcher_patterns
Whether hooks can filter which tools or events they respond to using name matching, regex patterns, or structured criteria.
Type: bool Content type: hooks
Provider Support
Section titled “Provider Support”| Provider | Supported | Mechanism |
|---|---|---|
| amp | ✓ | Amp hooks filter firing via 'input.contains' — exact literal substring match against tool input |
| claude-code | ✓ | hook_matcher_patterns: exact string, pipe-separated list, or JavaScript regex; matches on tool_name or event-specific fields |
| codex | ✓ | hook_matcher: Codex hooks support pattern matching to filter which tools or events trigger the hook |
| cursor | ✓ | Hook entries accept a matcher string that filters which tool or event fires the hook (for example a specific shell command or tool name). |
| gemini-cli | ✓ | hook_matchers: Gemini CLI hooks support event and tool name matching to filter when hooks fire |
| cline | ✗ | Cline hooks fire on configured lifecycle events; no per-tool pattern matching documented |
| copilot-cli | ✗ | Copilot CLI hooks fire on all events of their configured type; no per-tool filtering documented |
| crush | ✗ | not documented |
| factory-droid | ✗ | Factory Droid hooks fire on configured lifecycle events; no per-tool pattern matching documented |
| kiro | ✗ | Kiro hooks fire on configured lifecycle events; no per-tool filtering documented |
| opencode | ✗ | not documented |
| pi | ✗ | Pi hooks fire on configured lifecycle events; no per-tool filtering documented |
| roo-code | ✗ | not documented |
| windsurf | ✗ | Windsurf hooks fire on all events of their configured type; no per-tool or regex matching documented |
| zed | ✗ | not documented |