Skip to content

outboundctl alerts

outboundctl alerts: list the connection alerts waiting for an answer, preview an explanation, and answer one from Terminal.

Outbound 1.3.0 · Updated

outboundctl alerts lets you see and answer connection alerts from Terminal, for example over SSH or from a script you trust. Each answer goes through Outbound’s background agent and is handled exactly as if you had answered in the alert panel. The agent answers only for the user it runs as, so run these commands as that user, without sudo.

alerts list and alerts answer are refused when outboundctl changes is Off in Settings › Security.

Terminal window
outboundctl alerts list

Each waiting alert is one line: its id, its revision, the app, the destination and port, the transport, how many seconds are left and, when the alert answers itself at the deadline, whether it will then be allowed or denied. An alert that can only decide this one connection is marked [once only]. With nothing waiting, the command prints “No alerts are waiting for an answer.”

3F2C… revision 2 Example App → example.com:443 tcp 41s left, then denied

Destinations follow the disclosure policy: you see the website domain, not the full host name. Add --output json for the same list as structured data.

Terminal window
outboundctl alerts answer <id> allow|deny --revision <n> [lifetime]

--revision is required: pass the revision alerts list showed. If the alert has changed since then, it is left alone and the command exits 65 with “The alert changed since it was listed. Run outboundctl alerts list and answer its current revision.” That way an answer always applies to the alert you saw.

Choose at most one lifetime. Without one, the answer decides this connection only.

Lifetime What it remembers
--once This connection only (the default)
--until-quit Until the app quits
--until-logout Until you log out
--until-restart Until the Mac restarts
--for 5m, 15m, 30m, 1h, 1d or 1w For that long
--forever Saves a rule

Allowing asks for Touch ID or your password while unblocking is protected, as the alert panel does. When the settings lock protects rule editing, only --once is accepted.

A successful answer prints “Allowed the connection.” or “Denied the connection.”, and names the rule it saved, if any.

Exit When
0 The answer was applied
1 The filter did not accept the answer and the alert is still waiting, or the connection was decided but its rule was not saved
65 The alert changed, was already answered, or can only be answered --once
66 No waiting alert has that id
69 The background agent is unavailable, or the request was cancelled. Nothing changed; try again
75 The alert expired, or the filter is not connected and the answer will apply when it reconnects
77 Command-line changes are off, you are not the agent’s user, the settings lock allows only --once, or Touch ID or your password was not given

If the agent stops or the connection closes before the answer finishes, the command exits 69. Run outboundctl alerts list to check whether the alert is still waiting.

Terminal window
outboundctl alerts explain <id> [--provider openai|anthropic|gemini|openrouter|custom|agent:<id>] [--model <id>] [--base-url <url>]

Prints the exact request an explanation of that alert would send, after the disclosure policy is applied. It sends nothing and does not answer the alert. Without --provider, it uses the provider chosen in Settings › Intelligence; with Apple Intelligence chosen, it prints “On-device explanation: nothing is sent off this Mac.” followed by the facts the model would read.

outboundctl alerts spikes lists the upload spikes Outbound detected recently. It only reads, and never blocks an app.