← All guides
Trust & safety guides

How to watch what any Mac app sends over the network

Every app on your Mac can talk to the internet. Most do it for good reasons — update checks, sync, licensing. But you don’t have to take any app’s word for what it sends. This guide shows you how to see the traffic for yourself, with free tools and plain steps. No security background needed. It works on any app, including ours.

Last updated: August 13, 2026 · ~8 min read

Why learn this

In January 2026, security researchers found Google ads targeting people who searched for a Mac cleaner. The ads led to a fake help guide that told readers to paste a scrambled command into Terminal. Running it handed attackers control of the Mac. (Reported by Macworld and Hackread.)

There are two calm lessons in that story. First: never run a command you can’t read. Second: it helps to know how to check what an app actually does on the network, instead of guessing. This guide teaches the second skill.

Our rule for every command on this page: each one is short, and we explain every part of it in plain words before you run it. If a website ever asks you to paste something it won’t explain, don’t.

Method 1 — Activity Monitor: zero install, one number

Your Mac already ships a basic answer. It won’t tell you who an app talks to, but it tells you how much it has sent.

  1. Open Activity Monitor (Applications → Utilities → Activity Monitor).
  2. Click the Network tab.
  3. Find the app in the list and read its Sent Bytes column.

Now use the app the way you normally would, and watch the number. A note-taking app that syncs will send a little. A backup app will send a lot, because sending your files is its job. An app that claims to work entirely on your Mac should send almost nothing — the number should stay roughly flat while it works.

Method 2 — One Terminal command that lists every connection

This is the fastest way to see who an app is talking to, right now. Open Terminal (Applications → Utilities → Terminal) and paste this, replacing AppName with the app’s process name:

Command — list an app’s open network connections, refreshed every two seconds

while true; do date; /usr/sbin/lsof -a -i -c AppName || echo "AppName: no open network connections"; echo; sleep 2; done

Here is what every part does, so you’re not pasting anything opaque:

Each line of output is one live connection. The useful part is at the end: an arrow like ->api.example.com:443, which reads as “this app is connected to that hostname, on that port.” Hostnames are the honest tell. You’ll recognize a vendor’s own domain; ad and analytics domains stand out just as clearly.

Method 3 — Byte counters with nettop

If you want a running total of what a specific app has sent and received, macOS includes nettop:

Command — total network bytes for one app

nettop -p "$(pgrep -x AppName)" -L 1 -J bytes_in,bytes_out

Run it before and after the app does its work, and compare. The difference is what the app actually sent while you watched.

Method 4 — A per-app firewall: LuLu or Little Snitch

Terminal snapshots are honest but momentary. A per-app firewall watches continuously and shows you every outbound connection each app attempts, as it happens — and lets you block the ones you don’t like.

Install one, open its monitor view, then launch the app you’re curious about and use it normally. Every hostname it contacts will appear under its name. Ten minutes of watching usually answers the question for good.

Method 5 — Wireshark: the deep view

Wireshark is the free tool security researchers use to capture raw network traffic. Most app traffic is encrypted, so you can’t read the contents — and you don’t need to. Encryption hides what is said. It cannot hide who is spoken to or how much is sent, and those two facts are usually the whole answer.

  1. Install Wireshark and start a capture on your active interface (Wi-Fi or Ethernet).
  2. Type this display filter into the filter bar and press Enter:
dns || tls.handshake.type == 1
  1. Use the app while the capture runs, then stop it.
  2. Read the hostname list. Then open Statistics → Conversations and sort by bytes sent from your machine.

That sort-by-bytes view is the strongest test on this page. An app that reads hundreds of gigabytes from your disk but only sends a few kilobytes cannot be uploading your files — there is nowhere for the volume to hide. Arithmetic doesn’t take anyone’s word for anything.

One thing you won’t see here: traffic to 127.0.0.1 (also called localhost or loopback) never crosses your Wi-Fi or Ethernet interface, because it goes from your Mac to itself. Apps use it to talk to local helpers — a local database, or a local AI model. To watch it, start a second Wireshark capture on the Loopback interface.

How to judge what you find

Seeing traffic isn’t the same as seeing a problem. Ask three questions about any app:

Try it on our app first

We make Vaulith, a disk cleaner that claims your files never leave your Mac. That claim is exactly the kind you should test with this guide — so we wrote down what you should see. Our verify-it-yourself page lists the complete expected traffic, hostname by hostname, for every one of these methods, and how your privacy works explains the few connections the app does make and why. If you can capture a shipped build (v1.0.54 or later) sending file names, paths, or contents, we fix it, disclose it publicly, and credit you — the terms are on our security page.

Point your harshest instrument at us

Download Vaulith free, open a network monitor beside it, and scan your messiest folders. The free tier needs no account and includes 500 MB of cleanup a month, so the test costs you nothing. Compare what you capture against the published expected output.

Download for macOS & Windows — Free

Keep going

Frequently asked questions

Do I need to buy anything to monitor an app’s traffic?

No. Activity Monitor, lsof, and nettop are built into every Mac. LuLu and Wireshark are free downloads. Little Snitch is paid, but its demo mode is enough for the tests on this page.

Can an app hide its uploads inside encrypted traffic?

It can hide the contents, not the size or the destination. Encryption scrambles what is sent, but the number of bytes and the hostname they go to stay visible to every tool above. Large uploads cannot masquerade as small ones.

What does traffic to 127.0.0.1 mean?

That’s your Mac talking to itself — it’s called loopback. It never reaches the internet. Apps use it for local helpers, like a local AI model or database running on your own machine.

Is it okay to run these tools?

Yes. On your own Mac, these are standard administration tools — the same ones IT departments and researchers use every day. Watching your own machine’s traffic is your right.