Blog · Guides

How to show network speed in the Mac menu bar

Live upload and download, next to the clock, without opening Activity Monitor to find out what is using the connection.

11 August 20264 min read

macOS will tell you your network speed, but only if you go and ask. Activity Monitor has a Network tab with data in and out per process, and it is genuinely good once it is open.

The problem is that by the time you have opened it, whatever you wanted to catch has usually stopped. A number in the menu bar answers a different question: is something using my connection right now, and roughly how much.

Putting it up there

AirStats is free and open source and does this. In settings, turn on one of three menu bar metrics depending on how much space you want to give it:

  • Network (up and down). Both rates in one item. What most people want.
  • Download only. Half the width, and the direction you usually care about.
  • Upload only. Worth its own item if you back up, sync, or push large things and want to notice when it starts.

You can choose the unit too, since bytes per second and bits per second are both defensible and people are religious about which one they want.

Open the panel and there is more: per interface counters, totals since boot, Wi-Fi link quality and your addresses.

What the numbers are

Throughput is a rate, computed from interface byte counters over the interval between two samples. That has one consequence worth knowing: a rate is always an average over a window, so a very short burst that starts and finishes inside one interval shows up smaller and wider than it really was. Every network readout on every platform works this way.

The totals are simpler, they are the counters themselves. You can check those yourself against the kernel:

netstat -ib -I en0

That is exactly how the readings were verified when I benchmarked the app: 3.1 GB down and 6.0 GB up, matching exactly. The rest of the accuracy checks are here.

The Wi-Fi part is the expensive part

One implementation detail, because it affects what you should expect to see.

Link quality, signal strength and channel do not come from a counter. They come from CoreWLAN, which is a round trip to another process for each property, and a full read of those measures around 7 ms when the machine is idle and up to 20 ms when it is busy. That is far more than everything else in the network collector costs put together.

So signal strength refreshes on its own slower cadence and is cached in between, while the throughput counters keep updating every sample. Your speed numbers are live. Your RSSI is a few seconds stale, on purpose, because it moves slowly and paying 20 ms a second for it would be a bad trade.

That is the kind of decision that separates a monitor you can leave running from one you notice. If you want the rest of them, the sampling design is written up here.

AirStats

Sixteen metrics in your menu bar for 0.046% CPU. Free and open source.

Download for Mac

How to check GPU usage on a Mac