macOS

Where Are macOS LaunchAgents and LaunchDaemons Stored?

The four LaunchAgents and LaunchDaemons folders on Mac, what each scope means, and managing them with launchctl.

Last updated

macOS runs background jobs from property list files spread across four folders, split by user versus system and agent versus daemon. Agents run inside your login session; daemons run system wide as root. Knowing which folder a job lives in tells you whose privileges it carries.

Legit apps and persistent malware use the same mechanism, which is why these folders top every Mac cleanup checklist. List them with launchctl, and disable jobs by unloading the plist rather than deleting files blindly. Deleting Apple plists in System breaks updates, so leave that tree alone.

Where macOS stores this, by platform

macOS
~/Library/LaunchAgents

Per user agents running in your session. System equivalents are /Library/LaunchAgents for all users, /Library/LaunchDaemons for system daemons, and /System/Library/LaunchDaemons for Apple itself. Manage with launchctl load and unload.

Frequently asked questions

How do I stop a program launching at login on Mac?

Check ~/Library/LaunchAgents for its plist first, since Login Items settings miss agent based starters. Unload it with launchctl unload, then remove the plist if you want it gone permanently.

What is the difference between LaunchAgents and LaunchDaemons?

Agents run inside a user login session with user privileges. Daemons run system wide as root outside any session. Malware favors both, so check the user and system trees when hunting persistence.

Notice an outdated path? Let us know.