Vanta
#vanta
Your machine, one pane.
A fast, aesthetic terminal system dashboard in Rust. The most complete keyboard-driven terminal dashboard — one pane, four modes, zero mouse.
Vanta collapses everything you care about into one terminal pane: CPU, memory, disk, network, GPU, processes, now-playing, a block-digit clock, a calendar, and an audio visualizer. Keyboard only. ~3 MB binary, ~2–5% CPU at the default 30 fps.
npm install -g @ziuus/vanta && vanta
#Install
| Method | Command | Notes |
|---|---|---|
| npm | npm install -g @ziuus/vanta |
Fetches the prebuilt linux-x64 binary. No Rust needed. |
| Prebuilt binary | Releases | Download the tar.gz, drop vanta on your PATH. |
| cargo | cargo install --git https://github.com/ziuus/vanta |
Any architecture. Needs a Rust toolchain. |
| From source | git clone https://github.com/ziuus/vanta && cd vanta && cargo run --release |
For hacking on it. |
One-liner, no install:
npx @ziuus/vanta@latest
#Requirements
Linux (vanta reads /proc and /sys). Building from source also needs libdbus:
sudo pacman -S dbus # Arch sudo apt install libdbus-1-dev # Debian / Ubuntu sudo dnf install dbus-devel # Fedora
Optional tools that light up extra panels — vanta degrades quietly without them:
| Tool | Unlocks |
|---|---|
cava |
Audio visualizer (falls back to an idle wave) |
nmcli |
Wi-Fi SSID + signal strength |
nvidia-smi |
NVIDIA GPU utilisation, VRAM, temp |
docker |
Running-container count |
checkupdates |
Pending Arch package updates |
#Managing vanta
vanta --version # what am I running vanta --help # usage + keys npm update -g @ziuus/vanta # update (npm) npm uninstall -g @ziuus/vanta # remove (npm) cargo install --git https://github.com/ziuus/vanta --force # update (cargo) cargo uninstall vanta # remove (cargo) rm -rf ~/.config/vanta # drop config + persisted theme/page
Where things live:
| Path | What |
|---|---|
~/.config/vanta/config.toml |
Config, plus the theme / page / visualizer vanta persists for you |
$(npm root -g)/@ziuus/vanta/bin/ |
The npm-installed binary |
~/.cargo/bin/vanta |
The cargo-installed binary |
Vanta respects XDG_CONFIG_HOME if you set it.
#Pages
| Key | Page | What's on it |
|---|---|---|
1 |
Dashboard | System facts + distro logo, semicircle gauges, CPU graph & cores, storage, big clock, now playing, visualizer, top processes, interactive status, memory, network, calendar |
2 |
Monitor | btop-style: CPU / memory / disk I/O / network / GPU graphs on top, full process table below (sort, filter, tree, kill) |
3 |
Aesthetic | Huge clock, calendar, matrix rain, spinning donut, pinned media (photos), full-width visualizer |
4 |
Workspace | Built-in File Manager (with image previews), Agenda, Tasks, RSS feeds, and Obsidian vault viewer |
? |
Help | Keybind reference overlay |
#2 — Monitor
Every graph on top, every process below. Sort it, filter it, tree it, kill it.
#3 — Aesthetic
For when the build is running and you want something to look at. Includes support for displaying a custom pinned image.
#4 — Workspace
Turn your terminal into a productivity hub with a built-in file manager (with image previews), RSS news reader, tasks, agenda, and Obsidian vault viewer (with markdown syntax highlighting). Press e on any focused panel to edit the content in your $EDITOR.
#? — Help
Every key, on screen, on any page.
#Keys
| Key | Action |
|---|---|
1 2 3 4 |
Switch page (persisted as startup page) |
Tab / Shift-Tab |
Cycle panel focus · Esc clears |
Enter |
Zoom the focused panel to the full page · Esc back |
T |
Next theme (persisted) |
v |
Visualizer style: bars / mirror / wave / peaks |
+ / - |
Sample faster / slower |
Space n p |
Play/pause · next · previous (MPRIS, any page) |
< > |
Volume down / up |
? |
Help overlay |
q |
Quit |
~ / F12 |
Toggle Debug Logs overlay (s saves them to file) |
S / , |
Open Settings overlay |
Ctrl + ←/→ |
Resize dashboard columns horizontally (when focused) |
Ctrl + ↑/↓ |
Resize dashboard components vertically (when focused) |
Processes (Monitor): ↑↓ PgUp PgDn Home End select · / filter (Enter keeps, Esc clears) · s sort field · r reverse · t tree · ←→ fold · c full command · k SIGTERM · K SIGKILL (press twice to confirm, x cancels)
Workspace: e opens the active note, agenda, task list, or file in your $EDITOR.
Calendar (focused): ←→ month · ↑↓ year · Home today
#Themes
dark · catppuccin · tokyo-night · nord · gruvbox · dracula · light · solarized-light
Cycle with T — your choice is written back to the config file.
#Custom Themes
You can easily load custom themes dynamically without recompiling Vanta.
- Create a
themesfolder inside your config directory (e.g.~/.config/vanta/themes/). - Drop in a
.tomlfile with your theme name (e.g.,cyberpunk.toml). - Define your colors using hex codes:
bg = "#000000" accent = "#00ff00" secondary = "#ff00ff" surface = "#111111" text = "#ffffff" dim = "#555555" green = "#00ff00" yellow = "#ffff00" red = "#ff0000"
- Press
Tin Vanta to cycle to it, or set it explicitly in yourconfig.toml(theme = "cyberpunk").
#Configuration & Customization
Vanta is highly configurable via ~/.config/vanta/config.toml. You can:
- Change the layout, refresh rates, and themes
- Add your own Custom Widgets using shell commands or files
- Install community-built WASM Extensions to add entirely new UI panels without recompiling
For a complete guide to all configuration options, extensions, and custom widgets, please read: 👉 docs/CONFIGURATION.md
#Architecture
All telemetry is collected on a single background sampler thread (/proc, /sys,
sysinfo, D-Bus) into lock-guarded snapshots; the render loop only reads snapshots
and never blocks on I/O.
| Layer | Technology |
|---|---|
| TUI | Ratatui 0.29 + Crossterm |
| Telemetry | sysinfo, /proc, /sys/class/{hwmon,drm,power_supply} |
| GPU | NVIDIA (nvidia-smi), AMD (sysfs), Intel (clock only) |
| Media | MPRIS over D-Bus (dbus crate) |
| Audio viz | cava raw output, idle wave fallback |
#Contributing
Issues and PRs welcome — bug reports, new themes, new panels, or a GPU vendor that isn't covered yet.
git clone https://github.com/ziuus/vanta && cd vanta cargo run --release # CI runs exactly this — make it pass first cargo fmt --all -- --check cargo clippy --all-targets -- -D warnings cargo test
Read CONTRIBUTING.md first — it covers how the code is laid
out, the sampler-thread rule (never do I/O inside a render()), the panel
degradation contract, and how to add a theme.
Good first contributions:
- A new theme in
src/theme.rs(add a constructor + its name toTHEME_NAMES) - Per-interface network stats
- NVMe / extra
hwmontemperature sources - Mouse click-to-focus
#License
MIT — do what you like, keep the notice.
built by zius · if it's useful, a ⭐ helps