How to see which Tailscale devices are offline (and get alerted) from your Mac
October 10, 2026 · 6 min read
Tailscale makes it easy to forget your devices exist, which is the point, right up until the home server you SSH into from work has been offline since Tuesday. Here are the ways to see what's actually connected, from quickest to most automated.
1. The admin console
The Machines page of the Tailscale admin console lists every device with a Last seen column; online devices show "Connected". You can filter by status and sort by last seen. It's the most complete view, but you have to remember to go and look, and it's a web page you keep reopening.
2. The tailscale CLI
On any device that's on the tailnet:
tailscale status
100.101.102.103 macbook you@ macOS -
100.88.10.4 nas you@ linux offline
100.88.10.9 pi-garage you@ linux idle, tx 1240 rx 980Offline peers are marked offline. Two caveats: you only see peers your device is allowed to see under your ACLs, and the command only works from a machine that is itself connected. For a script, tailscale status --json gives you each peer's Online flag and LastSeen time.
3. The Tailscale API
For the whole tailnet regardless of ACLs, use the API with an access key from the Keys page of the admin console:
curl -s -u "tskey-api-…:" \
"https://api.tailscale.com/api/v2/tailnet/-/devices?fields=all" \
| jq -r '.devices[] | select(.connectedToControl == false) | "\(.name) last seen \(.lastSeen)"'connectedToControl tells you whether the device is currently connected, and lastSeen when it was last online. The same response includes expires and keyExpiryDisabled, which matter because a device whose node key expires drops off the tailnet until someone signs in on it again.
Getting alerted instead of checking
Tailscale's webhooks cover events such as a new device joining, a device needing approval and node keys about to expire, but there's no "device went offline" event. To be told when a machine drops, something has to poll the device list and compare it with the previous result: a cron job around the API call above that sends you a message when connectedToControl flips to false, or a monitoring tool that does it for you.
A few things worth alerting on besides offline devices:
- Keys expiring within a week, so a laptop doesn't fall off the tailnet mid-trip.
- New devices joining, especially if device approval is off.
- Subnet routers and exit nodes owned by a person rather than a tag; they disappear if that user leaves.
Or keep it in your menu bar
Meshbar does the polling for you on a Mac: it checks your tailnet every minute, keeps the online count in the menu bar, and sends a macOS notification when a device goes offline, a new one joins, or a node key is a week from expiring. Click the icon for every device with its status, OS, Tailscale IP and last-seen time, plus warnings like untagged routers. It uses an API key you create and talks to Tailscale directly; nothing passes through us.
Tailscale is a trademark of Tailscale Inc. Meshbar is an independent app and isn't affiliated with or endorsed by Tailscale. See also Tailscale's API documentation.