LaunchWarden app icon

Beta Free & open source · macOS 13+

See everything that starts on its own on your Mac.

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.

LaunchWarden
AllOnOffRunningFailed
Apps
Example Sync AgentRunning · PID 812 · 0.4% CPU · 38 MB
Example UpdaterLoaded, waiting · runs every 6 hours
Homebrew
postgresql@16Running · PID 455 · 1.1% CPU · 92 MB
Your Scripts
com.example.backupFailed on last run · exit 126 · 2 problems
com.example.cleanupOff · keeps it from starting again

Illustration: example data, not a screenshot.

What it does

Apps, updaters, helpers and scripts quietly start with your Mac. LaunchWarden shows you all of them, says who made each one and why it runs, and puts you back in control.

See

Every launchd job that isn't part of macOS, grouped by where it came from, with live status, CPU and memory.

Understand

A plain-English summary of each job: who made it, what it runs, when, and what happens if you turn it off.

Control & fix

Turn jobs on or off, check them against 52 rules, and apply one-click repairs, with a backup first.

Features in this beta

Built for people who want to know what's running.

⏻

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.

ⓘ

Plain-English About

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.

◎

Scan This Mac

A persistence audit across 20 categories, from Login Items to Shell Configuration, with signer, notarization, SHA-256 and a trust verdict per item.

◔

Risk scores, explained

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.

✓

Validator & Repairs

52 rules (R01–R52) catch broken job files. One-click repairs fix types, keys, permissions, missing folders and non-executable scripts.

?

Fix a Problem

Describe what's wrong. LaunchWarden gathers evidence (problems, exit codes, recent log lines) and suggests fixes, with or without AI.

✎

Editors & Create a Job

Simple, Standard, Expert and raw XML editors with live validation, plain-English schedules, a wizard and 8 templates.

↺

Backups & History

Before every edit, fix or removal, the job file is copied to a local Backups folder. Restore any copy from History.

⌘

Command-line tool

launchwarden scan writes JSON, CSV or HTML with exit codes for scripts; launchwarden validate checks plists.

✦

Optional AI, local first

“Explain this job” and “Diagnose” run only when you press the button. Local servers by default; cloud only with your own key and consent.

◈

Menu-bar shield

A basic menu: open the app, control starred jobs, Scan Now, refresh, and see the last scan summary.

⌕

⌘K palette

Jump to any job by name, label or state, or run a command such as Create a Job or Fix a Problem.

Look inside

Clear answers, one click away.

These are HTML illustrations of the beta's screens with example data. Real screenshots are coming.

Example Sync Agent
AboutDetailsProblemsHistory

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.

Explain this jobTurn OffRestart
Scan This Mac
Persistence audit20 categories · signer · notarization · SHA-256
Scan Now
com.lwdemo.helperLaunch Items · /Users/Shared/.lwdemo/helper.sh · unsigned
65 High

Why this score

Runs from a temporary or shared folder.+20
Lives in a hidden folder or is a hidden file.+15
Scripts are unsigned, so nobody vouches for them.+10
Starts at load and is restarted whenever it stops.+10
Appeared in the last 7 days.+10
Example Menu HelperLogin Items · Developer ID · not notarized
10 Low
com.example.sync-agentLaunch Items · Developer ID · notarized
0 Low

A risk score is guidance, not a verdict. Low < 20 · Medium 20–49 · High 50+.

Fix a Problem

What's going wrong?

My backup script stopped running every night.
DiagnoseCheck without AI

Found automatically

com.example.backupFailed on last run · exit 126
2 problems
Error · R17“backup.sh” is not marked as executable.Make it executable

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

Two ways to get the beta.

Coming soon

Download beta DMG

A Developer ID-signed, notarized DMG will be published as a beta pre-release on GitHub Releases.

Download beta DMG (coming soon)
Available now

Build from source

Needs macOS 13 Ventura or later and Xcode 16 or later. About five minutes.

See the steps ↓
  1. Install Xcode 16 or later

    From the Mac App Store. Open it once to finish setup, then check the toolchain:

    swift --version
  2. Get the source

    git clone https://github.com/amiu888/launchwarden.git
    cd launchwarden
  3. Build and install

    scripts/install.sh

    The 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).

  4. Grant Full Disk Access

    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.

  5. Run your first scan

    Open LaunchWarden › Scan This Mac › Scan Now. Or from Terminal:

    launchwarden scan --pretty
    launchwarden scan --html -o report.html
    launchwarden validate ~/Library/LaunchAgents/*.plist

    The 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

From install to first fix in 90 seconds.

An animated walkthrough of the six steps. The narrated video is on its way.

Animated illustration with captions. Open full screen ↗

FAQ

Questions, answered.

Is it free?

Yes. LaunchWarden is free and open source under the GNU General Public License v3.0.

Is it finished?

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.

Does it send my data anywhere?

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.

Does it install anything that runs in the background?

No. There's no background helper, daemon or kernel component. Admin changes use macOS's own password prompt each time.

Will it remove malware or keep my Mac safe?

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.

Which Macs does it support?

macOS 13 Ventura or later. For now you build it with Xcode 16 or later; a signed, notarized beta DMG is coming soon.

Can I undo a change?

Before every edit, fix or removal, LaunchWarden copies the job file to ~/Library/Application Support/LaunchWarden/Backups. The History tab restores any copy.