Download Latest Version v0.12.0 source code.zip (9.7 MB)
Email in envelope

Get an email when there's a new version of runwisp

Home / v0.8.0
Name Modified Size InfoDownloads / Week
Parent folder
checksums-sha256.txt 2026-06-09 370 Bytes
runwisp-darwin-arm64.tar.gz 2026-06-09 9.3 MB
runwisp-darwin-x64.tar.gz 2026-06-09 10.1 MB
runwisp-linux-arm64.tar.gz 2026-06-09 9.0 MB
runwisp-linux-x64.tar.gz 2026-06-09 9.9 MB
README.md 2026-06-09 5.5 kB
v0.8.0 source code.tar.gz 2026-06-09 4.5 MB
v0.8.0 source code.zip 2026-06-09 4.9 MB
Totals: 8 Items   47.7 MB 0

Added

  • Passwordless mode. Opt-in RUNWISP_NO_AUTH=1 disables the login boundary for local dev / trusted networks, with a startup banner and a persistent Web UI badge. See Auth.
  • Discord notifications. New type = "discord" notifier — color-coded embeds posted to a Discord channel webhook. See Discord provider.
  • Webhook notifications. New type = "webhook" notifier — POSTs structured JSON to any URL with optional custom headers. See Webhook provider.
  • ${VAR} / ${file:path} substitution in runwisp.toml. Any string value can pull from the daemon's environment or a file at config load; run is left to the shell. See Substitution.
  • secrets and secrets_file on [tasks.*] / [services.*] / [defaults]. Same mechanics as env, but keys and values never leave the daemon. See Environment & secrets.
  • runwisp stop and runwisp restart. Service-aware: they delegate to systemd / launchd when the daemon runs under a managed unit, and fall back to SIGTERM + wait otherwise. See Autostart / Stop & restart.
  • Stale-config notice. When runwisp.toml (or an env_file) changes after boot, runwisp status, the TUI header, and a dismissible Web UI banner all point at runwisp restart.
  • Config errors that explain themselves. Bad cron expressions fail at load with the expected grammar, unknown TOML keys suggest the closest valid one, and bad durations show the accepted syntax — same checks in runwisp validate, which now also prints advisory warnings. See Tasks / Scheduling.
  • Plain-English schedules and status tooltips in the Web UI. Cron renders humanized ("Every 5 minutes") with the raw expression in a tooltip, every run-status badge explains itself on hover, and empty states and the login modal say where to go next.
  • ? help overlay in the TUI. Every keyboard shortcut, grouped by context.
  • runwisp demo. Boots a throwaway instance with a realistic config and hundreds of pre-seeded historical runs (with real on-disk logs) so you can explore the TUI and Web UI without writing a runwisp.toml. Everything lives in a temp directory that's deleted when the daemon stops; --cloud connects to the control plane instead. See Quick start.
  • Structured daemon logging. runwisp daemon logs every run start, success, and failure with exit code, end reason, and duration. New --log-level / --log-format flags and RUNWISP_LOG_LEVEL / RUNWISP_LOG_FORMAT env vars; JSON output for log pipelines. See Operations / Logging.

Changed

  • Task and service names may now contain : (e.g. [tasks."db:backup"] — TOML needs the quotes). See [tasks.*].
  • Log console matches the app theme. ANSI colors in run output now map to the RunWisp palette, and the console chrome uses the design-system grays.
  • Breaking: env_file values are now visible in the API/UI — use secrets_file for credentials.
  • Breaking: notifier *_env / *_file keys are gone. Set webhook_url, bot_token, password directly, with ${...} substitution for env vars and files.
  • CLI dead ends now point somewhere. runwisp exec <typo> suggests matching task names, unreachable-daemon errors say how to start one, and first-run output links the docs.
  • Quieter daemon output. HTTP access lines share the slog shape and destination; routine 200/401 traffic (health, SSE keepalives, anonymous polling) moves to debug; startup banner absorbs init warnings; redundant post-banner lines are gone; data-directory section collapses to one absolute Data line; Ctrl+C-triggered failures no longer surface as WARN/ERROR.

Fixed

  • Run detail stats no longer overlap at narrow widths. The Started / Duration / Exited box now reflows with the panel width instead of letting the date spill into the duration.
  • Refreshing the Web UI on a task whose name contains a dot no longer 404s. The daemon mistook /tasks/backup.daily for a missing static asset instead of serving the dashboard.
  • The dashboard's "Up next" panel no longer goes stale. Next-run times refresh when a scheduled run fires, and relative timestamps keep ticking while the page sits open.
  • runwisp status now talks to the daemon over the local Unix socket. It works without a password and actually prints version/uptime — the old TCP path silently dropped the system-stats call as unauthorized.
  • Scroll-to-top in the log viewer no longer spins forever. The first log page (from=0) was mistaken for an unset anchor and served the tail instead, so the top of a multi-thousand-line run never loaded.
  • The in-app notification stream no longer panics when notifications fail to initialize. A nil hub leaked through as a non-nil interface and crashed /api/notifications/stream; it now falls back to a keepalive-only stream.
Source: README.md, updated 2026-06-09