wifi-debug
Reports on the active wifi association: SSID, RSSI, channel, noise, Tx rate, BSSID, surrounding networks, and recent disconnect events.
When to invoke
Trigger on phrases like: "debug wifi", "wifi not working", "check wifi", "why is wifi slow", "wifi signal".
Data sources and fallbacks
macOS Sonoma and later deprecate airport. Use a layered approach:
wdutil info— authoritative on newer macOS. Non-elevated output is usually redacted but still includes SSID, channel, and RSSI on many systems. Invoke without sudo:wdutil info 2>/dev/null. Do not callsudo.- Legacy
airport—/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I. If the binary exists and returns output, prefer it for RSSI / noise / Tx rate numbers. networksetup—networksetup -getairportnetwork en0for SSID,networksetup -getinfo "Wi-Fi"for MAC / IP.
If none yield data, emit severity info, summary "Wi-Fi interface off or unavailable."
What to extract
- SSID (string)
- BSSID (string, may be redacted without location permissions — record as "redacted" then)
- Channel (integer + band, e.g.
36 (5GHz)) - RSSI dBm — integer. Severity mapping:
- ≥ −60:
ok - −60 to −70:
info - −70 to −80:
warn - < −80:
critical
- ≥ −60:
- Noise dBm — integer.
warnif > −80. - Tx rate — Mbps.
infoif < 72,warnif < 24. - Security type —
okif WPA2/WPA3,warnif WEP or Open. - MCS index (if available, raw only).
Surrounding networks
If on a legacy macOS where airport -s works, include a count of discovered networks plus the strongest 10 in raw. On Sonoma+, skip with an info finding "airport -s no longer available."
Recent wifi events
log show --style compact --last 1h --predicate 'subsystem == "com.apple.wifi"' 2>/dev/null | tail -60. Skip gracefully if log is unavailable or produces no output. Do not pipe directly into the user's terminal; store the tail in the raw.log_tail field (truncated to ~4 KB).
Output contract
Standard envelope. Write to ~/.mac-guardian/data/wifi-debug-<ISOdate>.json.
Top-level severity = max of RSSI, noise, Tx rate, security severities. Summary example: "SSID HomeNet5G, RSSI −58 dBm, 867 Mbps (ok)."
Handoff
- On direct invocation:
bash ${CLAUDE_PLUGIN_ROOT}/scripts/render-single.sh wifi-debug. - When invoked by
daily-health-report, return JSON path only.
Safety
- Never run
sudo wdutil infoor similar. Report truthfully when detail is redacted. - Read-only. Do not join / leave / change networks.