macOS

Where Are macOS Launch Agents and Daemons?

Where macOS keeps LaunchAgents and LaunchDaemons plists, which folders are yours to edit, and the command that runs them.

Last updated

macOS runs background jobs from plist files in four Launch folders: yours in ~/Library/LaunchAgents, machine wide agents in /Library/LaunchAgents, root daemons in /Library/LaunchDaemons, and Apple own jobs in /System/Library. The folder decides when the job runs and as whom.

launchctl is the interface: bootstrap loads a job, bootout unloads it, list shows what runs now. Editing means writing plist XML by hand or with an editor, then loading it once to test. A broken plist fails silently at boot, so test with launchctl before assuming it works.

Where macOS stores this, by platform

macOS
~/Library/LaunchAgents

Your personal jobs belong in ~/Library/LaunchAgents (create it if absent). /Library entries need admin rights. Never edit /System/Library: SIP reverts it and updates overwrite it. Disabled jobs are recorded in com.apple.launchd override files, not by deleting plists.

Frequently asked questions

A mystery process respawns on every boot. How do I kill it?

Read the plist first: the ProgramArguments key names the binary and Label names the job. launchctl bootout with the job label unloads it for the session; deleting the plist makes it permanent. Keep a copy before deleting anything you did not install yourself.

When should something be a Daemon instead of an Agent?

They run as root at boot, before any login. A typo there can stall startup, while user agents only affect your own session. Prefer ~/Library/LaunchAgents for personal jobs; reserve the system folders for software installers that genuinely need them.

Notice an outdated path? Let us know.