
RunWisp
Single-binary cron job manager and process supervisor with a web dashboard, terminal UI, run history, and failure alerts.
RunWisp is a self-hosted scheduler and process supervisor written in Go. You describe both cron-style tasks and long-running services in a single runwisp.toml, and one binary runs them without Python, Node.js, or an external database. Every run is recorded in embedded SQLite with its exit code, duration, timestamps, and captured stdout/stderr, and you can follow logs live or replay past runs from the web dashboard, the terminal UI, or the REST API.
Tasks get real cron syntax plus what crond never had: missed-run catch-up, jitter, timeouts, retries with backoff, and queue, skip, or kill policies for overlapping runs. Services get instance counts, restart backoff, crash recovery, and graceful shutdown, which is the supervisord job. Failures can go to Slack, Discord, Telegram, ntfy, Gotify, Pushover, email through SMTP or a local MTA, a generic webhook, or the in-app inbox, and the daemon exposes Prometheus metrics and SSE log streams.
Deployment is deliberately boring: a static binary plus a config file, installable from a shell script, Homebrew, deb/rpm packages, npm, or the official Docker image. RunWisp ships importers for cron, supervisord, systemd, docker-compose, and Ofelia, so a migration starts from the config you already have. The UI and API can trigger, stop, pause, and restart tasks but cannot edit task definitions; runwisp.toml stays the source of truth and can live in version control. That replaces the paid side of tools like PM2 Plus, Cronitor, and Rundeck for the local, single-host case, and it replaces crond and supervisord outright.








