your Mac has a speed test. it has no window.

updated · by

since macOS Monterey there is a command called networkQuality that measures your connection against Apple's own infrastructure — no site, no download, no advertising. it reports five numbers, and the ones everybody quotes are the two least useful. open Terminal and type it.

run the built-in Mac speed test from Terminal

  1. ⌘Space, type Terminal, return.
  2. type networkQuality and press return.
  3. wait — about forty seconds on a fast line — and read the summary.

that is the whole thing. it is Apple's own tool, it talks to Apple's own servers, and there is no page of advertising wrapped around the result.

it is not the only capable thing in macOS with no window and no manual page — the video repacker is the same story: convert mov to mp4

what the five numbers are

a real run from this machine, so the shape of the output is not a paraphrase:

  • uplink capacity 233 Mbps and downlink capacity 402 Mbps — the two numbers a web test would show you, and the two that matter least.
  • uplink responsiveness: medium, 225 ms, 266 RPM.
  • downlink responsiveness: low, 1.604 seconds, 37 RPM.
  • idle latency: 87 ms, 686 RPM.

RPM is round trips per minute, and it is measured while the link is loaded. read those last two lines together: at rest this connection manages 686 round trips a minute, and under load it collapses to 37. that is an eighteenfold drop on a line that a speed test would call excellent.

that gap is the whole diagnosis, and it is why the same connection can download a film in three minutes and still ruin a video call.

the flags worth knowing

  • networkQuality -s runs the download and the upload one after the other. by default they run at the same time, which is faster and gives each of them a smaller number — sequential is the one to use when you want to compare with anything else.
  • networkQuality -I en0 binds the test to one interface, which is how you settle a Wi-Fi versus cable argument honestly.
  • networkQuality -c prints machine-readable output, if you want to keep a log rather than a screenshot.
  • networkQuality -v shows the ramp rather than the summary.

the idea behind the responsiveness figure, from the session where Apple introduced it: reduce network delays — WWDC21

a speed test through a tunnel measures the tunnel, which is worth remembering before you blame the line: a vpn that says connected and carries nothing

why responsiveness matters more than mbps

most connections that feel broken are not slow. a link with 400 Mbps down and a responsiveness of 37 RPM is a link where something — a backup, an update, a large upload — fills the queue, and everything else waits behind it. that is what makes a call drop out while a download continues happily.

the combination to look for is a high capacity with a low responsiveness under load. it is a specific diagnosis: the bottleneck is a buffer somewhere between you and the internet, usually in the router. it is fixable, and it is not fixed by paying for a faster plan — which is exactly what a test showing only megabits nudges you towards.

the measurement is being standardised, and the draft explains the method better than any vendor page: responsiveness under working conditions, IETF

the same trap in a different corner of the Mac: the number everyone reads is volume, and the number that describes trouble is pressure — what memory pressure actually measures

how hop runs the same test

plainly: hop runs macOS's own networkQuality — the same measurement, against the same Apple servers — from one tap in the menu bar panel, and keeps the last result in the row. the numbers are not better. they are the same numbers without opening a Terminal.

so this is the one page in the section where the honest answer is that the built-in route is enough. it costs you two things and neither is money: knowing that the command exists at all — it has no window and no manual page — and being willing to type it when what you actually wanted was to glance before a call.

if that trade is fine, use the command. if you check this several times a week, the row in the panel is what the tap is for, and everything else in hop is beside it rather than instead of it.

the module in full, including what it does not measure: speed test on the features page

when the speed test number is not what you expected

it is far below the plan you pay for

  • test once over a cable if you can, and once with -I bound to the Wi-Fi interface. the difference tells you whether to argue with your provider or move your router.
  • something else is downloading. a system update, a cloud sync or a backup takes the capacity, and the test honestly reports what is left.
  • you are on a vpn. everything goes through one server somewhere else, and the number describes that path rather than your connection.

a web test disagrees with the Terminal one

neither is wrong: they measure to different servers over different routes, and a browser adds its own overhead. compare like with like — the same tool at two times of day tells you far more than two tools at one time.

  • responsiveness is poor and capacity is fine on every test. that is bufferbloat, and the fix lives in the router — smart queue management, if it has it — not in your Mac.
  • the command is not found. networkQuality arrived in Monterey; on anything older it does not exist.
  • the run takes a suspiciously long time. that is normal on a fast line: it ramps until it finds the ceiling, and forty seconds is an ordinary result.

and if the point of measuring was a long download that must not be interrupted, the Mac has its own opinion about staying awake: keep a MacBook awake with the lid closed

and if the connection is fine but the tunnel keeps dying between sessions: a vpn that drops after sleep

frequently asked questions

does macOS have a built-in speed test?
yes — the networkQuality command in Terminal, since Monterey. it measures against Apple's infrastructure and reports capacity, responsiveness in both directions, and idle latency.
what is responsiveness in rpm?
round trips per minute, measured while the connection is loaded. on the machine used for this page it read 686 RPM at rest and 37 RPM under load — the same link, an eighteenfold difference, and the second number is the one that predicts whether calls hold up.
how do i test wifi and ethernet separately?
networkQuality -I en0, with the interface name of the connection you want. it binds the test rather than letting the system choose.
why is my speed lower than what i pay for?
Wi-Fi, distance from the router, another device saturating the line, or a vpn. test over a cable and with nothing else running before concluding anything about the plan.
is the Terminal test more accurate than a website?
not more accurate, differently routed. Apple's test goes to Apple's servers; a web test goes to whichever server it picked, inside a browser. run one of them repeatedly rather than comparing two.
does hop use its own servers?
no — it runs the system's networkQuality against Apple's servers. it is the same measurement you get from Terminal, in one tap.

the tool behind this

speed testdownload, upload and responsiveness — measured through Apple's own servers.

done with internet

other things people do

about the author

Anton Shakirov, the author of hop

makes hop

makes hop and every page on this site. eighteen tools under a single menu bar icon, MIT licensed and open source. reads and answers issues and email himself.

download hopfree · macOS 14+ · Apple silicon and Intel