afterFileEdit hooks are supported in cloud agents - you can see the full support table in our hooks documentation. The earlier thread you referenced was filed before this support was added, which is why it was closed without a clear resolution.
The most likely cause here is that your hook script’s dependencies (uv, ruff, yq) aren’t available in the cloud agent VM. Hooks have a fail-open behavior - if the script exits with an error (e.g., because a tool isn’t found), the agent continues silently without any visible error. So the hook may actually be firing, but the script fails because its dependencies aren’t installed.
Could you try two things to help narrow this down?
1. Test with a minimal hook to confirm the hook fires at all. Replace your current hook with this temporarily:
{
"version": 1,
"hooks": {
"afterFileEdit": [
{ "command": ".cursor/hooks/test-hook.sh" }
]
}
}
.cursor/hooks/test-hook.sh:
#!/bin/bash
echo "afterFileEdit fired at $(date)" >> /tmp/hook-test.log
cat > /dev/null
Run a cloud agent session, let it edit a file, then check /tmp/hook-test.log.
2. If the test hook fires, the issue is dependencies. You’ll need to install uv, ruff, and yq in the cloud agent VM via your environment configuration - either in a Dockerfile or the install command in .cursor/environment.json.
If the test hook doesn’t fire, that would indicate something else is going on, and we’d want a request ID from that cloud agent session to investigate further.