Narsil

The Flame of the West · Reforged in Rust

narsil

A System Monitor Reforged

Named after the blade shattered at the dawn of the Third Age
and reforged for a king — narsil is sharper
than the tools that came before it.

cargo install narsil GitHub ↗ crates.io ↗
🦀 Rust ratatui AMD + NVIDIA GPU (Linux) Linux · Windows · macOS GPL-3.0

What Narsil Sees

Seven Views. One Kingdom.

Every metric your system holds, rendered in Braille and flame — without ever leaving the terminal. Runs on Linux, Windows and macOS. GPU monitoring is Linux-only for now.

🎨

Split-Colour Gauge Inversion

Every percentage label inside a gauge automatically inverts its colour character-by-character at the fill boundary — so text is always readable, even when the bar sits at exactly 50%. No other terminal monitor does this.

unique to narsil
🗺️

Overview

CPU & RAM gauges, live RX/TX sparklines, and a process list that fills every available line of your terminal.

🧠

CPU

Global usage history rendered in Braille dot art, followed by per-core gauges colour-coded by load intensity.

Braille charts
💾

Memory

RAM and Swap history charts with live GiB usage gauges. See exactly how much of your kingdom's silver remains.

🌐

Network

Combined RX/TX history chart alongside live per-direction throughput — every packet a message from the realm.

💿

Disks

Per-partition usage bars at fixed height, with ▲ ▼ scroll indicators when your vaults exceed the visible height.

scrollable
🔬

Processes

Process table sorted by CPU usage — the lords of the realm and their burdens, always filling the visible height.

🎮

GPU (Linux)

Per-GPU cards with utilisation and VRAM history charts, live gauges, temperature, and power draw. AMD and NVIDIA fully supported. GPU monitoring requires Linux with the amdgpu or NVIDIA proprietary driver.

AMD ✓  NVIDIA ✓

Configurable Refresh Rate

Pass --interval <ms> to tune between low-latency and low-CPU usage. Defaults to 1 000 ms. Key events are processed between ticks with zero busy-waiting — swift and silent as a ranger.

--interval <ms>
✦ ᚾ ✦

Forge Your Blade

Installation

Runs on Linux, Windows 10+, and macOS 12+. Rust is only needed for the crates.io and source options. GPU support requires Linux.

crates.io
crates.io
All platforms · Rust needed
cargo install narsil
Arch Linux
AUR
Arch Linux · 4 packages
yay -S narsil-bin
AppImage
AppImage
Linux x86_64 · self-contained
./narsil-*.AppImage
Windows
Windows
x86_64 · zip from Releases
narsil.exe
🗃️
Tarball
Linux x86_64 · GitHub Releases
tar xzf narsil-*.tar.gz
🔨
Source
All platforms · Rust needed
cargo build --release

The quickest path. Cargo fetches, compiles with full optimisations, and installs the binary to ~/.cargo/bin/. Works on Linux, Windows, and macOS.

cargo install narsil
Make sure ~/.cargo/bin/ is on your $PATH. For NVIDIA GPU support see the NVIDIA support tab.

Four AUR packages cover every combination of source/binary and standard/NVIDIA.

PackageTypeNVIDIA
narsil source
narsil-nvidia source
narsil-bin binary
narsil-nvidia-bin binary
# Prebuilt binary — fastest install yay -S narsil-bin # Or build from source yay -S narsil

Self-contained Linux bundle — no installation needed. Download, make executable, run.

# Download from GitHub Releases, then: chmod +x narsil-*-x86_64.AppImage ./narsil-*-x86_64.AppImage
Two variants per release: narsil-{version}-x86_64.AppImage (standard) and narsil-nvidia-{version}-x86_64.AppImage (with NVIDIA support). Requires a Linux x86_64 system.

→ Latest GitHub Release ↗

Prebuilt Windows x86_64 executable — no Rust, no compiler needed. Download, extract, run in PowerShell or cmd.

