aster.ax / Docs

macOS runners

On macOS, ax deploy ssh installs ax for the SSH user and runs it as a launchd user service. For the deployment command, upgrades and removal, see Install ax over SSH.

The launchd user service

Deployment installs ~/Library/LaunchAgents/dev.getaster.ax.host.plist and starts dev.getaster.ax.host in the user's launchd domain as a Background session. The SSH connection does not own the host process. The service starts per user login. It is not a root service that runs before login. --system remains Linux-only.

launchctl print user/$(id -u)/dev.getaster.ax.host

Logs are in ~/.local/state/ax/host.stdout.log and host.stderr.log. Configuration and identity paths match the Linux user installation.

Every job has its own launchd supervisor, so restarting the host API does not stop running jobs. Status, output and the final result remain available after you reconnect.

The open profile inherits the account's filesystem, network and sudo permissions and is not a sandbox. Cancellation targets the job's process group, and a process that deliberately creates another session can escape that group. macOS jobs have no cgroup containment. The security model describes how supervision works.

macOS cannot enforce CPU, memory, process-count or file-size limits, or an explicit allow_sudo: false, so it rejects them. Execution deadlines and retained-output limits are supported.

Next steps