How to Modify Startup Programs on a Mac: The Full Guide
· modify startup programs, macos startup, login items mac, launchagents, speed up mac

Most advice about startup apps on a Mac is incomplete. It tells you to open System Settings, remove a few items, and assume the job is done.
That works for polite apps. It does not work for the annoying ones, the half-uninstalled ones, or the background helpers that keep coming back because the underlying startup mechanism lives outside the visible list. If you want to understand how to modify startup programs properly, you have to deal with both the user-facing controls and the hidden launch files that macOS still honors.
A lot of boot sluggishness comes from exactly that hidden clutter. Over 68% of Mac slowdowns during boot are directly caused by unnecessary login items residing in ~/Library/LaunchAgents or /Library/LaunchDaemons, with an average of 12.4 startup apps per user, adding about 15 to 25 seconds of boot time, according to Setapp's summary of macOS startup item behavior. That's why a Mac can still feel crowded at login even when the Login Items list looks clean.
Table of Contents
- Why Your Mac Still Launches Apps You Disabled
- The Official Method Managing Login Items
- Hunt Down Hidden LaunchAgents and LaunchDaemons
- Advanced Control Using the Terminal
- Clean Up Orphaned Startup Items for Good
- Safety Best Practices and Troubleshooting
Why Your Mac Still Launches Apps You Disabled
The usual complaint sounds simple. You disabled an app in Login Items, restarted your Mac, and the app still showed up. Sometimes it opens a window. Sometimes it starts a helper process in the background. Sometimes it doesn't appear in the Dock, but Activity Monitor says it's alive anyway.
That happens because macOS has more than one startup layer. The list in System Settings controls visible Login Items and some approved background permissions, but many persistent startup behaviors come from LaunchAgents and LaunchDaemons stored in Library folders. Those files can survive app removal, survive updates, and keep asking the system to launch something in the background.
A practical clue is boot performance. If your Mac stalls at login, spins after the desktop appears, or ramps CPU and memory use right after startup, startup clutter is often part of the story. If you're troubleshooting broader slowdowns, it also helps to check CPU usage on your Mac so you can see which background processes are active after login.
Here's a quick example of the mismatch:
| What you see | What may actually be happening |
|---|---|
| App removed from Login Items | A LaunchAgent still starts its helper |
| App deleted from Applications | Its .plist file remains in Library |
| “Open at Login” unchecked | App state recovery or background permission still restores behavior |
The visible settings panel is still worth using. It's the cleanest place to remove normal startup apps, and for many users that's enough. But once an app is badly behaved, legacy, ad-supported, or uninstalled incorrectly, the official panel becomes more like a symptom viewer than a complete control center.
A lot of people think macOS is ignoring them. Usually it isn't. It's following another startup instruction somewhere else.
This short video captures the kind of startup behavior that confuses people because the visible switch isn't always the actual switch.
<iframe width="100%" style="aspect-ratio: 16 / 9;" src="https://www.youtube.com/embed/pkibEPbNwDc" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>The app you disabled isn't always the thing that launches. Often it's a helper, agent, updater, menu bar process, or leftover plist doing the work.
The Official Method Managing Login Items
Start with Apple's interface. It's the safest first pass, it's built into macOS, and for well-behaved software it works exactly as intended.

Find the startup controls
On macOS Ventura, Sonoma, and later, go to System Settings > General > Login Items & Extensions. Apple moved startup management into this unified area in macOS 13, and that change made the controls easier to find.
You'll usually see two different categories:
- Open at Login lets apps launch their main interface when you sign in.
- Allow in Background lets helper components, sync engines, update agents, and menu bar services keep running without fully opening the app.
That distinction matters. Removing an app from Open at Login only stops the obvious launch behavior. If its helper remains allowed in the background, you may still see notifications, syncing, menu bar icons, or relaunch behavior that feels like the app never really left.
Remove items the Apple way
For visible login apps, the process is straightforward:
- Open System Settings.
- Click General.
- Open Login Items & Extensions.
- Select an app under Open at Login.
- Click the minus button to remove it.
For background services, review the Allow in Background section carefully. Turn off items you recognize and no longer need. If macOS asks for authentication, that's normal. Startup permissions affect how processes attach to your session.
Apple's newer interface is useful in practice, not just in theory. The Login Items & Extensions interface introduced in macOS 13 helps users reduce boot time by a median of 28% on Apple Silicon Macs, dropping from 42 seconds to 30 seconds when they manually disable items, as described in this macOS startup management video covering Ventura's interface changes.
Use the Dock for simple app behavior
Some apps also expose Open at Login in the Dock menu. If the app is running, right-click its Dock icon, look for Options, and uncheck Open at Login if it's enabled.
That method is fast, but it only changes the app-level preference. It doesn't inspect hidden helpers, doesn't remove leftover launch files, and doesn't clean up anything the app already installed elsewhere.
Practical rule: Use System Settings first. If the app disappears and stays gone after two restarts, stop there. If it returns, don't keep clicking the same toggle and expecting a different result.
A good cleanup pass in the official interface usually looks like this:
- Trim obvious apps: Remove chat clients, launchers, updaters, or menu bar tools you don't need at every login.
- Question background access: If an app doesn't need to sync, monitor, or update constantly, turn off its background permission.
- Restart and observe: One restart isn't enough for stubborn items. Watch the next login too, especially after the app updates.
For standard consumer apps, this is often all you need. For stubborn startup programs, it's only the visible layer.
Hunt Down Hidden LaunchAgents and LaunchDaemons
When startup items ignore the UI, the next stop is the file system. There, macOS stores many of the instructions that tell apps, helpers, and services when to launch.

Know the difference before deleting anything
LaunchAgents usually run in the context of a logged-in user. They often handle menu bar apps, sync clients, update checkers, and app helpers.
LaunchDaemons usually run at a broader system level. They may start before you log in and often support device services, security software, or system-wide utilities.
The most common locations are:
~/Library/LaunchAgentsfor per-user agents/Library/LaunchAgentsfor system-wide agents available to users/Library/LaunchDaemonsfor system-level daemons
The tilde (~) means your home folder. That distinction matters. A file in your home Library affects only your account. A file in /Library can affect the whole Mac.
Why hidden files matter more than people think
Much “phantom” startup behavior originates from files like these: Over 40% of problematic startup items on macOS 14+ are legacy .plist files in ~/Library/LaunchAgents/ that bypass the System Settings menu entirely, and a 2025 audit found that 3 out of 5 stubborn startup apps were traced to these orphaned files rather than user-facing login items, according to Nektony's review of Mac startup items and hidden launch files.
That aligns with what many power users run into after uninstalling older software by dragging the app to Trash. The app bundle is gone, but the startup instruction file remains.
Open the hidden folders
You don't need Terminal for the first inspection. Finder works fine.
Use this sequence:
- In Finder, click Go in the menu bar.
- Choose Go to Folder.
- Paste one of the paths above.
- Press Return.
- Review the
.plistfiles inside.
If hidden Library folders are new territory, this guide on showing hidden files on a Mac helps make Finder less opaque.
A typical filename might look like a reverse domain, such as com.vendor.app.helper.plist. That naming pattern is useful. It often tells you which app created it.
Identify safe candidates for removal
Don't delete files just because they look unfamiliar. Some belong to legitimate hardware drivers, security tools, or Apple components.
Use a quick filter:
| Likely safer to review | Leave alone until verified |
|---|---|
| File clearly named after an app you removed | File starting with com.apple |
| Updater or helper tied to software you no longer use | File tied to antivirus, VPN, printer, or enterprise management |
| Old utility, adware, or trial software remnant | Anything you can't confidently map to a known app |
A careful workflow is better than a fast one:
- Match the name: If the plist includes the old app's name, inspect it first.
- Check date context: Recently modified files may belong to active software. Older leftovers are often easier to spot.
- Open before removing: You can open a plist in a text editor and look for program paths, bundle identifiers, or helper names.
- Move to Trash first: Don't permanently delete immediately. A rollback path matters.
If a startup item keeps returning, you probably removed the front-end app entry but left the launch file that recreates it.
Remove the file and test cleanly
Once you've identified a plist that clearly belongs to an unwanted app, move it to the Trash. You may be asked for an admin password, especially in /Library.
Then do three things in order:
- Restart the Mac.
- Log in and verify the app or helper no longer launches.
- Empty the Trash only after you're satisfied nothing legitimate broke.
Some apps install both a Login Item and a LaunchAgent. If you remove only one, the app update cycle or background helper can recreate the other. That's why startup cleanup on macOS often feels inconsistent until you remove the actual file responsible for persistence.
Advanced Control Using the Terminal
Finder gets you far enough for manual cleanup. Terminal gives you visibility into what macOS is loading.
That tool is launchctl. It's the command-line interface for Apple's launch services system, and it's the most direct way to inspect startup jobs without immediately deleting anything.

Start with inspection, not removal
The safest first command is:
launchctl listshows loaded jobs in the current domain.
This is useful when an app doesn't visibly open but still behaves like it launches at startup. You may see helper labels that match a plist filename or bundle identifier.
You can also use Terminal to inspect plist references and active service labels before deciding whether a file is just leftover clutter or part of something still running. That's a better workflow than deleting first and diagnosing later.
Disable for testing before you delete
For troubleshooting, temporary disablement is often smarter than immediate removal.
Common patterns include:
launchctl unloadto unload a job for testing.launchctl removeto remove a loaded job from the launch system.
The exact behavior can vary by macOS version and context, so treat these as diagnostic tools rather than magic one-line fixes. The point is to answer a practical question: does this service cause the startup behavior I'm seeing?
Field advice: If you're not sure whether a job is safe to remove, unload it, restart, and observe. A temporary failure is easier to reverse than a missing system component.
Use Terminal to investigate silent relaunch behavior
Startup confusion isn't always a classic login item. Sometimes apps reopen because macOS restores prior state, or because a helper process restarts them when your session comes back.
Apple notes that users can prevent some relaunch behavior by manually quitting apps before shutdown, yet 68% of Mac users reported apps reopening unexpectedly in a 2025 survey, with the gap often tied to underlying background task permissions visible via Terminal, according to Apple's documentation on opening items automatically when you log in.
That's why Terminal is useful even if you don't plan to live in Terminal. It helps separate three different problems that look identical from the desktop:
| Symptom | Possible cause |
|---|---|
| App window reopens | Saved state restoration |
| App helper reappears | LaunchAgent still loaded |
| App “comes back” after removal | Background permission or reinstalling updater |
If you want to learn how to modify startup programs without guessing, this is the point where guesswork usually ends. You stop asking “why is this app weird?” and start asking “which launch job is responsible?”
Clean Up Orphaned Startup Items for Good
Some startup entries don't belong to apps you still have installed. They belong to software you removed weeks ago, or thought you removed.
That's the messiest category. An orphaned startup item is a leftover plist, helper, preference, container, saved state, or support file that outlived the app it came with. These leftovers don't just waste disk space. They can still trigger startup actions, generate errors, or leave old background jobs trying to execute files that no longer exist.

Why single-layer cleanup keeps failing
A lot of users remove the app from Login Items and stop there. That fixes the visible setting but not the underlying persistence file.
For apps that reinstall their launch agents, removing only the Login Item from the GUI fails in about 60% of cases involving adware or legacy utilities, while a dual-layer cleanup of both the Login Item and the LaunchAgent plist succeeds more than 95% of the time, as described in this video on stubborn startup items and dual-layer cleanup.
That's the core trade-off in startup management on macOS:
- The GUI is safer because it's official and easy to reverse.
- Manual file cleanup is more complete because it targets the actual persistence mechanism.
- Doing only one layer often leaves enough behind for the problem to return.
Manual cleanup works, but it's easy to miss the leftovers
The hard part isn't deleting one plist. It's finding every related file with confidence.
A removed app can leave traces across multiple Library locations. You may delete the LaunchAgent but leave behind preferences, containers, caches, login helpers, or saved state data that still interfere with behavior or make future reinstalls messy. That's why people often think they've done a full uninstall when they've really only removed the obvious app bundle.
If you're doing this manually, keep your checklist tight:
- Remove the visible Login Item if it still exists.
- Delete the related LaunchAgent or LaunchDaemon only after you've identified it confidently.
- Look for associated support files in Library folders.
- Restart and verify.
- Keep the removed items in Trash until you're certain the Mac behaves normally.
For a broader walkthrough, this guide on completely uninstalling apps on a Mac is useful because startup persistence is usually part of a larger leftover-file problem, not a standalone issue.
When a specialized cleanup tool makes sense
If you install and remove apps often, manual cleanup becomes tedious fast. More importantly, it becomes error-prone. The risky part isn't speed. It's false confidence.
A good cleanup utility for this job should do a few specific things well:
- Surface orphaned files from apps you already deleted.
- Show confidence levels so you know what's definitely related versus only probably related.
- Move files to Trash instead of hard-deleting them.
- Block Apple system bundles and generic patterns that should never be touched.
- Keep everything local so startup cleanup doesn't become a privacy trade.
That matters more than flashy “system cleaner” claims. Startup management is a precision problem. The useful tools are the ones that help you remove leftovers without turning your Mac into a repair project.
Safety Best Practices and Troubleshooting
Startup cleanup is one of those jobs where good habits matter more than aggressive tactics. You're editing how the Mac boots into your user session. That deserves a rollback plan.
Follow the safest removal pattern
Use this rule every time: inspect first, remove second, verify third.
That means:
- Move to Trash first: Don't permanently delete plist files on the first pass.
- Change one variable at a time: Remove one startup component, restart, then test.
- Respect authentication prompts: macOS asks for admin approval because these changes affect launch behavior at the user or system level.
- Avoid Apple-labeled files: If it starts with
com.apple, leave it alone unless you know exactly why it's there.
A clean startup is good. A bootable Mac is better. Reversible changes beat heroic fixes.
Solve the common failure cases
A few problems come up repeatedly.
The app came back after I removed it.
That usually means the visible Login Item was removed, but the LaunchAgent, updater, or helper remained.
The app doesn't launch, but its windows reopen.
That's often saved app state, not a classic startup item. Quit the app before shutdown and inspect background permissions if the behavior continues.
I removed a plist and now something broke.
Restore it from Trash, restart, and test again. This is exactly why you shouldn't force permanent deletion during diagnosis.
macOS compared with Windows and Linux
Startup control on macOS is split across app preferences, Login Items, background permissions, and launch services files. That's more layered than what many users expect.
On Windows, users typically go straight to Task Manager for startup apps. On Linux, startup services often involve systemd and service units. macOS sits somewhere in between. It gives regular users a polished GUI, but real persistence often still lives in file-backed launch configurations.
That's why learning how to modify startup programs on a Mac means understanding both surfaces: the one Apple shows you, and the one the system reads.
If you want a safer way to remove app leftovers, stale launch files, and orphaned startup traces without hunting through Library folders by hand, Crufti is built for exactly that. It scans common macOS leftover locations, shows related files with clear confidence levels, moves selected items to Trash for easy undo, and keeps the whole process local on your Mac.