Skip to main content

Launchd

@bixu/launchdv2026.04.24.36· 4mo agoMODELS
01README

Manage macOS launchd daemons: lifecycle, observability, plist management, discovery, and reporting

02Models1
launchd_daemon.tsv2026.03.20.2

Global Arguments

ArgumentTypeDescription
labelstringThe launchd job label (e.g., com.example.mydaemon)
plistPath?stringPath to the plist file. If omitted, searches standard launchd directories.
domainenumThe launchd domain (system, gui, user)
fn load()
Load (bootstrap) the daemon into launchd
fn unload()
Unload (bootout) the daemon from launchd
fn enable()
Enable the daemon (persists across reboots)
fn disable()
Disable the daemon (persists across reboots, does not unload)
fn start(force: boolean)
Start (kickstart) the daemon
ArgumentTypeDescription
forcebooleanForce restart even if already running (-k flag)
fn stop()
Stop the daemon by sending SIGTERM
fn restart()
Restart the daemon (stop + start)
fn sync()
Refresh stored daemon state from launchctl
fn detail()
Get detailed daemon info: program, environment, mach services, limits
fn blame()
Show why and how the daemon was started
fn diagnose()
Diagnose daemon issues: check exit codes, plist validity, loaded state
fn logs(lines: number, level: enum, since: string)
Fetch daemon logs from macOS unified logging
ArgumentTypeDescription
linesnumberMax number of log lines to return
levelenumMinimum log level
sincestringTime window (e.g., 1h, 30m, 1d)
fn plistInfo()
Parse and validate the plist file for this daemon
fn createPlist(outputPath: string, programArguments: array, runAtLoad: boolean, keepAlive: boolean, startInterval?: number, startCalendarInterval?: record, watchPaths?: array, environmentVariables?: record, workingDirectory?: string, standardOutPath?: string, standardErrorPath?: string)
Generate a new plist file for a launchd daemon
ArgumentTypeDescription
outputPathstringPath to write the plist file (relative to repo or absolute)
programArgumentsarrayCommand and arguments to run
runAtLoadboolean
keepAliveboolean
startInterval?numberRun every N seconds
startCalendarInterval?recordCron-like schedule (Hour, Minute, Weekday, etc.)
watchPaths?arrayPaths to watch for changes
environmentVariables?record
workingDirectory?string
standardOutPath?string
standardErrorPath?string
fn list(outputPath: string, programArguments: array, runAtLoad: boolean, keepAlive: boolean, startInterval?: number, startCalendarInterval?: record, watchPaths?: array, environmentVariables?: record, workingDirectory?: string, standardOutPath?: string, standardErrorPath?: string)
List daemons loaded in the domain, filtered by status and pattern
ArgumentTypeDescription
outputPathstringPath to write the plist file (relative to repo or absolute)
programArgumentsarrayCommand and arguments to run
runAtLoadboolean
keepAliveboolean
startInterval?numberRun every N seconds
startCalendarInterval?recordCron-like schedule (Hour, Minute, Weekday, etc.)
watchPaths?arrayPaths to watch for changes
environmentVariables?record
workingDirectory?string
standardOutPath?string
standardErrorPath?string
fn vendors(status: enum)
Report daemons grouped by software vendor
ArgumentTypeDescription
statusenum
fn scan(pattern: string)
Scan plist directories to discover all installed daemons (loaded or not)
ArgumentTypeDescription
patternstringFilter pattern for labels
fn orphans(pattern: string)
Find orphaned daemons: loaded but no plist on disk, or plist exists but not loaded
ArgumentTypeDescription
patternstringFilter pattern for labels
fn diff()
Compare plist on disk vs loaded state in launchd (drift detection)
fn health(pattern: string)
Check health of daemons with KeepAlive or RunAtLoad that should be running
ArgumentTypeDescription
patternstringFilter pattern for labels
fn processes(pattern: string)
Show CPU and memory usage for running daemon processes
ArgumentTypeDescription
patternstringFilter pattern for labels
fn startup(pattern: string)
Report all daemons configured to start at login/boot (RunAtLoad or KeepAlive)
ArgumentTypeDescription
patternstringFilter pattern for labels
03Previous Versions7
2026.04.24.35
2026.04.24.1
2026.04.24.34
2026.04.23.33
2026.04.23.1
2026.03.21.31
2026.03.21.1
04Stats
Downloads
7,695
Archive size
24.9 KB

Not yet scored.

A score will be generated the next time this extension is published. The owner can also trigger scoring manually.

05Platforms
06Labels