A Mac that takes two minutes to become usable is usually not short of memory. It is running things at login that nobody asked for. macOS gives you a list of some of them, hides the rest, and the hidden ones are where the delay usually comes from.
The List macOS Shows You
Open System Settings → General → Login Items & Extensions. The “Open at Login” section is the visible one: apps that register themselves here appear in the list with a toggle, and the same list is editable by right-clicking an app in the Dock and choosing Options → Open at Login.
Two other sections matter and are easy to miss. Allow in the Background lists helper processes and updaters that run without a window, and Extensions covers things that attach to the system — Finder extensions, network extensions, quick-look plugins.
Turning off an item here is reversible and non-destructive. The app still works; it just does not start on its own.
What the List Does Not Show
Launch agents and launch daemons are property lists that tell macOS to run a program at login or at boot. They live in four places:
~/Library/LaunchAgents— yours, per-user/Library/LaunchAgents— all users, installed by third parties/Library/LaunchDaemons— runs at boot, before anyone logs in/System/Library/LaunchAgentsandLaunchDaemons— Apple’s, leave alone
List what is loaded:
launchctl list | grep -v com.apple
That prints every non-Apple job with its label, exit status and PID. Anything
listed as - in the PID column is loaded but not currently running, which is
normal for a job that starts on demand.
KnockKnock presents the same information as a list with
signatures and known-good labels, which is faster than reading launchctl
output for a machine you have not audited before. OnyX
covers the maintenance side — clearing caches and rebuilding system databases
after you have cleaned up.
Deciding What to Keep
Remove an item when you can answer three questions: what does it do, do you need it running constantly, and does the app still work without it.
Keep updaters for apps you rely on. Keep backup and sync helpers. Keep anything with a security function — a firewall or a network filter that is not running is worse than none, because you believe it is.
Disable rather than delete when you are unsure. launchctl disable takes a
label out of the load set and can be undone:
launchctl disable gui/$(id -u)/com.example.agent
After a Cleanup
Boot time is the measurement that tells you whether it worked. If it did not improve, the delay is somewhere else — a slow disk, a full drive, or a login hook that waits on the network. Clearing caches and reducing System Data covers the storage side; our guide to Mac maintenance apps covers the tools that do both in one pass.
Frequently Asked Questions
Why is an app still launching at startup when it is not in Login Items?
Because it registered a launch agent instead. Launch agents live in ~/Library/LaunchAgents and /Library/LaunchAgents and run at login without appearing in the System Settings list. Tools such as KnockKnock and OnyX surface them.
Is it safe to remove a launch agent?
For a third-party app you recognise, yes — the app simply stops starting automatically and can still be launched by hand. Never remove Apple's own agents in /System/Library, and check what an unknown agent belongs to before deleting it.


