Skip to main content

Want to switch from the Mole Mac site to the Windows site?

Go to the Windows site
Mole
MacWindows
Features Tested apps Testimonials Pricing FAQ Blog
EnglishEN 简体中文中 繁體中文繁 日本語日 한국어한 FrançaisFR DeutschDE ItalianoIT EspañolES PortuguêsPT NederlandsNL
Buy Download

    Help, documentation, releases, and articles.

    Blog

    What Are LaunchAgents and LaunchDaemons on Mac and Which Can You Remove

    Apps & MaintenancePublished November 7, 2026Updated November 9, 20265 min read

    LaunchAgents and LaunchDaemons are folders of small .plist files that tell macOS's launchd what to start in the background and when. An agent runs for one signed-in user and can show things on screen; a daemon runs for the whole system with no user interface. You can usually remove the third-party items of an app you no longer have. Leave /System/Library alone, and stop a job before you move its file.

    The five folders

    Apple's launchd guide lists these locations:

    Folder What it holds Touch it
    ~/Library/LaunchAgents Third-party agents for your account only Yes, carefully
    /Library/LaunchAgents Third-party agents for every user Yes, with an admin password
    /Library/LaunchDaemons Third-party system daemons Yes, with an admin password
    /System/Library/LaunchAgents Apple's agents No
    /System/Library/LaunchDaemons Apple's daemons No

    The man launchd page draws the line: a daemon is a system-wide service with one instance for all clients, and it should not display a user interface. An agent runs per user, and work that interacts with a user belongs there. In practice, a menu bar helper or updater tends to be an agent, and a VPN service, audio driver helper or backup engine tends to be a daemon.

    Not every background item has a file here. Apps can keep their plist inside their own bundle, so System Settings › General › Login Items & Extensions can list something these folders do not. How to stop apps opening at startup covers that screen.

    Read one before you judge it

    ls -la ~/Library/LaunchAgents /Library/LaunchAgents /Library/LaunchDaemons
    plutil -p ~/Library/LaunchAgents/com.example.helper.plist
    

    Four keys tell you most of the story:

    Key What it means
    Label The job's name, which is what launchctl uses
    Program or ProgramArguments What it runs. This is the path to check
    RunAtLoad It starts as soon as the job loads, usually at login or boot
    KeepAlive launchd restarts it if it stops, so quitting it does not last

    com.example.helper above is a placeholder, so use your own file's name. If ProgramArguments points at an app you removed, that file is a leftover and is safe to take out. If it points at an app you still use, removing it can break that app's updates, sync, licensing, VPN or audio.

    How to remove one

    Stop the job first. Moving the file does not stop a job that is already running, and it stays loaded until logout or restart.

    For an agent in your account:

    launchctl bootout gui/$(id -u)/com.example.helper
    mv ~/Library/LaunchAgents/com.example.helper.plist ~/.Trash/
    

    For a daemon in /Library/LaunchDaemons:

    sudo launchctl bootout system/com.example.helper
    sudo mv /Library/LaunchDaemons/com.example.helper.plist ~/.Trash/
    

    An agent in /Library/LaunchAgents loads into each user's session, so stop it with the gui/$(id -u)/ form and move the file with sudo mv. Use the Label value in those commands, which may differ from the file name.

    Confirm it is gone with launchctl print gui/$(id -u)/com.example.helper or sudo launchctl print system/com.example.helper, which should report that the service could not be found. Then use the app for a day. If something broke, put the file back and restart.

    To keep the file and only stop the job from loading:

    launchctl disable gui/$(id -u)/com.example.helper
    launchctl print-disabled gui/$(id -u)
    

    launchctl enable with the same target reverses it.

    What not to do

    • Do not touch /System/Library/LaunchAgents or /System/Library/LaunchDaemons. They sit on the read-only system volume, and they belong to macOS.
    • Do not delete by company name alone. A file named after a security product or device driver may be how that product keeps working, and on a managed Mac it may be company policy.
    • Do not remove the plist of an app you still use and expect only its update nag to go. Check the app's own setting first.
    • Do not use old guides that say launchctl unload. Apple's manual lists it as a legacy subcommand, and bootout is the current form.

    Where Mole fits

    Mole's Apps tab has a Startup segment that lists these items, reads each plist's own Label and names helpers after the app that owns them. It groups them under headings such as Login items and Background services, and flags Missing program when a job points at something that no longer exists, which is the usual sign of a leftover. For a checked launchd plist in ~/Library/LaunchAgents, /Library/LaunchAgents or /Library/LaunchDaemons, you can turn it off with the row's switch, turn it back on, or move it to the Trash, and Mole stops the job first. Security and management products stay locked, and items it cannot safely change open System Settings instead. When a process in Status looks unfamiliar, Why is this running? names the launchd service and its plist. Uninstalling an app through Mole also offers its launch items for review.

    FAQ

    Is it safe to delete files in LaunchAgents?

    Yes for a leftover from an app you removed, and sometimes no for an app you still use. Read ProgramArguments with plutil -p first, and stop the job with launchctl bootout before moving the file to the Trash so you can put it back.

    What is the difference between a LaunchAgent and a LaunchDaemon?

    An agent runs for each signed-in user and can interact with that user. A daemon runs system-wide with one instance, usually before anyone signs in, and has no user interface.

    Why did a removed LaunchAgent come back?

    The app that installed it is still on the Mac and wrote it again when it next opened or updated. Turn the feature off in the app, or uninstall the app, since removing the file alone will not last.

    Can a LaunchAgent be malware?

    Yes. Persistent adware often installs here, because it survives a restart. An unfamiliar Label that runs something from a hidden folder or a temporary path deserves a closer look, so search the exact path and check who signed the program.

    Do I need to restart after removing one?

    Not if you used launchctl bootout, which stops it at once. If you only moved the file, the job stays loaded until you log out or restart.

    Mac running low on space or slowing down? Mole can clean out the junk, remove apps completely and keep macOS in shape.

    Try Mole

    Keep reading

    • Apps & MaintenanceDo You Need a Mac Cleaner5 min read
    • Apps & MaintenanceWhy Won't My Mac Go to Sleep and How to Find the Cause5 min read
    • Apps & MaintenanceHow to Fix Missing Menu Bar Icons on Mac5 min read

    Mole · 鼹

    Keep your Mac clean and light.

    v1.20.0 (371) · Release notes

    Product

    Mac Cleaner App Uninstaller Mac Optimizer Disk Analyzer System Monitor

    Support

    Help Documentation Releases Blog

    Legal

    Terms of Service Privacy Policy Refund Policy

    Resources

    For Windows CLI Tool Storage Cost Affiliate Program

    Connect

    Twitter hi@mole.fit

    Mole’s only official website mole.fit, avoid installers from unknown sources

    The CLI stays free for terminal workflows.