Agents
Windsurf (Cascade)
Windsurf (Cascade) and chock: install methods and steps, what it can enforce, and the evidence behind it.
Install methods: sync. Agentseam tier block, grade best-effort before a tool runs.
Install methods
- Repo hooks:
chock sync --repo . --agents windsurfwrites.devin/hooks.json(ask the user before running it)
What it can enforce
- Tier
- block
- Grade before a tool runs
- best-effort
- Fail mode before a tool runs
- open
- Basis
- third-party-install
- Recorded
- 2026-08-26
Events
| Event | Can block | Can rewrite | Fail mode |
|---|---|---|---|
prompt_submit | yes | no | open |
pre_tool | yes | no | open |
post_tool | no | no | open |
stop | no | no | open |
Ask support
Answers an ask with: exit-2. Honours ask: no. Evidence: tested (tests/test_guard_fail_to_ask.py::test_a_crashed_guard_asks_rather_than_allowing).
Hook timeout
The vendor documents no default timeout.
Test status
- Repo hooks: untested. A test of the plugin says nothing about repo hooks.
- No row in the engine's list of live tests for this agent.
Known limits
Exit code 2 is the ONLY block signal: no stdout decision protocol, no machine-readable reason, no rewrite. Critically there is NO file-write event -- prompt, terminal and MCP hooks only -- so a write to a memory file is invisible to a hook on this agent. Fail mode is undocumented, so blocking rates best-effort rather than enforced. Payloads name their event in agent_action_name and carry the command, prompt and MCP fields inside tool_info (docs.devin.ai/desktop/cascade/hooks, read 2026-10-13, where the product is now Devin Desktop); the event is inferred from shape only when no name is present. The workspace file install writes, .windsurf/hooks.json, is now the legacy location: the same page says it is used only when .devin/hooks.json is absent or defines no hooks, so a repo whose .devin/hooks.json defines hooks does not run the agentseam ones.
Built from engine 5a4b6287a46e and catalog 1e60d211c1bb.