Back to projects
Icon for project "sm2"

sm2

1

Open Source2026Author & Maintainer

sm2 is an open-source application operations agent and service manager written in Go. It runs your applications — Go, Node, Python, Rust, shell scripts or any executable — watches them, and brings them back when they die. It ships as a single binary: a small CLI paired with a background agent that talks over a local Unix socket, with no daemon to configure and no runtime to install.

Beyond keeping processes alive, sm2 watches the system around them. It sends rich, color-coded Discord notifications when an app starts, stops, crashes or restarts, warns you before the disk runs out of space, and reports when the agent itself shuts down — with rate-limit-aware retries so important alerts aren't silently dropped. Apps can be declared in an `sm2.yaml` file and survive reboots through launchd and systemd.

Highlights

  • Runs and supervises any app — Go, Node, Python, Rust, shell or any executable
  • Auto-restart on crash with always / on-failure / never policies and backoff
  • Discord alerts on start, stop, crash and restart, plus low disk space
  • Live per-process CPU, memory, uptime and restart counts
  • Declarative sm2.yaml config, log rotation, and reboot survival via launchd / systemd
  • Restart triggers on memory limit, file changes or a cron schedule

Tech stack

  • Go
  • CLI
  • Unix
  • Discord Webhooks

Screenshots

sm2 — run any app, keep it alive
sm2 — run any app, keep it alive