# After extracting the zip: .\narsil.exe
Download narsil-{version}-x86_64-windows.zip from GitHub Releases ↗. A NVIDIA variant (narsil-nvidia-…-windows.zip) is also provided.

The GPU tab is not compiled into the Windows build. All other tabs work normally.

Plain Linux tarball — drop the binary wherever you like. No package manager needed.

# Replace VERSION with the actual release tag tar xzf narsil-VERSION-x86_64.tar.gz ./narsil-VERSION/narsil
Download from GitHub Releases ↗. Two variants: narsil-{version}-x86_64.tar.gz (standard) and narsil-nvidia-{version}-x86_64.tar.gz (with NVIDIA support).

Clone and build locally — ideal for development or inspecting the forge.

git clone https://github.com/Pommersche92/narsil cd narsil cargo build --release # Linux / macOS ./target/release/narsil # Windows .\target\release\narsil.exe

Enable NVIDIA GPU monitoring via NVML. Requires proprietary NVIDIA drivers at link time. Linux only.

# From crates.io cargo install narsil --features nvidia # From source cargo build --release --features nvidia # AUR yay -S narsil-nvidia-bin
The nvidia feature links against libnvidia-ml.so. If the NVML library is absent at link time, the build fails — this is by design.
✦ ᛊ ✦

The Stewards of Silicon

GPU Support

GPU monitoring is Linux-only — narsil reads deep into the kernel’s sysfs and NVML to bring you real GPU metrics. On Windows and macOS the GPU tab is not compiled in; all other tabs work normally.

AMD Discrete
AMD Discrete
amdgpu kernel driver
Utilisation VRAM Temperature Power
Fully Supported
AMD APU / iGPU
AMD APU / iGPU
amdgpu kernel driver
Utilisation GTT Memory Temperature Power
Supported (GTT)
NVIDIA
NVIDIA
proprietary + --features nvidia
Utilisation VRAM Temperature Power
Fully Supported
Intel iGPU / Arc
Intel iGPU / Arc
i915 / xe kernel driver
Utilisation Memory Temperature Power
Planned

AMD APU VRAM values reflect GTT — system RAM dynamically shared with the GPU. The numbers are accurate; dedicated-vs-shared label disambiguation is planned.

✦ ᛏ ✦

Command the Blade

Keybindings

Tab Next tab (wraps around)
Shift+Tab Previous tab
16 Jump directly to tab (all platforms)
7 Jump to GPU tab (Linux only)
/ l Next tab
/ h Previous tab
/ j Scroll down
/ k Scroll up
q / Ctrl‑C Quit
✦ ᚨ ✦

Measured Against Heroes of Old

How does it compare?

The blades that came before, and what sets narsil apart.

Feature top htop gotop ⚔️ narsil
Language CCGo 🦀 Rust
GPU metrics partial AMD + NVIDIA (Linux)
Braille charts
Per-char label inversion
Disk usage bars
Scroll indicators
Keybinding status bar
Log tail panel planned
Alert rules planned
Remote / SSH mode planned
✦ ᛚ ✦

What the Palantír Foretells

Roadmap

🔜 Near-term

🔵 Intel GPU support via i915 / xe sysfs and hwmon
🏷️ AMD APU label fix — distinguish GTT from dedicated VRAM
⏱️ Configurable refresh rate via --interval <ms>
DONE
🎨 Built-in colour themes — dark, light, high-contrast

🔧 Medium-term

🔬 Per-process GPU attribution via NVML or DRM fdinfo
🌡️ Temperature history sparklines for CPU and GPU
💨 Fan speed display in GPU card view
💽 Disk I/O throughput — read/write MB/s per device
🔋 Battery & power panel for laptops

🚀 Long-term

📋 Log tail panel with regex highlight rules
🚨 Alert rules with desktop / webhook notifications
🖥️ SSH remote mode — monitor a remote host locally
📼 Session recording & replay for post-mortem analysis
📊 --json / --prometheus export for Grafana