How to Set a Bandwidth Cap on macOS (Practical Guide)
macOS does not ship a global bandwidth cap, but you can build one. A walk-through of throttling, alerts, and per-app limits on a Mac.
- macOS
- Bandwidth
- Tutorial
- Productivity
You tether your Mac to your phone for a long flight and you want to make sure your Mac does not silently chew through 30 GB of cellular data running iCloud sync, Time Machine, and a Slack download of every emoji ever shipped. You search for "how to set a bandwidth cap on macOS" and discover, frustratingly, that macOS does not have one. Not really. The bandwidth cap macos question turns out to be a layered problem with no single switch.
This post covers what is actually possible — combining Low Data Mode, per-app throttling, scheduled pauses, and active monitoring to build something close to a real cap. None of these alone is a hard limit. Together they get you 90% of the way.
Why macOS does not ship a built-in bandwidth cap macos toggle
macOS treats network access as a binary capability per app — either an app can talk to the network, or it cannot. There is no kernel-level "this Mac may use no more than 5 GB today" setting. The closest macOS gets is Low Data Mode, which is a per-network hint to background services that they should defer big uploads and downloads.
A real global cap would require something like a kernel network filter (a Network Extension) that meters traffic and drops packets when a limit is hit. Tools like Little Snitch and Murus can do per-app filtering with a similar architecture, but those are firewalls — they block, they do not throttle.
So the realistic answer is: there is no one-click bandwidth cap. You build the equivalent out of layered controls.
What "cap" actually means in practice
Before listing techniques, get specific about what you want. There are three distinct goals:
- Stay under a cellular or hot-spot cap. "Don't burn my phone's 5 GB plan."
- Avoid bandwidth contention. "Don't let backup uploads ruin my video call."
- Hard-limit data per period. "No more than 50 GB this month, period."
The first two are very achievable with built-in tools and a monitor. The third is hard — macOS has nothing native for it, and even third-party tools usually approximate it via alerts plus manual action.
Layer 1: Low Data Mode (the single biggest lever)
Low Data Mode is the closest macOS comes to a built-in cap. It is per-network — you turn it on for a specific Wi-Fi SSID, and macOS will defer or shrink traffic on that network.
What Low Data Mode actually does
When Low Data Mode is enabled on a network:
- Software updates stop downloading in the background. You get a notification but the download waits.
- App Store automatic updates pause.
- iCloud Photos stops uploading originals. Optimized thumbnails still sync.
- iCloud Drive defers large uploads.
- Mail stops auto-fetching attachments.
- Background app refresh is throttled.
- Apple Music and other Apple media streams downgrade to lower bitrates.
- Many third-party apps respect the Low Data Mode flag via the standard
URLSessionAPI.
It is not a hard cap. Active foreground apps still use as much data as they want. But it cuts the silent background traffic dramatically — often more than half of total data on a typical Mac.
How to enable it
System Settings → Wi-Fi → click the small "i"/"Details" button next to the network → toggle Low Data Mode.
Do this for:
- Your phone's hot-spot SSID
- Hotel Wi-Fi networks you use repeatedly
- Cafe Wi-Fi
- Any guest network where you do not want background sync running
Layer 2: Per-app pause and disable
After Low Data Mode, the next biggest lever is pausing the heavy apps individually before connecting to a constrained network.
A pre-flight checklist for tethering or capped Wi-Fi:
- Time Machine: System Settings → General → Time Machine → toggle off "Back Up Automatically" or click "Skip This Backup."
- iCloud Photos: Open Photos, scroll to the bottom, click pause on the upload status.
- iCloud Drive: System Settings → Apple ID → iCloud → iCloud Drive — turn off the apps that sync large folders (Desktop, Documents) or pause via the Finder sidebar status.
- Dropbox / Google Drive / OneDrive: Click each menu bar icon and pick "Pause syncing."
- Backblaze / Arq / Carbonite: Pause from the menu bar.
- Browser: Close cloud IDE tabs, video chat tabs, and anything streaming.
- Slack / Discord / Teams: Quit if you do not need notifications.
Five minutes of clicking saves gigabytes. Make a note of where each pause control lives so you can run the checklist quickly.
Layer 3: Active monitoring with alerts
Soft caps require visibility. Without a per-app bandwidth view, you cannot tell whether your pre-flight checklist actually worked. You also cannot tell whether you are still on track an hour later.
A monitor like ova gives you:
- Live total throughput so you can see at a glance whether anything is silently uploading
- Per-app breakdown so a surprise spike has a name in seconds
- Historical timeline so you can confirm "last hour I used 200 MB" instead of guessing
- Helper-process folding so Chrome's seven helpers show as one row
Without those, you are flying blind. With them, "stay under 5 GB on this hot-spot" becomes a question you can actually answer.
See ova in action
A glance-able menu bar bandwidth monitor — local, signed, ~3 MB.
A simple manual cap procedure
Combine the layers:
- Connect to the constrained network.
- Turn on Low Data Mode for that SSID (one-time, per network).
- Run the pause checklist for any apps not already covered by Low Data Mode.
- Open ova in your menu bar and note the starting total.
- Glance at it every 15–30 minutes. If the total is climbing faster than expected, scrub the timeline and find the offender.
- When you hit your soft cap, disconnect or pause more aggressively.
This is not automated, but it works, and it is the realistic ceiling of what is possible without third-party tools.
Layer 4: Per-app throttling with TripMode
For users who want something closer to a real per-app firewall on metered networks, TripMode is worth knowing about. It is a paid macOS tool that:
- Detects when you connect to a hot-spot or "metered" network
- Blocks every app from network access by default
- Lets you allow specific apps with one click
- Shows per-app data usage during the session
It is a different shape of tool than ova — TripMode is a firewall (it blocks); ova is a monitor (it watches). Many people run both: TripMode to keep apps offline, ova to see exactly what the allowed apps are doing.
Layer 5: Router-level caps (the hard cap)
The only place you can actually enforce a hard cap on bandwidth is your router. Many modern routers — eero, Unifi, ASUS, OpenWrt, pfSense — support per-device QoS rules and bandwidth limits. If you want a true "this Mac may use no more than 100 GB per month" rule, that is where to set it.
Examples:
- Unifi: Network → Settings → Profiles → User Groups → set bandwidth limits, then assign clients
- OpenWrt / pfSense: Traffic Shaping or QoS rules per LAN IP
- ASUS Merlin: QoS → Adaptive QoS with per-device limits
This is overkill for most users, but it is a reliable way to enforce a true cap. Pair it with a monitor so you know how close you are.
What does not work (and why)
A few approaches that come up in searches but do not really solve the problem:
pfctl and dummynet
macOS used to ship dummynet (the FreeBSD traffic-shaping framework) and ipfw. Both have been removed or deprecated in recent macOS versions. pfctl (the OpenBSD packet filter) still exists but its bandwidth-shaping features have been gutted on macOS. You can still use it for blocking, not for clean rate limits.
"Network Link Conditioner"
Apple's developer tool for simulating slow networks. It can shape your entire connection down to specific kbps for testing. But it is global and on/off — not a per-app or per-period cap. Useful for debugging, not for daily caps.
Throttling via system proxies
Setting an HTTP proxy with a rate-limit feature (mitmproxy, Charles) only shapes traffic that goes through the proxy — many apps bypass it.
A complete recipe for "I want a cap"
Putting it all together. If you are serious about staying under a number, here is the most realistic recipe:
- For metered Wi-Fi networks: Enable Low Data Mode per SSID.
- Before connecting to a known-metered network: Run the pause checklist (Time Machine, iCloud Photos, sync clients, backup).
- For a hot-spot session: Add TripMode to block by default and allow per app.
- For continuous awareness: Run ova in your menu bar so you always know what is moving.
- For a true hard cap: Set per-device QoS limits at your router.
That is five layers, each addressing a different failure mode. No one of them is a "cap." Together they are.
What to do next
Pick one layer and add it today. Most people do not have Low Data Mode enabled on their phone's hot-spot, and that single toggle saves more bandwidth than anything else on this list.
A 10-minute starter:
- System Settings → Wi-Fi → click "Details" on every network you regularly use as a hot-spot or guest network → toggle Low Data Mode.
- Bookmark the pause control for your top three sync apps (Photos, Dropbox, Time Machine).
- Install ova and let it sit in the menu bar for a week so you know what your normal pattern looks like.
- The next time you tether, you will be in vastly better shape than starting from zero.
A real bandwidth cap macos solution is not a single setting — it is a discipline plus the right view. Do the parts that matter most, and stop chasing the all-in-one toggle that does not exist.