What cloudd actually is
cloudd is the CloudKit daemon: the process macOS uses to talk to Apple's iCloud servers on behalf of apps. It is a standard part of macOS, shipped and code-signed by Apple, and it is not malware.
CloudKit is Apple's framework for storing app data in iCloud and keeping it consistent across a user's devices. Apps do not open their own connections to sync; they hand their data to CloudKit, and cloudd does the work of uploading changes, fetching changes made on other devices, and retrying failed requests.
More rides on it than most people expect. iCloud Drive document sync goes through it, as does Notes, and Photos uses it for library metadata. Many of Apple's own apps rely on it to stay consistent across a Mac, an iPhone and an iPad, and so do a large number of third-party apps: CloudKit is a popular sync backend because the developer needs no server of their own.
So when cloudd is active, you are almost always looking at iCloud sync in progress — for the system, for an Apple app, or for something you installed.
Why cloudd's traffic is really other apps' traffic
This is the most useful thing to understand about cloudd, and the source of nearly all the confusion around it.
cloudd is a shared courier. It does not generate traffic of its own in any meaningful sense; it carries other apps' data. When a note changes, when a document lands in iCloud Drive, when a third-party task manager syncs an item, those bytes leave your Mac under cloudd's name rather than under the name of the app that produced them. Any tool that attributes network activity per process, Activity Monitor included, will therefore show a large figure against cloudd and little against the apps actually responsible.
So cloudd using a lot of data is rarely a statement about cloudd. It is a statement about how much your apps are syncing, aggregated into one line. Two Macs running identical copies of macOS can show wildly different cloudd numbers purely because one has a large Photos library and a couple of CloudKit-backed apps.
macOS does this elsewhere too: nsurlsessiond carries background downloads and uploads for other apps and reads as heavy for the same reason. Once you recognise the pattern, a busy daemon with a generic name stops being alarming. It is usually a pipe, and the interesting question is what is being pushed through it.
Is cloudd safe, and how to verify it yourself
cloudd is safe. It is a first-party Apple daemon, it has been part of macOS for years, and its behaviour is entirely explained by the job it does. The reasonable version of the concern is not whether the real cloudd is dangerous, but whether the process running under that name on your Mac is the real one — a fair question, since taking a boring system-sounding name is an old trick.
You can settle it without special tooling. In Activity Monitor, find cloudd and open the inspector by double-clicking it. The genuine daemon lives inside the read-only system volume rather than in your home folder, Applications or Downloads, and it is started by launchd rather than by anything you opened. A process called cloudd running out of a user directory would be the anomaly worth chasing.
The stronger check is the code signature. Apple's system binaries are signed by Apple, and on modern macOS the system volume is cryptographically sealed, so a replaced system daemon is not something ordinary software can quietly arrange. macOS ships command-line tooling that reports the signing authority for any binary, and for cloudd it should come back as Apple.
It is also worth saying what cloudd is not. It is not an analytics or telemetry process; it moves your apps' data to and from iCloud for the services you have already enabled.
Why cloudd uses so much CPU or network
Heavy cloudd activity almost always means a large sync is in progress, and the most common case is an initial one. A newly signed-in iCloud account, a fresh install, or a service you have just switched on has to reconcile everything from scratch, which can run for hours and move a great deal of data. A large Photos library is the classic example; so is a big iCloud Drive folder that has just been added or restored. The right response is usually patience: let it finish on a connection where the data does not matter, and activity falls back to a trickle on its own.
The second cause is a sync that keeps failing and retrying. If an item cannot be uploaded, cloudd may retry in a loop, which looks like sustained CPU use with nothing to show for it. The tell is activity that never settles, over days rather than hours, with no large transfer to explain it. A restart clears a fair number of these; if it does not, turning the affected service off and back on in iCloud settings, or signing out of iCloud and back in, usually does.
Third, check what is actually enabled. iCloud settings show which services and apps sync, third-party ones included, and turning sync off for an app you rarely use removes its load entirely.
On a metered connection the problem is not that cloudd is busy but that being busy costs money. The answer is still not to block it: pause iCloud sync, switch on Low Data Mode for that network, disable the heaviest services while you are on it, or cap the traffic.
Blocking it, and the bigger picture
Blocking cloudd with a firewall is possible, and it is a bad idea for one specific reason: it breaks iCloud syncing across the whole system, and it does so silently. Nothing shows an error. Notes stop appearing on your other devices, documents stop updating, third-party apps quietly go stale, and weeks later you are working out why a change made on your Mac never reached your iPhone. The mechanism is not the thing to attack; the volume is.
Which leaves the real problem: visibility. macOS runs many daemons that talk to the network without asking, most with names that give nothing away, and offers almost no way to see which ones are connecting where or how much they are moving. When one turns up at the top of a bandwidth list, there is no built-in way to judge whether that is normal.
That gap is what NetMute closes. It shows real-time per-app and per-process traffic, and domain-level logging records which domains each process contacted and how much data went with it. For the metered case, per-app data limits are the practical tool: a daily or monthly cap per process, a warning at a threshold you choose, and an automatic block at 100 percent, with a global cap on top and limits stored per network profile, so your hotspot rules are not your home rules. Profiles switch automatically with the Wi-Fi network you join, and the per-app firewall blocks anything that should not be talking in one click, with self-expiring temporary rules for testing.
The goal is not to block more. As cloudd shows, most background traffic on a Mac is legitimate. The goal is being able to tell the difference, and to keep it inside a budget when the connection you are on has one.