outboundctl debug
outboundctl debug categories: the log subsystems and categories Outbound uses, and the log stream command that shows them.
Outbound writes its diagnostics through Apple’s unified logging. outboundctl debug categories prints a fixed list of diagnostic subsystems and categories, plus a log stream command that selects its two subsystems:
outboundctl debug categoriesThe output is one subsystem category pair per line, sorted, followed by the stream command:
com.outboundfirewall.outbound agentcom.outboundfirewall.outbound app…log stream --predicate 'subsystem == "com.outboundfirewall.outbound" OR subsystem == "com.outboundfirewall.outbound.filter"'Reading the logs
Section titled “Reading the logs”Paste the log stream line into a terminal to follow everything Outbound logs live, or add --level debug to see the high-volume lines the filter produces for each connection.
The categories group by component: the app and agent each have their own category under com.outboundfirewall.outbound, and there are separate categories for audit, blocklists, DNS, the extension client, history, policy, review, rule feeds, rule usage and rules. The filter extension logs under com.outboundfirewall.outbound.filter with categories for flows, the provider, state and XPC.
If you are collecting diagnostics for a bug report, the problem report page describes what else to include.
Exit status
Section titled “Exit status”debug has one subcommand. debug categories takes no arguments; anything else is a usage error with exit 64.
The list is not exhaustive: other categories in this build include analytics, snapshots, relocation, heavy-telemetry and map. The generated predicate still selects their shared com.outboundfirewall.outbound subsystem. A successful debug categories exits 0.