Release Notes
macpmd 1.0.0 — 9 Apr 2026
Initial release.
Features
- Process management — add, start, stop, restart, and delete processes
- Auto-naming — process names auto-derived from the command when
--nameis omitted - Batch operations — start, stop, restart, delete, info, and logs accept multiple names and
--all - Process listing — view all processes with status, PID, uptime, restart count, sudo, and service state
- Process info —
infocommand shows detailed information including the full command and working directory; supports--jsonoutput - Log management — stdout/stderr redirected to
~/.local/share/macpmd/logs/with automatic rotation (10 MB, 3 files) - Log tailing — view recent log output or follow in real-time with
--follow - Multi-process logs — view logs for multiple processes with coloured name prefixes
- Exit code logging — process exit codes and signals recorded in log with
[macpmd]prefix - Lifecycle logging — process start, restart, and exit events logged automatically
- Immediate failure detection — processes that exit immediately on
addare reported as errors and not persisted - Cross-platform service backend — platform-specific service managers selected automatically (launchd on macOS, systemd on Linux)
- launchd integration (macOS) — plists auto-installed on
addin~/Library/LaunchAgents/(standard) or/Library/LaunchDaemons/(sudo) for boot persistence and crash recovery - systemd integration (Linux) — units auto-installed on
addin~/.config/systemd/user/(standard) or/etc/systemd/system/(sudo) withRestart=alwaysfor crash recovery - Fix command —
fixreinstalls missing service files for running processes - TCC path protection (macOS) —
--sudoprocesses are blocked from using TCC-protected directories (Desktop, Documents, Downloads) that would fail when run as LaunchDaemons - Sudo support —
--sudoflag to run processes with elevated privileges - Session isolation — processes spawned in new sessions survive terminal closure
- Coloured output — TTY-aware ANSI colours for status display and log prefixes
- Zero dependencies — stdlib only, no external packages required