English | 中文
AI creates the jobs. You stay in control.
A native macOS app for visually managing launchd tasks, background services, and the automation you build with AI.
AI assistants can write scripts, generate launchd .plist files, and help set up scheduled tasks in minutes. As those automations accumulate, you need a clear view of what they run, when they run, and how to manage them.
LaunchManager brings your LaunchAgents and LaunchDaemons into one native interface—so you can inspect what AI created, adjust its configuration, check logs, and decide what stays active.
- Bring AI-generated jobs into view. Import a
.plistfile or paste XML from your AI assistant. - Understand and edit your automation. Browse jobs in one place and edit them with a form or XML editor.
- Control what runs. Load, unload, start, and stop jobs, with logs available when something goes wrong.
- Keep automation running independently. Tasks run through macOS launchd, even after you close LaunchManager.
Free and open source. Built with Swift and SwiftUI.
Website: launchmanager.dev · Docs: Help · Templates: launchmanager.dev/templates
- Import / Paste — bring in a
.plistor paste XML (including output from an AI assistant) - Browse & edit — one list for User Agents, System Agents, and LaunchDaemons; edit with Form or XML (extra keys preserved)
- Run control — load, unload, start, and stop jobs; privilege escalation when system scope needs it
- Logs — file-based stdout/stderr and system log (
log show) when something fails
- Search across all scopes; clone a job with a new Label
- Multi-trigger editing: calendar, interval, and WatchPaths in one job
- Invalid plists shown inline with an option to delete
- Services — host TCP listeners and Docker ports published on your Mac; create a Launch Agent from a running service
- Login Items guide — how launchd differs from macOS Login Items
- Bilingual UI (English / Chinese); auto-update check via GitHub Releases
- Templates: launchmanager.dev/templates
- macOS 14 Sonoma or later
- Xcode 16 or later (to build from source)
brew tap Sean10000/tap
brew install --cask launchmanagerDownload the latest LaunchManager.dmg from Releases. Open the DMG and drag LaunchManager to the Applications folder shown in the window.
First launch: right-click the app → Open (required because this build is not notarized by Apple).
git clone https://github.com/Sean10000/LaunchManager.git
cd LaunchManager
open LaunchManager.xcodeprojBuild and run with Xcode (⌘R).
- Select Launch Agents, Login Items, or Services in the sidebar
- Import a
.plistor Paste XML (or create a new job from the New menu) - Edit with Form or XML; save and use row actions to load / start / stop
- Expand a row for details and logs; clone from the row menu when needed
- On Services, manage local listeners or create a Launch Agent from a running process
The Services sidebar scans TCP ports listening on your Mac (lsof -iTCP -sTCP:LISTEN). It is a local dev-environment view, not network-wide discovery.
- TCP services listening on the host (Next.js, Redis, PostgreSQL, etc.)
- Docker / Colima containers whose ports are published on the Mac
- Outbound-only connections (
ESTABLISHEDwhere your Mac is the client) - Services only listening inside a VM/NAS/other machine (unless forwarded to the Mac)
- UDP listeners
# Appears in Services only if the Mac is LISTENing on this port
lsof -iTCP:5666 -sTCP:LISTEN -nP
# Any socket involving port 5666 (including remote / outbound)
lsof -i :5666LaunchManager/
├── Models/ # LaunchItem, drafts, services, trigger rule types
├── Services/ # PlistService, TriggerCompiler, LaunchctlService, ProcessDiscovery, …
├── Store/ # AgentStore, ServiceStore, …
└── Views/ # SwiftUI (AgentList, ServicesList, EditAgentSheet, …)
MIT — see LICENSE.
If LaunchManager saved you some time, feel free to buy me a coffee ☕ Americano is better.

