What starts up with your Mac, and how to stop it

There is the list Apple shows you, and there is the real list. They are not the same length.

Open System Settings → General → Login Items and you will see a handful of entries. That is the friendly view. The real inventory of things that start without being asked is longer, and it lives in three folders and a database.

The three mechanisms

Login items are apps that open when you log in. Visible in System Settings, easy to remove, and the least interesting category.

Launch agents are background processes that start when you log in and run as you. They live in:

  • ~/Library/LaunchAgents — installed by apps for your account
  • /Library/LaunchAgents — installed for every user, needs admin

Launch daemons start at boot and run as root, before anyone logs in:

  • /Library/LaunchDaemons

Apple’s own live under /System/Library/, which is sealed and not your concern.

Seeing all of it

ls -la ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons

On my own Mac: seven, six and fourteen entries. Every one is a small XML file naming a program to run and when to run it.

To read what one actually does:

cat ~/Library/LaunchAgents/com.example.something.plist

Look for the Program or ProgramArguments key — that is the thing being launched. If the path points at an app you deleted months ago, you have found a leftover.

For everything currently loaded:

launchctl list

That is a long list — 533 entries here — and most of it is macOS itself. The useful trick is to filter for third parties by looking for names that are not com.apple.*:

launchctl list | grep -v com.apple

That is a much shorter and more interesting list.

Turning things off

For a login item, use System Settings. Nothing else needed.

For a launch agent, unload it first, then delete the file:

launchctl unload ~/Library/LaunchAgents/com.vendor.thing.plist
rm ~/Library/LaunchAgents/com.vendor.thing.plist

Unloading stops it now. Deleting stops it coming back at next login. If you only delete the file, the process keeps running until you restart.

For anything in /Library/LaunchDaemons, the same commands with sudo, and considerably more care. That folder contains legitimate things: printer drivers, VPN clients, backup software, virtualization helpers. Removing the wrong one breaks hardware support in ways that are annoying to diagnose.

The rule: if you cannot name the software a file belongs to, leave it and search the filename first.

The modern complication

Recent macOS versions gather all of this into System Settings under Login Items & Extensions, including a section listing background items installed by apps. That is a genuine improvement — it is the first time the full list has been visible without Terminal.

It also means some items now show as belonging to an app rather than as a file you can delete, and switching them off there is the correct way to handle them. Deleting the underlying file for an app you still use will often just cause the app to reinstall it on next launch.

What this is actually worth

The performance story is oversold. A dozen launch agents do not meaningfully slow a modern Mac; most sit idle waiting for an event. Anyone promising a dramatic speed-up from disabling startup items is selling something.

Two things do make it worth a look:

Leftovers from uninstalled software. These are pure noise, and occasionally the cause of a mystery error dialog at every login.

Things you did not install deliberately. Persistence is how anything unwanted survives a restart, so this is the first place to look if a Mac is behaving oddly. An entry you cannot account for is worth searching for by name before anything else.

If you want the tidy version of this, CleanSpace lists login items and launch agents together, flags the ones pointing at software that is no longer installed, and lets you disable rather than delete — but the ls command above shows you exactly the same files, and reading one .plist tells you everything you need to know about it.