Airlock Windsurf Enforcer
Human approval for AI actions in Windsurf
Prerequisites
- • Windsurf IDE installed
- • An Airlock account
- • The Airlock Mobile Approver app installed on your phone (Android or iOS)
Getting Started
- 1
Install the Extension
In Windsurf, open the Extensions panel (
Ctrl+Shift+X/Cmd+Shift+X), search forAirlock Enforcer, and install Airlock Windsurf Enforcer. - 2
Sign In
Open the Command Palette (
Ctrl+Shift+P/Cmd+Shift+P) and runAirlock: Sign In. Authenticate with your Airlock account. - 3
Pair with Mobile App
Run
Airlock: Start Mobile Pairingfrom the Command Palette. A QR code will be displayed. On the Airlock Mobile Approver app, go to Settings → Pair Another Workspace, scan the QR code or enter the pairing code manually. - 4
Enable Auto Mode
Run
Airlock: Enable Auto Modeto start intercepting AI actions. All agent commands will now require your mobile approval.
Extension Commands
| Command | Description |
|---|---|
Airlock: Sign In | Authenticate with the Gateway |
Airlock: Sign Out | Clear authentication |
Airlock: Start Mobile Pairing | Pair with the Airlock mobile app (QR code) |
Airlock: Unpair Mobile Approver | Remove paired device |
Airlock: Enable Auto Mode | Start automatic approval gating |
Airlock: Disable Auto Mode | Stop gating |
Airlock: Show Status | Show current endpoint, enforcer ID, pairing state |
Windsurf-Specific Notes
Auto Mode: When Windsurf is in "Auto" mode, the enforcer hooks into the command execution pipeline. Rejected commands will cause the AI agent to receive a rejection error, preventing further execution of the blocked action.
How It Works
The Airlock Windsurf Enforcer intercepts all AI-generated terminal commands and file mutations. Each action is encrypted with AES-256-GCM and submitted to the Gateway. Your Mobile Approver receives a push notification — you review the action and sign your decision with Ed25519. The enforcer verifies the signature locally before allowing execution.
Security model: The enforcer operates in fail-closed mode. If the gateway is unreachable, the signature is invalid, or the request times out — the action is blocked. No exceptions.