Skip to content

Repository files navigation

Vigil

CI Release

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/.cmd script.

Features

  • 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.toml file.
  • 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.

Download

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.

Building

Requires a Rust toolchain (MSVC, x86_64 Windows).

cargo build --release

The 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.

Usage

Launch vigil.exe. Click + Add to register a process:

  • Command — the program or script to run (a .bat/.cmd is run via cmd /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.

Where Vigil keeps its data

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.

Notes & caveats

  • 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 infoRun 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.

License

MIT.

Icons are from Lucide (ISC License).

About

A Windows GUI process supervisor — keep game servers, bots, and other long-running processes alive, with auto-restart, a live console, and config editing.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages