A Cursive TUI for looking at launchd agents and daemons.
Binaries are available via brew tap:
brew tap mach-kernel/pkgs
brew install mach-kernel/pkgs/launchk
Use : to enter command mode, / to enter filtering mode, and any of sguadl for filtering by [system, global, user, agent, daemon, loaded]. Ctrl-U to clear, Tab to complete, Enter to submit.
- Poll XPC for jobs and display changes as they happen
- Filter by LaunchAgents and LaunchDaemons in scopes (fsnotify watched):
- System (/System/Library/)
- Global (/Library)
- User (~/)
- bootstrap
- bootout
- dumpstate (opens in $PAGER)
- dumpjpcategory (opens in $PAGER)
- procinfo (opens in $PAGER, does not require root!)
- edit plist in $EDITOR with support for binary plists
- csrinfo show all CSR flags and their values
While building launchk, XPC convenience glue was placed in xpc-sys.
A big thanks to these open source projects and general resources:
- block Obj-C block support, necessary for any XPC function taking xpc_*_applier_t
- Cursive
- tokio
- plist
- notify
- bitflags
- libc
- lazy_static
- xcrun
- Apple Developer XPC services
- Apple Developer XPC API reference
- MOXIL / launjctl
- geosnow - A Long Evening With macOS' sandbox
- Bits of launchd - @5aelo
- Audit tokens explained (e.g. ASID)
- objc.io XPC guide
- Fortinet XPC RE article
- This HN comment re history
- The various source links found in comments, from Chrome's sandbox and other headers with definitions for private API functions.
.png)

