What Is /Library/LaunchAgents on Mac?

System (root-owned)Updated

Definition
Full path
  • /Library/LaunchAgents
Scope
System (root-owned)Shared by every account on the Mac and owned by macOS (root).
Freshist & this folder
Freshist checks this folder when uninstalling an app. When you uninstall an app, Freshist only considers items directly inside this folder whose name matches the app's bundle ID. They're never pre-selected, and because the folder is owned by macOS (root), selected items are deleted permanently by Freshist's signed helper rather than moved to the Trash.

From Freshist's own cleaning rules — the same catalog the app uses.

What launch agents are

macOS starts and supervises background programs with launchd. Each job is described by a property list naming a label, the program to run and when to run it: at login, on a schedule, when a file changes or to stay running permanently. Agents run inside a user's login session, so they can show notifications, menu bar icons and windows. Daemons run as root, independent of any user, and live in /Library/LaunchDaemons.

FolderRuns forRuns asWho can change it
~/Library/LaunchAgentsYou onlyYouYou
/Library/LaunchAgentsEvery user who logs inEach logged-in userAdministrators
/Library/LaunchDaemonsThe whole MacrootAdministrators
/System/Library/LaunchAgentsEvery userEach userNobody; part of macOS

Third-party installers use /Library/LaunchAgents for things like automatic updaters, input-device helpers, cloud sync clients and keyboard remappers. Newer apps that use Apple's SMAppService API keep their launchd plists inside the app bundle instead, so they don't add files here. Those disappear from the list when the app is deleted.

Why orphans matter

A plist here outlives the app it was installed with. After you delete the app, launchd keeps trying to start a program that's no longer on disk. That's mostly harmless, but it produces repeated errors in the logs, and if the program lives outside the app (for example under /Library/Application Support), it may keep running for every user.

Inspecting it read-only

ls -la /Library/LaunchAgents
plutil -p /Library/LaunchAgents/com.example.agent.plist
launchctl print gui/$(id -u) | grep -i example

plutil -p shows the job's Label, the ProgramArguments path it runs and often an AssociatedBundleIdentifiers entry naming the owning app. If the program path doesn't exist anymore, the agent is an orphan. sudo sfltool dumpbtm prints everything macOS's background task management knows about, including which app each item is attributed to.

Stopping and removing an agent

Start with the gentlest option:

  1. Turn it off: in System Settings → General → Login Items & Extensions, switch off the app under Allow in the Background. Nothing is deleted, and you can turn it back on.
  2. Use the vendor's uninstaller if the software is still installed or has one available for download.
  3. Remove it by hand if the app is already gone. Unload it from your session first, then delete the plist:
launchctl bootout gui/$(id -u) /Library/LaunchAgents/com.example.agent.plist
sudo rm /Library/LaunchAgents/com.example.agent.plist

Other accounts that are logged in keep running the agent until they log out or the Mac restarts. In Finder you can also drag the plist to the Trash; it asks for an administrator password.

Don't remove agents for software you still use, such as drivers for a mouse or keyboard, or the updater of an app you rely on. If you can't identify a plist, leave it.

Our article on login items and background apps explains the System Settings controls in more detail. Per-user agents are covered in the ~/Library/LaunchAgents guide, and helpers that run as root in PrivilegedHelperTools.

Sources

Frequently asked questions

How is this different from ~/Library/LaunchAgents?

The agents in your home folder run only when you log in. Agents in /Library/LaunchAgents run for every account on the Mac and need an administrator password to change. Both run as the logged-in user, not as root.

Can I just switch an agent off in System Settings?

Often, yes. System Settings → General → Login Items & Extensions lists background items under Allow in the Background. Turning one off stops it from launching without deleting any files.

What does AssociatedBundleIdentifiers mean in an agent's plist?

It tells macOS which app the agent belongs to, so System Settings can show the app's name next to the background item. It's also a quick way for you to identify an unfamiliar plist.

Keep reading