Launch agents and daemons on a Mac, explained in plain English
Launch agents and launch daemons are background jobs that macOS starts automatically. Each one is a short settings file that says “run this program, and run it at login, at startup, or on a schedule”. An agent runs for you, inside your login session. A daemon runs for the whole Mac, often before anyone has logged in. Many are Apple’s and must stay; the ones from other developers are usually updaters and helpers that you can switch off.
The words sound technical, but the idea is plain. They are how a program arranges to run without you opening it.
Who does the starting: launchd
The first program macOS starts when the Mac boots is launchd. Its job is to start and stop every other background service. At startup, and again when you log in, it reads the settings files in a few known folders and starts whatever they ask for. What is launchd on a Mac covers it in more detail. Foreman describes it in one line: it starts and stops every other process and background service on the Mac.
A settings file for launchd is called a property list, and it ends in .plist. A typical one holds a few lines of text:
- a Label, which is the job’s unique name, usually in the form
com.company.product; - the ProgramArguments, which is the program to run and anything passed to it;
- RunAtLoad, which says to start as soon as the file is loaded;
- optionally KeepAlive, which says to start the program again if it quits.
Those four lines explain most of what you will find. A job with RunAtLoad starts at login or startup. A job with KeepAlive comes back after you end it, which is why ending some background programs seems to do nothing.
Agents versus daemons
The difference is who the job runs for and when.
Launch agents run in your login session, as you. They can show a menu bar icon, talk to your apps and read your files. They start when you log in and stop when you log out. An updater that checks for a new version of an app each time you sign in is typically an agent.
Launch daemons run for the whole Mac, with no login needed. They are loaded at startup and run as root, the system’s all-powerful account, unless the file names another user. They have no windows or menu bar icons of their own. A background service that must be there even when nobody is signed in, such as a network or a driver helper, is a daemon.
A rule of thumb: if the thing needs to know about you and your session, it is an agent. If it needs to be there whatever you do, it is a daemon.
Where they live
There are three places that matter for what other developers add, and one for Apple.
~/Library/LaunchAgents: agents for your account only. The~means your home folder. Apps you installed for yourself put files here./Library/LaunchAgents: agents for every account on the Mac. An installer that needs an administrator password usually writes here./Library/LaunchDaemons: daemons for the whole Mac./System/Library/LaunchAgentsand/System/Library/LaunchDaemons: Apple’s own. They belong to macOS and are protected, so leave them alone.
To see what is in the first three, open Finder, choose Go > Go to Folder and paste a path. You can also list them in Terminal with ls ~/Library/LaunchAgents. Listing a folder only reads it and changes nothing. Do not be alarmed by a long list. Each file is one job, and many apps add one or two.
The file names tell you the developer. A file named com.dropbox.something.plist is Dropbox, and so on. A name you do not recognise is worth a quick web search before you decide anything, not an automatic reason to delete it.
Some are Apple’s, and some are not
Most of the jobs on a fresh Mac belong to macOS. They look after Spotlight, Time Machine, iCloud, sound, Bluetooth, Wi-Fi and security checks. These matter. When they are running, Foreman’s process list shows the ones it recognises in plain English, with the real name in grey beside it: coreaudiod appears as Core Audio, which plays and records all sound on the Mac, and bluetoothd appears as Bluetooth, which manages Bluetooth devices. Stopping those breaks the thing they serve. macOS also restarts many of them on its own, so you would be fighting the system to no benefit.
The jobs you added yourself by installing software fall into a handful of groups:
- Updaters. A background job that checks for new versions of one app or one developer’s apps.
- Helpers. A menu bar tool or a sync service that works alongside the app.
- Drivers and hardware tools. The helper for a printer, a keyboard, a mouse or a drive.
- Security and device management. Antivirus, VPN or company-management software. These are often installed by an employer.
- Leftovers. Files from apps you deleted, whose programs no longer exist.
Which are safe to switch off
Use this as a guide, not a rule.
Usually safe: updaters for apps you only use now and then, helpers for apps you rarely open, and leftovers whose program is gone. The cost is low. The app still works, and it may check for updates only when you open it, or not run a sync helper until you launch it.
Think first: cloud storage helpers (Dropbox, Google Drive, iCloud-related), backup software, VPNs, audio tools and anything your employer installed. If you switch these off, files may stop syncing or a connection may drop. Switch one off, use the Mac as normal for a day, and put it back if something stops working.
Leave alone: everything under /System/Library, and anything with apple in the name that you cannot explain. Do not end or remove jobs that look after your login, windows, sound or security.
Is it safe to disable startup items on a Mac? goes deeper on this question.
How to switch one off without deleting it
You can edit these folders by hand, but there is a risk in it: move the wrong file, or one that a running app expects to find, and something stops working with no clear message. The safer route is the one that lets you switch back.
- First look in System Settings > General > Login Items & Extensions (Login Items on macOS 14). Most launch agents and daemons from other developers show up under “Allow in the Background”, often under the developer’s name, and the switch there turns a job off and on without removing anything. See What Allow in the Background means in macOS settings.
- Then check the app’s own settings. Many apps have an option such as “Check for updates automatically” or “Open at login”, and turning it off is the cleanest way.
- For what is left, Foreman has a Startup Apps page. It lists login items, launch agents and daemons, and background items together, grouped by app with readable names. Each item has Disable and Enable, and a status such as Enabled or Disabled. System-wide daemons ask for an administrator password. Foreman is $12 once, with 24 hours free, if you want to try it.
Its Services page is the other half: it lists macOS’s background services, for you and for the system, running or not, with Start, Stop and Restart. System services need an administrator password. How to see and stop background services on a Mac walks through it.
One thing to remember
A launch agent or daemon is only a file that asks macOS to start something. Disabling is reversible; deleting is much less so. When in doubt, disable first, wait a day, and only remove what you have proved you do not need.