vs-queue tracks queue progress from a log file containing lines like:
6.4.2026 17:07:03 [Client Notification] Client is in connect queue at position: 90
It keeps a rolling estimate of when the queue will reach zero and draws the observed progress plus the projection in a live terminal UI built with ratatui.
When you launch a process through vs-queue, the child is detached from the tracker on Unix and writes its output to a real log file. In the TUI, q, Esc, or Ctrl-C stop only vs-queue; the launched process keeps running. When the child reaches queue position 0 and exits, the TUI stays open on the final chart until you quit it manually.
To use this tool you need to install rust: https://rust-lang.org/tools/install/
cargo build --releaseLaunch a process and track its log file:
./target/release/vs-queue /path/to/executable -- child-arg-1 child-arg-2Launch with an explicit log file path:
./target/release/vs-queue --log-file ./queue.log /path/to/executable -- child-arg-1 child-arg-2Watch an existing log file without launching anything:
./target/release/vs-queue --watch ./queue.logWatch Vintage Story queue on normal Linux installation
./target/release/vs-queue --watch ~/.config/VintagestoryData/Logs/client-main.logNotes:
- The child process path can be absolute, relative, or a command name on
PATH. - Put
--before the child arguments sovs-queuestops parsing its own flags. stdoutandstderrfrom the child are both redirected into the same log file.- The child is launched with
stdinclosed, so this mode is intended for non-interactive processes. - In an interactive terminal,
vs-queueuses an alternate-screen TUI instead of printing full-screen updates repeatedly.
Build both binaries:
cargo build --binsRun the randomized mock queue producer through the tracker:
./target/debug/vs-queue ./target/debug/mock_queue -- 90 --interval-ms 500The command will create a log file like ./vs-queue-mock_queue-YYYYMMDD-HHMMSS.log and follow it.
You can also rerun the tracker against that file later:
./target/debug/vs-queue --watch ./vs-queue-mock_queue-YYYYMMDD-HHMMSS.log--watch <LOG_FILE> Watch an existing log file instead of launching
--log-file <LOG_FILE> Log file path used when launching
--regression-samples <N> Number of queue samples used in the rolling ETA fit
--recent-logs <N> Number of recent log lines kept in the live UI
--refresh-ms <N> UI refresh interval in milliseconds