Skip to content

Sean10000/LaunchManager

Repository files navigation

LaunchManager

A macOS app for managing launchd LaunchAgents and LaunchDaemons — view, create, edit, and control your system's scheduled tasks from a clean native UI.

macOS Swift License Built with Claude

Star History

Star History Chart ## Features
  • Browse all LaunchAgents and LaunchDaemons across User, System Agent, and System Daemon scopes
  • Services — discover host TCP listeners only (Next.js, Redis, Docker containers published on Mac, etc.), group by Docker vs local instance, stop processes or containers safely
  • Create & edit plist jobs with a form UI — no manual XML editing required
  • Control jobs: load, unload, start, stop
  • View logs — both file-based stdout/stderr logs and system log (via log show)
  • Handle invalid plists — empty or malformed plist files are shown inline with an option to delete them
  • Privilege escalation for system-level operations (prompts for admin password when needed)

Requirements

  • macOS 14 Sonoma or later
  • Xcode 16 or later (to build from source)

Installation

Homebrew (recommended)

brew tap Sean10000/tap
brew install --cask launchmanager

Direct Download

Download the latest LaunchManager.dmg from Releases, drag the app to your Applications folder.

First launch: right-click the app → Open (required because this build is not notarized by Apple).

Build from Source

git clone https://github.com/Sean10000/LaunchManager.git
cd LaunchManager
open LaunchManager.xcodeproj

Build and run with Xcode (⌘R).

Usage

  1. Select a scope from the sidebar: User Agents, System Agents, System Daemons, or Services
  2. Click + to create a new job, or click the pencil icon to edit an existing one
  3. Use the row buttons to load / start / stop a job
  4. Expand a row (chevron) to see details and view logs
  5. On Services, refresh the list, rename entries, open URLs, or stop local processes / Docker containers

Services

The Services sidebar scans TCP ports listening on your Mac (lsof -iTCP -sTCP:LISTEN). It is a local dev-environment view, not a network-wide service discovery tool.

What it shows

  • TCP services listening on the host (Next.js, Redis, PostgreSQL, etc.)
  • Docker / Colima containers whose ports are published on the Mac (resolved via docker ps)

What it does not show

  • Outbound connections only (ESTABLISHED where your Mac is the client)
  • Services running inside a VM, NAS, or another machine on the LAN (unless their port is forwarded so the Mac is listening locally)
  • UDP listeners (v1 is TCP only)

Quick check

# Will appear in Services only if the Mac is LISTENing on this port
lsof -iTCP:5666 -sTCP:LISTEN -nP

# Matches any socket involving port 5666 (including remote VM / outbound client)
lsof -i :5666

Example: A NAS on a VMware VM at 192.168.95.x:5666 — your Mac may only have an outbound ESTABLISHED connection to that address. The NAS is not listening on the Mac, so it is excluded by design.

Comparison with Paid Alternatives

Feature LaunchManager (Free) LaunchControl Lingon Pro 10 LaunchD Task Scheduler
Price Free & Open Source ~$33 $23.99 $5.00
Distribution GitHub Direct Direct / Homebrew App Store / Direct App Store
Browse Agents & Daemons
Create & Edit jobs (GUI)
Load / Unload / Start / Stop
Log viewer ✅ File + System log ✅ Advanced
System Agent / Daemon support ✅ (Pro) Limited
Privilege escalation
Invalid plist detection ✅ Inline with delete
App must stay running ❌ Not required ❌ Not required ⚠️ Required ❌ Not required
AI assistant ✅ (7 LLM providers)
XML / Expert editor
Open Source ✅ MIT
macOS requirement 14 Sonoma+ 11 Big Sur+ 14 Sonoma+

LaunchManager is ideal if you want a free, native, open-source tool for everyday launchd management. For power users needing an AI assistant or expert XML editor, LaunchControl is the most feature-complete paid option.

Project Structure

LaunchManager/
├── Models/          # LaunchItem, InvalidPlist, Service, ListeningProcess
├── Services/        # PlistService, LaunchctlService, ProcessDiscovery, Docker/, resolvers
├── Store/           # AgentStore, ServiceStore, ServiceNameStore
└── Views/           # SwiftUI views (AgentList, ServicesList, …)

License

MIT — see LICENSE.

Support

If LaunchManager saved you some time, feel free to buy me a coffee ☕ Americano is better.

WeChat Reward QR Code

Acknowledgements

Built with Claude (Anthropic) — AI pair programmer for design, implementation, and code review.

About

macOS app for managing launchd LaunchAgents and LaunchDaemons

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors