soma-zone
LaunchControl
Comparison
The only fully-featured launchd GUI for macOS. A complete solution to create, manage and debug launchd(8) services.
Download Buy
Product Icon

How does LaunchControl compare to offerings from other developers?

LaunchControl Lingon Pro 10 LaunchManager Launchd Manager launchd-util
Version 2.10.4 10.2.3 1.5.0 1.0 1.2.0
Supported macOS Versions macOS 11 (Big Sur) and later macOS 14 (Sonoma) and later macOS 15.2 (Sequoia) and later macOS 26 (Tahoe) macOS 10.13 (High Sierra) and later
First released 2013 2005 2026 2026 2026
Price ~33 USD ~29 USD free 10 USD free
Open Source No No Yes No Yes
Notarized by Apple Yes Yes No Yes No
User Manual Yes: Via Help menu and online; Also available: Online tutorial of launchd and LaunchControl at launchd.info Yes: Online, also accessible via Help menu No No No
GUI macOS native, highly configurable, support for multiple windows and tabs; Adaptive, only shows keys relevant for selected job; Eight views which may be freely arranged by the user macOS native, tabs and multiple windows; static layout displays all known job keys, regardless of usage macOS native, single window, no tabs; static layout displays all known job keys, regardless of usage macOS native single window, no tabs; static layout displays all known job keys, regardless of usage Tauri cross-platform UI kit, single window, no tabs; static layout displays all known job keys, regardless of usage
Suitable for editing jobs not created with this application Yes Yes, as long as executable does not rely on custom program name No: Will silently remove any keys it does not know (see list of supported keys below) Yes, as long as executable does not rely on custom program name No: Will silently remove any keys it does not know (see list of supported keys below)
XML/Expert Editor Yes: Fully synced with standard editor in real time as you make changes; XML display with syntax highlighting and Expert Editor for full control while ensuring structurally valid job definitions No No Limited: Static XML display shows job as it exists on disk No
Can create launchd jobs from legacy cron jobs Yes No No No No
AI Support Yes: Google, LM Studio, Ollama, OpenAI, OpenRouter, Perplexity, xAI Yes: Apple Intelligence No Yes: Apple Intelligence, OpenAI, Claude No
Troubleshooting of jobs Yes: Detailed warnings and errors even before loading the job; One-click QuickFix actions to resolve many issues; Filters and displays system logs relevant for job; Allows analyzing and fixing malformed job property lists; Step-by-step instructions when a job fails to load or run No No No No
Manage jobs from Menu Bar without the main program running Yes: Start, Stop, Load, Unload; Ability to group jobs and act on those groups; Menu bar icon informs about failed jobs No No No No
Documentation of launchd keys Yes: Extensive documentation of every launchd key and control Limited: Documentation of many launchd keys No: No user-visible correlation between launchd keys and UI No: Controls and launchd keys are undocumented Limited: Controls are explained in the UI
Job-level Full Disk Access isolation, eliminating blanket or per-executable permissions Yes: Run executable with bundled fdautil, no further action required No: Requires allowing Full Disk Access for every executable on the system or creating an application bundle for the executable, which then has to be granted Full Disk Access in System Settings No: Requires allowing Full Disk Access for every executable on the system or creating an application bundle for the executable, which then has to be granted Full Disk Access in System Settings No: Requires allowing Full Disk Access for every executable on the system or creating an application bundle for the executable, which then has to be granted Full Disk Access in System Settings No: Requires allowing Full Disk Access for every executable on the system or creating an application bundle for the executable, which then has to be granted Full Disk Access in System Settings
Support for Daemons (jobs which run on behalf of root/other users) Yes Yes Yes No Limited: Display-only
Filtering of jobs Yes: By type, domain, status (loaded, unloaded, running, exit status), enabled/disabled, validation result (OK, warning, error, invalid), record in override db, status in System Settings Yes: By user-assignable tags, smart folders (name, type, enabled/disabled, creation/modification date, note, tags) Yes: By type No Yes: By type
Create jobs from Templates Yes No No No No
Logs Yes: Dedicated, searchable live views for job output, errors and launchd; Functionality for setting marks, clearing, pausing and deleting No Yes: Job output and error joined in a single, static, non-searchable text view Yes: Job output and error in separate, static, non-searchable text fields Yes: Job output and error in separate, non-searchable text fields
Job Notes Yes Yes No No No
Shows jobs inside application bundles Yes: Bundled jobs are handled like any other job Yes: Display of job definition as XML in separate view No No No
Support for jobs in non-standard locations Yes No No No No
Support for Override Database Yes: Jobs with overridden Disabled key are marked; Allows for changing record in override database No No No No
Shows job's representation in launchd Yes, dedicated State Inspector view No No Yes: Text output from launchctl command line utility No
Job Search Yes: Scoped search by filename, label, Program/ProgramArguments values, other launchd values, launchd keys; Supports Regular Expressions Yes: By filename, full text search in property lists Yes: By filename, value of Program/ProgramArguments keys No Yes: By filename
Customizable process name visible to job's executable Yes No: Jobs with this configuration are not displayed correctly; Editing will remove a possibly configured custom process name No: Custom program name is displayed instead of path to executable; Editing will remove a possibly configured custom process name No: Custom process name is not displayed; Editing will not affect the custom program name No: Executable and custom process name are displayed correctly; Editing the job will remove a possibly configured custom process name
Live update Yes: External changes made to launchd jobs and referenced files/paths/groups/users are detected and the display is immediately updated Limited: External changes made to launchd jobs are detected and the interface is updated immediately No: Requires restart to detect any changes No: Requires restart to detect any changes Limited: New jobs will be visible when the user presses the Reload button; Changes to a job are displayed when the details of a job are displayed
Support for unofficial launchd keys Yes: Any key of any data type can be added, changed or deleted Limited: Unknown keys are displayed and can be deleted No: Will silently remove any key it does not support on save; See list of supported launchd keys below No No: Will silently remove any key it does not support on save; See list of supported launchd keys below
Support for deprecated launchd keys Yes: They can still be added/edited; Deprecated keys are marked with a warning detailing in which macOS version support has been removed Limited: Deprecated keys and their values are displayed and can be deleted No: Will silently remove any key it does not support on save; See list of supported launchd keys below No No: Will silently remove any key it does not support on save; See list of supported launchd keys below
Support for individual launchd keys; An asterisk (*) indicates additional guidance and validation of user input
General
Label Yes* Yes Yes Yes Yes
Program Yes* Limited: Incorrect when ProgramArguments is specified Limited: Incorrect when ProgramArguments is specified Limited: Incorrect when ProgramArguments is specified Limited: Displayed correctly but saved incorrectly for jobs which also have ProgramArguments set
ProgramArguments Yes* Yes Yes Yes Yes
BundleProgram Yes* Yes No No No
StandardInPath Yes* No No No No
StandardOutPath Yes* Yes Yes Yes Yes
WorkingDirectory Yes* Yes No No Yes
EnvironmentVariables Yes* Yes No Yes No
Triggers
KeepAlive Yes*: Always, AfterInitialDemand, SuccessfulExit, Crashed, NetworkStatus, PathState, OtherJobActive, OtherJobEnabled Limited: Crashed, OtherJobEnabled, PathState, SuccessfulExit Limited: Always No Limited: Always
StartInterval Yes* Yes Limited: Does not work in combination with StartCalendarInterval, RunAtLoad or WatchPaths Limited: Does not work in combination with StartCalendarInterval Limited: Not in combination with StartCalendarInterval
StartCalendarInterval Yes*: Additional support for creating sophisticated schedules from cron time specs instead of tediously entering dozens or hundreds of time stamps Yes: Requires manual addition of every single time stamp Yes: Requires manual addition of every single time stamp Yes: Requires manual addition of every single time stamp Yes: Requires manual addition of every single time stamp
QueueDirectories Yes* Yes No No No
RunAtLoad Yes* Yes Limited: Does not work in combination with StartInterval, StartCalendarInterval, WatchPaths Yes Yes
StartOnMount Yes Yes No No No
WatchPaths Yes* Yes Limited Single path only; Will silently remove other paths which might have been configured; Does not work in combination with StartInterval, StartCalendarInterval, RunAtLoad No No
OnDemand Yes* No No No No
Security
RootDirectory Yes* No No No No
Umask Yes: Dedicated control; Info section which explains the outcome of the configuration Yes: Dedicated control No No No
SessionCreate Yes* Yes No No No
GroupName Yes*: Dedicated control preventing input errors Yes: Freeform text No No No
InitGroups Yes* Yes No No No
UserName Yes*: Dedicated control preventing input errors Yes: Freeform text No No No
Run Constraints
Enabled Yes* Yes No No No
LaunchOnlyOnce Yes Yes No No No
LimitLoadFromHost Yes No No No No
LimitLoadToHost Yes No No No No
LimitLoadToSessionType Yes* Yes No No No
LimitLoadToHardware Limited: Via Expert Editor No: Control exists but does not work No No No
Control
AbandonProcessGroup Yes Yes No No No
EnablePressureExit Yes* Yes No No No
EnableTransactions Yes Yes No No No
ExitTimeout Yes* Yes No No No
HardResourceLimits Yes* Yes No No No
SoftResourceLimits Yes* Yes No No No
inetdCompatibility Yes No No No No
ThrottleInterval Yes* No No No No
TimeOut Yes* No No No No
IPC
MachServices Yes*: Dedicated, fully documented control supporting all subkeys Yes: Generic control with free text input suitable for launchd experts only No No No
Sockets Yes*: Dedicated, fully documented control supporting all subkeys Yes: Generic control with free text input suitable for launchd experts only No No No
Trouble shooting/Debugging
Debug Yes No No No No
WaitForDebugger Yes No No No No
StandardErrorPath Yes* Yes No No No
Performance
LegacyTimers Yes* Yes No No No
LowPriorityBackgroundIO Yes Yes No No No
LowPriorityIO Yes Yes No No No
MaterializeDatalessFiles Yes Yes No No No
Nice Yes* Yes No No No
ProcessType Yes* Yes No No No
System Settings
AssociatedBundleIdentifiers Yes* Yes No No No