Cursor
cursor Native Cursor hook target with a tested policy overlay for its lower-camel-case events.
AGENT INTEGRATIONS · FACT-CHECKED
DuckTerm separates tested workflow coverage from the canonical contract. The matrix below is built from hookd’s embedded contract and runtime status rules, not a hand-maintained marketing list.
Contract v1 defines 13 Agents and 10 decision schemas. Installed native hooks, plug-ins, and extensions carry supported phone decisions through the same contract.
Contract v1
Identity, approval, and reply correlation come directly from agent_contracts.v1. Lifecycle classification comes from turn_rules.v1. Effective installer surfaces account for the OpenCode plugin and Pi extension overrides.
| Agent | Lifecycle status | Phone decision | hookd adapter | Reply matching |
|---|---|---|---|---|
Claude Codeclaude Contract-backed | Lifecycle status Agent-specific rules 10 mapped event types | Phone decision Approve / reject wired Structured response · Event: PermissionRequest | hookd adapter Native hook config ~/.claude/settings.json | Reply matching Per event 4 identifier fields |
Codexcodex Contract-backed | Lifecycle status Agent-specific rules 8 mapped event types | Phone decision Approve / reject wired Terminal decision · Event: PermissionRequest | hookd adapter Native hook config ~/.codex/hooks.json | Reply matching Per event 4 identifier fields |
Grok Buildgrok Contract-backed | Lifecycle status Agent-specific rules 14 mapped event types | Phone decision Approve / reject wired Terminal decision · Event: PreToolUse | hookd adapter Native hook config ~/.grok/hooks/duckterm-hookd.json | Reply matching Per event 6 identifier fields |
Antigravityagy Contract-backed | Lifecycle status Agent-specific rules 8 mapped event types | Phone decision Approve / reject wired Structured response · Event: PreToolUse | hookd adapter Native hook config ~/.gemini/config/hooks.json | Reply matching Per event Composite key: agy |
OpenCodeopencode Contract-backed | Lifecycle status Shared canonical rules 15 mapped event types | Phone decision Approve / reject wired Structured response · Event: PermissionRequest | hookd adapter JavaScript plugin ~/.config/opencode/plugins/duckterm-hookd.js | Reply matching Per event 3 identifier fields |
Pipi Contract-backed | Lifecycle status Shared canonical rules 15 mapped event types | Phone decision Approve / reject wired Structured response · Event: PermissionRequest | hookd adapter TypeScript extension ~/.pi/agent/extensions/duckterm-hookd.ts | Reply matching Per event 3 identifier fields |
Devindevin Contract-backed | Lifecycle status Shared canonical rules 15 mapped event types | Phone decision Approve / reject wired Terminal decision · Event: PermissionRequest | hookd adapter Native hook config ~/.config/devin/config.json | Reply matching Per event 4 identifier fields |
Droiddroid Contract-backed | Lifecycle status Agent-specific rules 7 mapped event types | Phone decision Approve / reject wired Structured response · Event: PreToolUse | hookd adapter Native hook config ~/.factory/settings.json | Reply matching Per event 5 identifier fields |
| | Lifecycle status Shared canonical rules 15 mapped event types | Phone decision Approve / reject wired Terminal decision · Event: PermissionRequest | hookd adapter Native hook config ~/.qoder/settings.json | Reply matching Per event 4 identifier fields |
Ampampcode Contract-backed | Lifecycle status Shared canonical rules 15 mapped event types | Phone decision Approve / reject wired Structured response · Event: PermissionRequest | hookd adapter JavaScript plugin ~/.config/amp/plugins/duckterm-hookd.ts | Reply matching Per event 3 identifier fields |
Geminigemini Contract-backed | Lifecycle status Shared canonical rules 15 mapped event types | Phone decision Status only | hookd adapter Native hook config ~/.gemini/settings.json | Reply matching Per event 3 identifier fields |
DeepSeek Harnessdsh Contract-backed | Lifecycle status Shared canonical rules 15 mapped event types | Phone decision Status only | hookd adapter Native hook config ~/.dsh/duckterm-hooks.json | Reply matching Per event 3 identifier fields |
Kimi Codekimi Contract-backed Questions: notification detail — answer on the computer | Lifecycle status Shared canonical rules 15 mapped event types | Phone decision Status only | hookd adapter Native hook config ~/.kimi-code/config.toml | Reply matching Per event 4 identifier fields |
Structured questions are a separate axis from wired phone decisions. Capture without settlement (Kimi Code) is notification detail, not a phone form. Permission prompts for those agents are observed, not settled from the phone.
These workflows are exercised by dedicated hook or transcript code, but do not claim contract-only approval or correlation fields.
cursor Native Cursor hook target with a tested policy overlay for its lower-camel-case events.
DuckTerm is a real SSH/Mosh terminal with direct tmux, psmux, and Herdr session entry, so any CLI/TUI still runs normally. Familiar logos show terminal/session context; they do not imply a dedicated hookd approval contract.
Qwen Code
Aider
Cline
GitHub Copilot
Windsurf
Warp
Augment
Kilo Code
Kiro
Manus
Roo Code The website build imports the same embedded fixtures hookd tests. A contract Agent without a product-order slot fails the build. Runtime-only exceptions remain explicit, and validation-only eventMap.pushable is never presented as the live push gate.