March 26, 2026

I BUILT THE WIFI NOTIFICATION macOS SHOULD HAVE HAD ALL ALONG

Here's something that's been driving me insane for years. You're in the middle of a Zoom call. Or pushing code. Or downloading something that took twenty minutes to get to 94%. And your WiFi silently drops.

No notification. No sound. No banner. Nothing. The WiFi icon in the menu bar changes to empty bars and hopes you notice. You don't. You find out three minutes later when your video freezes and your terminal hangs and you look up at the menu bar and think: how long has that been like that?

Every time, the same thought: why doesn't Apple just tell me?

So I built it myself.

macOS has had WiFi since 1999. It still doesn't notify you when it drops. That's twenty-seven years of silence.

MEET DROPOUT

Dropout is a lightweight macOS menu bar app that does one thing: tells you the moment your WiFi connection changes. Disconnect, reconnect, signal degradation, network switches — instant native macOS notifications for all of it.

It's free. It's open source. It uses zero battery. And it solves a problem that's annoyed every Mac user since WiFi existed.

Download Dropout — Free

macOS 13 Ventura or later. 352KB DMG. Signed and notarized by Apple.

Download Dropout-1.0.0.dmg

MIT License · No ads · No tracking · No telemetry

WHAT IT DOES

Click the WiFi icon in your menu bar and you get a clean status overview: your current network, signal strength in dBm, internet reachability, a timeline of recent events, and daily stats showing how many times your connection dropped and total downtime.

When your WiFi drops, you get an immediate macOS notification with the network name. When it reconnects, you get another one — this time showing exactly how long you were offline. "Back on HomeWiFi — 47s offline." That downtime duration is something I've never seen in any other tool. It turns an invisible problem into a measurable one.

THE FULL FEATURE SET

Feature What It Does
Disconnect alerts Instant notification when WiFi drops, with network name
Reconnect alerts Notification with exact downtime duration
Signal warnings Alerts before your connection drops (below -75 dBm)
SSID change detection Know when your Mac silently switches networks
Dead network detection Auto-disconnects from WiFi with no internet
Internet reachability Distinguishes "WiFi up, no internet" from "WiFi down"
Event log Full history in SQLite, exportable as CSV
Event hooks Run custom scripts when events happen (Slack, automation)
Notification throttling Smart dedup prevents spam during WiFi flapping
Daily stats Total disconnects and downtime in the menu bar

THE DEAD NETWORK FIX

This is the feature that convinced me this needed to exist as an app, not just a notification script.

You know the scenario: you walk into a coffee shop. Your Mac auto-connects to a saved network — maybe the shop's old router, maybe a hotspot you used once. The WiFi shows full bars. Connected. Looks fine. But the network has no internet. It's dead.

The only way macOS lets you escape? Forget the network. Delete it from your saved networks entirely. Next time you're at that coffee shop and the WiFi actually works, you have to re-enter the password.

Dropout fixes this. When it detects you're connected to a network with no internet for 15 seconds, it automatically disconnects. Not forgets — disconnects. macOS then auto-joins the next preferred saved network. The dead network stays in your saved list for when it's actually working.

You can also hit Cmd+D in the Dropout menu to manually disconnect from the current network anytime. Same behavior: leave without deleting.

Dropout disconnects you from dead networks without deleting them. macOS should have done this from day one.

HOW IT WORKS (AND WHY IT USES ZERO BATTERY)

Every other WiFi monitoring tool I found uses some version of the same approach: poll the WiFi status every few seconds. Check if it changed. Wait. Check again. This wastes CPU cycles, drains battery, and — critically — misses events that happen between polls.

Dropout doesn't poll at all. It uses Apple's CoreWLAN framework to register for kernel-level WiFi events. When your WiFi state changes, the OS notifies Dropout directly. The app is essentially asleep until something happens.

MONITORING LAYER

CWEventDelegate.linkDidChange → WiFi connect/disconnect

CWEventDelegate.ssidDidChange → Network switches

CWEventDelegate.linkQualityDidChange → Signal degradation

CWEventDelegate.powerDidChange → WiFi radio on/off

NWPathMonitor → Internet reachability

The result: zero polling loop, zero battery impact, zero missed events. The app binary is 248KB. It sits in your menu bar doing nothing until the instant something changes — then it reacts in milliseconds.

EVENT HOOKS: AUTOMATION FOR POWER USERS

Every WiFi event in Dropout can trigger a custom shell script. Drop an executable .sh file into the hooks folder and it runs automatically with full event context passed as environment variables.

# Post to Slack when WiFi drops
~/Library/Application Support/Dropout/hooks/

on-disconnect.sh
#!/bin/bash
curl -X POST "https://hooks.slack.com/your/webhook" \
  -d "{\"text\":\"WiFi dropped from $DROPOUT_SSID at $(date)\"}"

Available hooks: on-disconnect.sh, on-connect.sh, on-ssid-change.sh, on-signal-weak.sh, on-internet-lost.sh, on-internet-restored.sh. Each receives DROPOUT_EVENT, DROPOUT_SSID, DROPOUT_BSSID, DROPOUT_RSSI, and DROPOUT_TIMESTAMP as environment variables.

Pause your torrent client when WiFi drops. Alert your team on Slack. Trigger a home automation scene. Log to a remote server. Whatever you want.

PRIVACY: ZERO NETWORK REQUESTS

Dropout makes zero network requests. No analytics. No telemetry. No update checks. No data leaves your Mac, ever. The WiFi event log is a local SQLite database. Preferences are local UserDefaults. That's it.

The only reason the app asks for Location Services is because Apple requires it for apps to read WiFi network names on macOS 14 and later. Your location is never stored, logged, or transmitted. If you deny the permission, Dropout still works — it just can't show you the network name.

THE TECHNICAL DETAILS

For anyone who wants to know what's inside:

The entire app is about 1,500 lines of Swift across 10 files. No external dependencies. No frameworks beyond what Apple ships with macOS. It builds in under 2 seconds.

Get Dropout

Free, open source, 352KB. Signed and notarized by Apple. The WiFi notification Apple forgot to build.

Download Dropout-1.0.0.dmg

Or build from source: git clone https://github.com/MeriaApp/dropout.git && cd dropout && ./Scripts/build-app.sh

WHY THIS EXISTS

I searched for a macOS WiFi disconnect notifier. The options were: heavyweight network monitoring suites that cost money, shell script hacks that drain battery and miss events, or Hammerspoon configurations that require a 100MB scripting runtime.

There was no lightweight, event-driven, native macOS app that just tells you when your WiFi drops. So I built one. The dead network auto-disconnect was the feature that pushed it from "personal utility" to "something other people need."

If your WiFi has ever dropped without you knowing — and it has — give Dropout a try.