Privacy Policy
This policy covers the app. Website visits, purchases and support reports have separate data handling. If you send a report, its message and attachments leave your Mac so we can respond. Direct license activation uses Lemon Squeezy.
Last updated: October 2026
Vitals keeps monitoring data on your Mac. Its Internet-health feature makes an automatic connection while Pro is unlocked; other online tools, licensing and reports also use the network. The sections below explain when those connections happen.
What Vitals reads
Vitals reads your Mac's own system state to show you CPU, GPU, memory, disk, network, battery, Bluetooth device battery, temperatures and fan speeds. All of this is read locally through standard macOS APIs and, for a few advanced Pro features, a handful of Apple-signed system tools already on every Mac. None of it is uploaded, synced, or sent anywhere — it's rendered straight into the menu bar, the popover, the dashboard and the widgets, and nowhere else.
What's stored, and where
- ✓Metrics history (used by the 30-day History & Reports features) is written as a plain JSON file in your user Library at
~/Library/Application Support/Vitals— never to iCloud, never off your Mac. You can open, move or delete it at any time; deleting it just clears your charts. - ✓Your Pro trial's start date is stored once in the macOS Keychain, the same secure, local, per-app storage macOS uses for passwords. It's used only to compute how many trial days are left — it never leaves your Mac.
- ✓Preferences (theme, layout, alert thresholds you set) are stored in standard macOS app preferences, local to your Mac.
The few things that touch the network
Internet health — the one that runs on its own
This is the single connection Vitals opens without being asked, and we would rather you read it here than discover it in Little Snitch. The Internet-health card measures latency, jitter and packet loss by timing a TCP handshake to 1.1.1.1 (Cloudflare's public resolver) every five seconds. No data is sent in the handshake — the measurement is how long the connection takes to open, and the connection is closed immediately. It runs only while Vitals Pro is unlocked, and it carries nothing about you or your Mac. Everything below this line happens only when you press something.
Phone alerts
If you choose to turn on threshold alerts and type in a webhook address (for an optional third-party service such as ntfy.sh), Vitals sends the alert text to that address when a threshold trips — and nowhere else. Leave the field empty and nothing is ever sent.
Public IP lookup
Only when you press "Reveal my public IP," Vitals makes one request to a public IP-echo service to read the address back to you. This never happens automatically.
Speed test
Only when you start it. Vitals runs the speed-test tool that ships with macOS (networkQuality), which exchanges test data with Apple's speed-test servers to measure throughput and responsiveness. If that tool isn't available, Vitals instead makes a few small transfers with Cloudflare's public speed endpoint and pings 1.1.1.1 a few times for a latency average. The transferred data is meaningless filler — nothing about you or your Mac is included.
DNS benchmark, ping and traceroute
Only when you run them. The DNS benchmark times name lookups against a few well-known public resolvers and whatever resolver your network hands you. Ping and traceroute go to the host you type in, and run in-process on an unprivileged ICMP socket rather than shelling out to system tools.
Local-LLM tools
The local-AI speed test and model library talk only to model servers already running on your own Mac, over loopback — nothing is sent over the internet. The Mac App Store build probes the well-known default ports; the direct-download build additionally finds servers you have moved to a custom port.
The location permission you may be asked for
The Wi-Fi tools ask for "Location When In Use" access. This is a macOS platform requirement, not something Vitals actually uses: since macOS Sonoma, Apple's CoreWLAN framework — which reads nearby Wi-Fi network names, bands and channels — only hands that information to apps with an authorized location client. Vitals never reads, stores, or transmits your location itself; the permission exists purely to unlock that Wi-Fi API.
Children's privacy
Vitals is not directed at children and does not knowingly collect information from anyone, of any age — there's simply nothing collected, full stop.
Changes to this policy
If this policy ever changes, the update will be posted on this page with a new "Last updated" date.
Contact
Questions about this policy? Email contact@hanncrest.com.