Startup Items
Every non-macOS launchd job with an on/off switch, grouped as Apps, Homebrew, Your Scripts, Other and macOS. Filter by On, Off, Running or Failed.
Beta Free & open source · macOS 13+
LaunchWarden shows every launchd job and persistent item, explains it in plain English, scores its risk, and helps you fix or switch it off.
Beta software. Build from source today; a signed beta DMG is coming soon.
Illustration: example data, not a screenshot.
What it does
Every launchd job that isn't part of macOS, grouped by where it came from, with live status, CPU and memory.
A plain-English summary of each job: who made it, what it runs, when, and what happens if you turn it off.
Turn jobs on or off, check them against 52 rules, and apply one-click repairs, with a backup first.
Features in this beta
Every non-macOS launchd job with an on/off switch, grouped as Apps, Homebrew, Your Scripts, Other and macOS. Filter by On, Off, Running or Failed.
Who made the job (Apple, a Developer ID, App Store, Homebrew or “probably you”), why it runs and what it's doing right now, built on your Mac.
A persistence audit across 20 categories, from Login Items to Shell Configuration, with signer, notarization, SHA-256 and a trust verdict per item.
Each item gets a 0–100 score and a Low, Medium or High band. The detail view lists every factor and the points it added.
52 rules (R01–R52) catch broken job files. One-click repairs fix types, keys, permissions, missing folders and non-executable scripts.
Describe what's wrong. LaunchWarden gathers evidence (problems, exit codes, recent log lines) and suggests fixes, with or without AI.
Simple, Standard, Expert and raw XML editors with live validation, plain-English schedules, a wizard and 8 templates.
Before every edit, fix or removal, the job file is copied to a local Backups folder. Restore any copy from History.
launchwarden scan writes JSON, CSV or HTML with exit codes for scripts; launchwarden validate checks plists.
“Explain this job” and “Diagnose” run only when you press the button. Local servers by default; cloud only with your own key and consent.
A basic menu: open the app, control starred jobs, Scan Now, refresh, and see the last scan summary.
Jump to any job by name, label or state, or run a command such as Create a Job or Fix a Problem.
Look inside
These are HTML illustrations of the beta's screens with example data. Real screenshots are coming.
Who made it
Example Corp, signed with a Developer ID (Team ID ABCDE12345).
Why it runs
It starts when you log in and keeps your files in sync in the background.
What it runs
/Applications/Example.app/Contents/MacOS/SyncAgent
Right now
Running · PID 812 · 0.4% CPU · 38 MB · 2 network connections
If you turn it off
Syncing stops until you turn it back on or open the app.
Why this score
A risk score is guidance, not a verdict. Low < 20 · Medium 20–49 · High 50+.
What's going wrong?
Found automatically
Why
Exit code 126 means the program was found but couldn't be run.
What to do
Make the script executable. LaunchWarden saves a backup to History first.
Illustration: example data, not a screenshot.
Install
A Developer ID-signed, notarized DMG will be published as a beta pre-release on GitHub Releases.
Download beta DMG (coming soon)Needs macOS 13 Ventura or later and Xcode 16 or later. About five minutes.
See the steps ↓From the Mac App Store. Open it once to finish setup, then check the toolchain:
swift --versiongit clone https://github.com/amiu888/launchwarden.git
cd launchwardenscripts/install.shThe script builds a release, assembles LaunchWarden.app, signs it ad-hoc for this Mac, copies it to /Applications and installs the launchwarden command-line tool to /usr/local/bin (it asks for your password for that step).
Open System Settings › Privacy & Security › Full Disk Access, turn on LaunchWarden, then quit and reopen it. For complete CLI results, turn it on for your terminal app too. Without it, LaunchWarden still works but marks the audit incomplete.
Open LaunchWarden › Scan This Mac › Scan Now. Or from Terminal:
launchwarden scan --pretty
launchwarden scan --html -o report.html
launchwarden validate ~/Library/LaunchAgents/*.plistThe app scans without root, so it skips 2 of the 20 categories (Background Tasks and System Extensions databases). Run sudo launchwarden scan to include them.
Full instructions, uninstall and CLI reference in the README →
Tutorial
An animated walkthrough of the six steps. The narrated video is on its way.
Animated illustration with captions. Open full screen ↗
FAQ
Yes. LaunchWarden is free and open source under the GNU General Public License v3.0.
No, it's a beta (app 0.7.0, command-line tool 0.5.0). Expect rough edges and please report issues on GitHub. Planned features such as real-time watching and snapshots are listed in the roadmap, not in this build.
No telemetry, analytics or update checks; the only network code is the optional AI client. Scans, signature checks, hashing, validation and diagnosis run on your Mac, and the command-line tool makes no network connections. Nothing goes to an AI until you press Explain this job, Diagnose or Test Connection. Local AI servers are the default; cloud providers use your own key and ask for consent first. Keys stay in your login Keychain on this device.
No. There's no background helper, daemon or kernel component. Admin changes use macOS's own password prompt each time.
It's not an antivirus. LaunchWarden shows what starts on your Mac, who signed it and why it might deserve a look. A risk score is guidance, not a verdict; you decide what to do.
macOS 13 Ventura or later. For now you build it with Xcode 16 or later; a signed, notarized beta DMG is coming soon.
Before every edit, fix or removal, LaunchWarden copies the job file to ~/Library/Application Support/LaunchWarden/Backups. The History tab restores any copy.