A small Windows desktop app that keeps your processes alive. Point it at a program — a game server, a bot, a worker, a script, anything that should stay running — and Vigil launches it, watches it, and restarts it if it stops. It gives you a live console, config-file editing, and a tray icon, all in one window.
Built for game servers and other long-running processes that need babysitting, but it works with any executable or
.bat/.cmdscript.
- Auto-restart with backoff — if a process exits or crashes, Vigil restarts it. Exponential backoff prevents crash-loops, and a "healthy uptime" window resets the backoff once a process has run cleanly for a while. Optional give-up limit.
- Live console — see each server's output in real time and type commands
straight into its stdin (e.g. send
stop/say/admin commands to a server). - Per-server controls — Start, Stop (pause), and Restart, with status at a glance.
- Groups — organize servers into collapsible folders.
- Config editor — browse a server's folder (and common subfolders) as a collapsible tree and edit its config files in-app.
- Add / Edit / Remove servers from the UI — no hand-editing required. The
server list is persisted to a
servers.tomlfile. - Tray + background — closing the window minimizes to the tray and keeps your servers running; quit from the tray to stop everything cleanly.
- No console clutter — release builds run as a windowed app (no flashing console), and a rolling log file is written alongside the config.
Prebuilt Windows binaries are attached to each
Release. They're built with
a statically linked C runtime, so they run on any Windows 10/11 (x64) machine
without installing anything. Each release includes a .sha256 checksum.
Requires a Rust toolchain (MSVC, x86_64 Windows).
cargo build --releaseThe binary is target/release/vigil.exe. Assets (icons) are embedded and the C
runtime is statically linked (see .cargo/config.toml), so it's a single
self-contained executable — just run it.
Launch vigil.exe. Click + Add to register a process:
- Command — the program or script to run (a
.bat/.cmdis run viacmd /C; any other executable runs directly). Arguments go through directly (no shell), so spaced paths in the command field need no quoting. - Args — extra arguments. Split on spaces; use quotes for values that
contain spaces (e.g.
-Dname="My Thing"). - Working dir — defaults to the command's own folder.
- Restart policy — auto-restart, delays, backoff cap, give-up limit.
- Stop command — optional console command (e.g.
stop) written to the process's stdin when Vigil stops it, for a clean shutdown. If the process hasn't exited after Stop timeout seconds, it's killed.
Select a server to see its Console (with a command input) and an Editor tab for its config files.
By default servers.toml and vigil.log live in a data directory next to
the executable. You can change it in the Settings dialog. The pointer to
that directory is stored in vigil-settings.toml, which sits next to the exe by
default and can be relocated with the VIGIL_SETTINGS environment variable
(a file path, or a directory to hold the default filename).
See servers.example.toml for the config format.
- Windows only for now (uses the system tray and process-tree termination). The core is cross-platform Rust; a Linux/macOS build would need a bit of platform glue.
- The binary is unsigned, so Windows SmartScreen may warn ("unknown publisher" → More info → Run anyway), and some antivirus may flag it on heuristics — a process supervisor that launches background processes looks suspicious to behavioral scanners. It's a false positive; build it yourself if you'd rather not trust a prebuilt exe.
- Stop kills the process tree unless a stop command is configured. If
your process needs a clean shutdown to avoid data loss (e.g. saving state),
set its shutdown command (like
stop) in the server's settings — Vigil sends it to the process's stdin and only kills if it doesn't exit in time.
MIT.
Icons are from Lucide (ISC License).