What is cfprefsd on a Mac?

cfprefsd is the macOS process that reads and saves the settings, called preferences, for your apps and for macOS itself. When an app remembers its window size, your chosen theme or the last folder you opened, cfprefsd is the process that handles it. It is a normal part of macOS, it is usually close to idle, and you should not end it.

If you have found it using a lot of processor time, the cause is almost never cfprefsd itself. It is an app writing its settings over and over, and the process is just doing what that app asks.

What cfprefsd does

The name is short for “Core Foundation preferences daemon”. A daemon is a background process, and Core Foundation is a layer of macOS that apps use to store settings. Foreman gives it a plain name, “Preferences”, with the description “Reads and saves settings for apps and macOS.”

Apps do not each write their own settings file straight to disk. They ask cfprefsd to do it. That gives macOS one place that keeps settings in order, caches them so apps can read them quickly, and makes sure two apps asking for the same setting see the same answer.

You will see more than one cfprefsd in a list of processes. There is one for the system, which runs as root, one for your own account, and often more for macOS’s own service accounts (their names start with an underscore, such as _softwareupdate). If someone else is signed in at the same time, they have one too. All of that is normal. A User column in any process list shows which copy is which.

Why it is usually quiet

Most of the time an app reads its settings once when it opens, and writes them when you change something. That is a few small operations, and cfprefsd handles them in a moment. You will see its figures sit near zero for most of the day.

So when it does climb a list sorted by CPU, something unusual is happening.

Why it sometimes uses a lot of CPU

When cfprefsd is busy, ask what is asking it to work. The common causes are these.

  • An app is writing settings constantly. A badly behaved app may save a preference many times a second, for instance every time a progress bar moves or a window redraws. Each save goes through cfprefsd, so it shows the load even though the app is the cause.
  • A restart after an update or a login. Many apps read and write settings as they start. If lots of apps open together at login, cfprefsd is briefly busier. That settles in a minute or two.
  • A damaged preferences file. If an app’s settings file is broken, the app may keep trying to read or rewrite it. This is rarer, and is usually specific to one app.
  • A sync or management tool. Software that keeps settings in step across devices, or applies company settings, can send a steady stream of changes.

The way to find which one it is to look at what else is busy at the same moment. Sort a process list by CPU and see whether one app is also working hard. If an app is at the top at the same time as cfprefsd, that app is the one to look at. How to find out what is running in the background on your Mac shows how to read the list.

What to do about it

Start with the app, not the process.

  1. Quit the suspect app and watch cfprefsd. If its processor use falls straight away, you have found the cause.
  2. Update the app. A steady stream of writes is usually a bug, and bugs get fixed.
  3. Restart the Mac if nothing stands out. That clears out any stuck state and costs a minute.
  4. Remove the app’s settings only as a last resort. For most apps the settings are a file whose name ends in .plist, in the Preferences folder of your user Library. Apps from the App Store usually keep theirs inside their own folder in Library > Containers instead. Quit the app, move its one file to your desktop, then log out and back in (or restart) before you open the app again, because cfprefsd may still hold the old settings in memory and write them back. The app then starts with fresh settings. Keep the file so you can put it back. Do this only for the single app you have identified, and never delete files you cannot name.

One more point for people who edit settings by hand. Because cfprefsd caches preferences, a change made to a .plist file directly can be ignored or overwritten later, since cfprefsd still holds the older version in memory. If you need to change a setting from Terminal, the defaults command goes through cfprefsd properly. That is why it is the supported way.

Can you end cfprefsd

You can, but there is rarely a good reason to. The copy for your account runs as you, so ending it needs no password. The system copy runs as root, and the others under system accounts, so ending those needs an administrator password. Either way, macOS starts a new copy the moment an app asks for a setting, because so many apps depend on it. Ending it does not cure a runaway app. The app will simply ask the new copy to do the same work.

If one app really is hammering it, quitting that app is the clean fix. Quit vs force quit on a Mac: what you lose with each explains which one to use.

Seeing it in Foreman

In Foreman, cfprefsd appears on the Processes page as “Preferences”, with the real name in grey beside it. You can sort by CPU to see it alongside the apps, and open All Processes to see each copy’s PID, its user and its parent. If it ever does stand out, you can see which app is also busy and end that app with End Task, which asks it to quit the normal way so it can offer to save your work.

What Foreman offers depends on the copy. For the system copy and the ones under system accounts, it asks for your administrator password before ending them and does not offer Efficiency Mode, because macOS only lets an administrator slow down processes owned by root or a system account. The copy under your own account can go into Efficiency Mode, but since every app relies on it, Efficiency Mode is better spent on the app that is causing the work. Foreman is $12 once, free for 24 hours, on up to 3 Macs.

The short version

cfprefsd saves and reads settings for apps. It is quiet when things are well. If it is busy, an app is writing preferences too often, so find the app, update it or quit it, and leave cfprefsd alone. Foreman puts it and the apps side by side, so the busy app is easy to spot.