A modern, native macOS launch agent manager built with SwiftUI. Browse, control, create, and monitor launchd agents and daemons — all from one app.
Ignition is a free, open-source alternative to LaunchControl.
Download Ignition v1.0.0 — Open the DMG and drag Ignition to your Applications folder.
Browse agents across all launchd domains with status indicators, tags, and search filtering.
Full agent detail view with action buttons, configuration properties, activity history, and plist editor.
At-a-glance system health with overview cards, problem agent detection, and resource monitoring for running agents.
- Browse all domains — User Agents, Global Agents/Daemons, System Agents/Daemons
- Start, Stop, Load, Unload — Full launchctl control with one click
- Search & Filter — Quickly find agents by label or program path
- Bulk Operations — Multi-select agents for batch load/unload/start/stop
- Real-time log tailing using kqueue file monitoring
- Supports both stdout and stderr paths
- Auto-scroll, search filtering, copy, and clear
- Stderr lines highlighted in red
- Recursive key-value editor with type-aware controls
- Add/remove keys, edit nested dictionaries and arrays
- Automatic backup before saving
- Read-only mode for system domains
- Admin password prompt for global domains (via AppleScript)
- 5 templates: Run Script, Watch Folder, Run at Login, Scheduled Task, Blank
- 3-step workflow: Template → Configure → Review XML → Create
- Automatic plist validation and loading
- Pin frequently-used agents to the menu bar
- Status dots and load/unload toggles for pinned agents
- Always-accessible flame icon in the menu bar
- Overview cards: total agents, running count, problems, crash loops
- CPU and memory monitoring for running agents (via
ps) - Crash loop detection (3+ crashes in the last hour)
- Problem agents list with actionable details
- SQLite-backed event log tracking start/stop/crash/load/unload events
- Per-agent timeline in the detail view
- Global timeline in the Health Dashboard
- Automatic state change detection on each refresh cycle
- macOS notifications when pinned agents crash or stop
- Configurable: crash alerts, stop alerts, or both
- Uses native
UserNotificationsframework
- Export single agents or bulk export with manifest
- Import plist files or Ignition export bundles
- One-click backup of all user agents
- macOS 15.0 (Sequoia) or later
- Xcode 16+ (to build from source)
- XcodeGen (to generate the Xcode project)
# Install XcodeGen if you haven't already
brew install xcodegen
# Clone and build
git clone https://github.com/Acelogic/Ignition.git
cd Ignition
xcodegen generate
xcodebuild -scheme Ignition buildTo run the built app:
open ~/Library/Developer/Xcode/DerivedData/Ignition-*/Build/Products/Debug/Ignition.appOr open Ignition.xcodeproj in Xcode and press Cmd+R.
Ignition/
├── IgnitionApp.swift # App entry point, scene setup
├── Models/
│ ├── LaunchAgent.swift # Agent model, domain & status enums
│ ├── PlistValue.swift # Recursive typed plist representation
│ └── AgentTemplate.swift # Wizard templates & form data
├── Services/
│ ├── LaunchDService.swift # Core agent manager (launchctl wrapper)
│ ├── LogTailService.swift # kqueue-based file tailing
│ ├── PlistWriteService.swift # Plist validation & atomic writing
│ ├── ActivityHistoryService.swift # SQLite event store
│ ├── HealthMonitorService.swift # CPU/memory polling & crash detection
│ ├── NotificationService.swift # macOS notification delivery
│ └── ImportExportService.swift # Plist import/export/backup
└── Views/
├── ContentView.swift # 3-column NavigationSplitView + sidebar
├── AgentListView.swift # Agent list with bulk operations
├── AgentRowView.swift # List row with status, tags, pin icon
├── AgentDetailView.swift # Full agent detail with all sections
├── LogViewerView.swift # Live log viewer UI
├── PlistEditorView.swift # Recursive plist key-value editor
├── CreateAgentView.swift # 3-step creation wizard
├── MenuBarView.swift # Menu bar popover
├── HealthDashboardView.swift # Health overview + resource table
└── ActivityHistoryView.swift # Event timeline
MIT License. See LICENSE for details.