Two levels of control
Global kill switch — blocks all write actions for the entire workspace. Every request throughgateway-proxy, evaluate-action, and mcp-gate that reaches the policy engine will return block with reason "Kill switch is active".
Per-tool pause — pauses a single tool connection (e.g. GitHub) while leaving others active. Stored as paused: true on the tool_connections row.
Both are checked at evaluation time. The global kill switch is also checked before executing a deferred action, so approvals queued before the kill switch was enabled will not execute while it is active.
Activating the kill switch
The
kill-switch endpoint requires a Supabase user JWT (not an agk_ API key) and the caller must have the admin or owner role in the workspace.Actions
action value | Additional field | Effect |
|---|---|---|
enable | — | Global kill switch on |
disable | — | Global kill switch off |
pause_tool | tool (required) | Pause one tool |
resume_tool | tool (required) | Resume one tool |
tool values: github, linear, slack, notion, internal_api, mcp
Response
Audit logging
Every kill switch action is written toaudit_logs with:
tool:"system"action:"kill_switch.enable"/"kill_switch.disable"/"github.pause_tool"/ etc.risk_level:"critical"decision:"allow"payload_preview:{ "actor": "<user_id>" }
kill_switch notification event if enabled in workspace settings.
Status in poll responses
When you poll/gateway-proxy/status/:correlationId, the response includes the current kill switch state: