· · 5 min read

How to Manage Mac Startup Items: Disable LaunchAgents & Speed Up Boot

To view startup items, open System Settings > General > Login Items & Extensions. Remove unwanted apps from Open at Login and turn off only background helpers you recognize. This guide also explains how to review user LaunchAgents safely without touching macOS-protected services.


In this article
  1. What are startup items on Mac?
  2. LaunchAgents vs LaunchDaemons explained
  3. Where startup items live on disk
  4. How they slow down boot and drain RAM
  5. How to view startup items in System Settings
  6. How to remove user LaunchAgents safely
  7. System-protected daemons — what NOT to touch
  8. TrimyMac Startup Items view
  9. FAQ

What Are Startup Items on Mac?

Every time your Mac boots or you log in, macOS runs a list of programs automatically — before you have even clicked a single icon. These are your startup items: background processes, helper utilities, auto-updaters, telemetry daemons, Bluetooth adapters, cloud sync services, and more. Some of them you installed deliberately. Many were added silently by applications during installation, knowing that most users will never notice or audit the list.

Startup items fall into two broad categories on macOS: those managed through the modern Login Items interface (simple app-level toggles introduced in macOS Ventura) and those registered as low-level LaunchAgents or LaunchDaemons via Apple's launchd system. The launchd items are the real culprits behind long boot times because they operate at a layer below what System Settings shows you, and they can auto-restart themselves even after you force-quit them.

Understanding the distinction between these types — and knowing where each category lives on disk — is the key to managing your startup items effectively and safely.

LaunchAgents vs LaunchDaemons Explained

Apple's launchd is the master process manager on macOS. It replaces the old Unix cron and init systems, and it is responsible for starting, stopping, and supervising virtually every background process on your Mac. Applications register services with launchd by placing small XML configuration files called property list files (with the .plist extension) into specific directories. When macOS boots or when you log in, launchd reads these files and starts the corresponding programs.

There are two fundamental types of launchd services, and the distinction matters enormously for safety:

LaunchAgents

A LaunchAgent is a background process that runs in the context of a specific logged-in user. It starts when you log in and stops when you log out. LaunchAgents can interact with your user interface, access your home directory, and run as your account. Examples include cloud sync clients (Dropbox, Google Drive), app update checkers (Spotify, Adobe, Slack), developer tool helpers (Xcode's device daemon), and custom scripts that developers or power users have registered. Because LaunchAgents run as your user account, the corresponding plist files are stored in directories you own and have full permission to modify.

LaunchDaemons

A LaunchDaemon is a system-wide background process that runs as root, independent of any logged-in user. Daemons start at boot, before any user logs in, and keep running even when no one is using the machine. They handle low-level tasks: network configuration, disk health monitoring, security services, printer management, and macOS system internals. Because they run as root with elevated privileges, their plist files are stored in system-owned directories that require administrator authentication to modify — and many are protected by System Integrity Protection (SIP), meaning they cannot be deleted even with root access.

ℹ️

The practical rule: LaunchAgents in your home folder (~/Library/LaunchAgents) are yours to manage freely. Everything in /Library/ and /System/ requires careful judgment, and system daemons protected by SIP should never be touched.

Where Startup Items Live on Disk

Apple organizes launchd plist files across several directories, each with a distinct scope and ownership. Knowing these locations lets you audit what is registered on your system without relying on any third-party tool.

Directory Type Scope Who Can Edit
~/Library/LaunchAgents LaunchAgent Current user only, runs at login You (no password needed)
/Library/LaunchAgents LaunchAgent All users, runs at each user's login Administrator password required
/Library/LaunchDaemons LaunchDaemon System-wide, runs at boot as root Administrator password required
/System/Library/LaunchAgents Protected Core macOS user-session services SIP-protected — do not touch
/System/Library/LaunchDaemons Protected Core macOS system services SIP-protected — do not touch

The safest directory to audit and clean is ~/Library/LaunchAgents, which belongs entirely to your user account. On a Mac that has had several applications installed over its lifetime, this folder commonly contains 10–30 plist files — most of them from apps you may have uninstalled years ago, whose helper daemons were never cleaned up during removal.

To open this folder in Finder, press Command + Shift + G, type ~/Library/LaunchAgents, and press Enter. You can also browse it in Terminal:

List all user LaunchAgents with their load status
# List plist files in your user LaunchAgents folder
ls -la ~/Library/LaunchAgents/

# See which agents are currently loaded by launchd
launchctl list | grep -v "^-"

How Startup Items Slow Down Boot and Drain RAM

The performance cost of startup items operates on two distinct timelines: the initial boot delay and the ongoing background resource consumption. Both matter, and both worsen as more items accumulate over time.

Boot Time Penalty

When you power on your Mac, launchd reads every registered plist file and starts those processes in a partially-parallel, dependency-aware sequence. Each additional process that must be initialized before your desktop becomes usable adds latency. More critically, the startup sequence competes for I/O bandwidth — all these processes are reading their binary files, loading their libraries, and initializing at the same time. On a Mac with a fast NVMe SSD this is measured in seconds. On an older Mac with a slower drive, or on any Mac with a heavy startup set, the delay can stretch considerably longer.

A common scenario: you install Zoom, Slack, Spotify, Adobe Creative Cloud, Dropbox, Google Drive, Steam, and a handful of developer tools over two years. Each installs its own LaunchAgent. That alone can add 8–15 seconds to your login time before you see a usable desktop.

Background RAM and CPU Drain

The more insidious cost is ongoing. LaunchAgents that survive login do not simply initialize and exit — they stay running in the background indefinitely, waiting for events, polling for updates, or maintaining persistent connections. A typical cloud sync agent consumes 50–120 MB of RAM. An app auto-updater checks in periodically and wakes the CPU every few minutes. Multiply this across ten or fifteen agents and you have 500 MB to 1.5 GB of RAM permanently occupied by background processes you may not actively use.

On a MacBook with 8 GB of unified memory, that is a material fraction of your total available RAM. The result is more frequent memory pressure, heavier use of swap space on your SSD (which shortens drive lifespan over years), and apps that take longer to become responsive because RAM must be reclaimed before they can fully load.

⚠️

Auto-updater LaunchAgents are especially wasteful: they run all the time to check for updates every few days. If you update apps manually through the App Store or by opening the app itself, there is no reason to keep background updaters loaded at all times.

How to View Startup Items in System Settings (macOS Ventura and Later)

Starting with macOS Ventura (13.0), Apple moved Login Items management into System Settings with a much cleaner interface. This view covers apps and services that have explicitly declared themselves as login items through the modern API — but it does not expose every LaunchAgent plist file registered on your system. It is a good first stop, but not a complete picture.

  1. Click the Apple menu in the top-left corner of your screen and choose System Settings.
  2. In the sidebar, click General.
  3. Click Login Items & Extensions on the right side of the window.
  4. You will see two sections: Open at Login (apps that open a window or icon when you log in) and Allow in the Background (helper processes that run silently without a visible window or Dock icon).
  5. To disable an item, click the toggle next to it or select it and click the minus (−) button. Disabled items remain listed but will no longer launch automatically.
ℹ️

On macOS Monterey (12) and earlier, Login Items were in System Preferences → Users & Groups → Login Items. The interface is simpler and only shows application-level items, not individual LaunchAgent plists.

The Allow in the Background section introduced in Ventura is particularly important: it shows you every app that has registered a background helper process. Many of these correspond to LaunchAgent plist files, and disabling them here is the cleanest, safest way to prevent them from running — macOS handles the launchctl unload for you and preserves the change across reboots.

How to Remove User LaunchAgents Safely

For LaunchAgents that do not appear in System Settings — or for thorough cleanup of uninstalled apps that left their plists behind — you can manage them directly in the ~/Library/LaunchAgents folder. The process is straightforward and reversible.

The Safe Method: Move to Trash

The recommended approach is to move unwanted plist files to the Trash rather than permanently deleting them immediately. This lets you restore a file quickly if you discover that removing it broke something unexpected. Once you have confirmed the system behaves correctly without it, you can empty the Trash.

  1. Open Finder, press Command + Shift + G, and navigate to ~/Library/LaunchAgents.
  2. Examine each plist file. The filename typically reveals the app it belongs to — for example, com.spotify.webhelper.plist or com.adobe.GC.Scheduler.plist. If you do not recognize the application or know the associated app has been uninstalled, it is a candidate for removal.
  3. Before moving a file, unload it from launchd so it stops running immediately (without requiring a restart). In Terminal, run: launchctl unload ~/Library/LaunchAgents/com.example.agent.plist — replacing the filename with the actual plist name.
  4. Move the plist file to the Trash by dragging it or pressing Command + Delete.
  5. Restart your Mac and verify everything works normally. If an app you still use stops functioning correctly, retrieve the plist from the Trash, move it back to ~/Library/LaunchAgents, and run launchctl load ~/Library/LaunchAgents/com.example.agent.plist to restore it.
Unload a LaunchAgent immediately without restarting
# Stop a running agent without rebooting (replace filename with actual plist)
launchctl unload ~/Library/LaunchAgents/com.example.agent.plist

# Confirm it is no longer listed as running
launchctl list | grep "com.example"
✓

Safe to remove: Plist files belonging to applications you have already uninstalled are always safe to delete — the app binary is gone, so the agent would fail to launch anyway. Orphaned plists like these are extremely common and account for much of the startup bloat on older Macs.

Reading a Plist File to Identify It

If a filename is not self-explanatory, you can read the plist's contents to identify what it does. Look for the Program or ProgramArguments key — it shows the exact binary the agent launches.

Read a plist file to identify its program
# Convert binary plist to readable XML and inspect it
plutil -convert xml1 -o - ~/Library/LaunchAgents/com.example.agent.plist

# Or use defaults to read a specific key
defaults read ~/Library/LaunchAgents/com.example.agent.plist ProgramArguments

System-Protected Daemons — What NOT to Touch

The directories at /System/Library/LaunchAgents and /System/Library/LaunchDaemons are protected by Apple's System Integrity Protection (SIP), a security feature introduced in OS X El Capitan. SIP prevents any process — including processes running as root — from modifying, replacing, or deleting files in these directories. This protection is intentional and important.

The services registered in these directories are core macOS infrastructure. They include:

Disabling or deleting any of these services will cause macOS to malfunction in serious and unpredictable ways — anything from loss of network connectivity to an unbootable system. Even if you manage to bypass SIP (which requires booting into Recovery Mode and is itself a significant security risk), the "space savings" from removing system daemons are negligible compared to the damage they cause.

⛔

Never modify /System/Library/LaunchAgents or /System/Library/LaunchDaemons. These directories are SIP-protected for a reason. No legitimate disk cleaner will ask you to touch them. Any tool that offers to "clean" system daemons is either misguided or malicious.

Third-party apps that install daemons in /Library/LaunchDaemons (not the /System path) are a different matter — these are installed by software you chose to add and can be removed safely with administrator credentials. Common examples include VPN clients, antivirus software, printer drivers, and remote management tools. Before removing any daemon from /Library/LaunchDaemons, confirm the application it belongs to and whether you still need it.

See every startup item at a glance

TrimyMac's Startup Items view lists all LaunchAgents and daemons on your Mac — with protection indicators so you always know what is safe to disable. No Terminal required.

TrimyMac Startup Items View

Auditing startup items manually — navigating multiple Finder folders, running Terminal commands, reading plist XML, cross-referencing bundle identifiers against installed apps — is a task that most Mac users simply will not do. TrimyMac's Startup Items view was designed to make this audit approachable for everyone, not just developers.

What TrimyMac Shows You

The Startup Items screen aggregates all registered LaunchAgents and LaunchDaemons across every relevant directory into a single, sorted list. For each item, TrimyMac displays:

How to Disable a Startup Item in TrimyMac

Disabling a startup item in TrimyMac is a single toggle. When you turn off a user LaunchAgent, TrimyMac runs the equivalent of launchctl unload to stop it immediately and marks it disabled so it will not start at your next login. When you turn off a system-level item (where permitted), TrimyMac prompts for your administrator password before making any changes. SIP-protected items have their toggles grayed out entirely — they cannot be accidentally disabled.

For orphaned plists — plist files belonging to apps that are no longer installed — TrimyMac offers a one-click removal that moves the file to the Trash rather than permanently deleting it, giving you an undo path if anything is miscategorized.

✓

TrimyMac never removes a startup item permanently without confirmation. Disabled items remain in the list so you can re-enable them at any time. The protection indicators ensure you always know at a glance which items are safe to manage and which belong to macOS itself.

Practical Startup Cleanup Workflow with TrimyMac

A typical startup cleanup session in TrimyMac takes under five minutes. Open the Startup Items view, sort by "Orphaned" to find agents left behind by uninstalled apps, remove them in one batch. Then review the remaining active agents by associated application — disable auto-updaters for apps you update manually, disable cloud sync agents for services you have stopped using, and leave everything flagged as protected untouched. Log out and back in, and measure the difference in your login time and available RAM.

Frequently Asked Questions

Direct answers to the most common questions about managing startup items and LaunchAgents on Mac.

How do I disable startup programs on Mac?

There are two methods depending on the type of startup item. For apps that show a login item through the modern API: go to System Settings → General → Login Items & Extensions and toggle off anything you do not want running at login. For LaunchAgent plists that do not appear there, open ~/Library/LaunchAgents in Finder (press Command + Shift + G to navigate there), identify the plist file for the app you want to disable, run launchctl unload ~/Library/LaunchAgents/filename.plist in Terminal, and move the file to the Trash. TrimyMac's Startup Items view automates both steps with a single toggle and no Terminal required.

What are LaunchAgents on Mac?

LaunchAgents are small XML configuration files (with a .plist extension) that tell macOS's launchd process manager to automatically start a background program when you log in. They are how applications register themselves to run at startup — not through the Login Items GUI, but at the lower launchd level. Common LaunchAgents include cloud sync helpers (Dropbox, Google Drive), app auto-updaters (Spotify, Adobe, Chrome), developer tool daemons (Xcode helpers), and custom scripts. They live in ~/Library/LaunchAgents (user-specific) or /Library/LaunchAgents (system-wide for all users).

Is it safe to delete LaunchAgents?

It depends on which ones. LaunchAgents in your personal folder at ~/Library/LaunchAgents are safe to remove — the worst that can happen is an app loses its background helper, which might prevent auto-updates or sync until you relaunch the main app. LaunchAgents in /Library/LaunchAgents should be researched before removal since they run for all users. Never delete anything in /System/Library/LaunchAgents or /System/Library/LaunchDaemons — these are SIP-protected core macOS services. The safest practice is to move files to the Trash rather than deleting permanently, then restart and verify everything still works before emptying the Trash.

How do I stop apps from opening at startup on Mac?

Open System Settings → General → Login Items & Extensions. Under "Open at Login," select any app you do not want to launch automatically and click the minus (−) button to remove it. Under "Allow in the Background," toggle off any helpers you want to prevent from running silently. For items that only appear as LaunchAgent plists (not in this UI), you need to navigate to ~/Library/LaunchAgents and unload or remove the relevant plist files. TrimyMac shows you both sets in a single unified list with one-click toggles.

How do I speed up Mac startup?

The most effective steps to reduce boot and login time are: (1) Disable unnecessary Login Items in System Settings → General → Login Items. (2) Remove orphaned LaunchAgent plists from ~/Library/LaunchAgents left by uninstalled apps. (3) Disable auto-updater background agents for apps you update manually. (4) Keep your macOS installation and SSD healthy — use Disk Utility's First Aid to check for errors. (5) On Macs with spinning hard drives, consider upgrading to an SSD, as the I/O bottleneck during the parallel startup sequence is far more impactful than the number of agents. TrimyMac's Startup Items view identifies orphaned and unnecessary agents quickly, and the Mac Performance Monitor shows you which processes consume the most RAM after login.

What is the difference between LaunchAgents and LaunchDaemons?

LaunchAgents run in the context of a specific logged-in user — they start when you log in, stop when you log out, can interact with your UI, and run with your user-level permissions. LaunchDaemons run as root at system boot, before any user logs in, and keep running regardless of who is logged in. Daemons handle low-level system tasks (networking, security, hardware) and must run with elevated privileges. From a safety standpoint: user LaunchAgents (in ~/Library/LaunchAgents) are the most approachable to manage. System LaunchDaemons (in /Library/LaunchDaemons) should be managed with care, and /System/Library entries must not be touched.

How do I find all LaunchAgents on my Mac?

To see all LaunchAgent plists registered on your Mac, check four directories: ~/Library/LaunchAgents (your user agents), /Library/LaunchAgents (system-wide agents), /System/Library/LaunchAgents (macOS built-in agents, read-only), and optionally /System/Library/LaunchDaemons (system daemons). In Terminal, run launchctl list to see all currently loaded services, or use TrimyMac's Startup Items view which aggregates all directories into one readable list with protection indicators and orphan detection.