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 ✓

Zero Busy-Wait

A 1-second tick loop drives all rendering. Key events are processed between ticks with zero busy-waiting — swift and silent as a ranger.

✦ ᚾ ✦

Forge Your Blade

Installation

Requires Rust ≥ 1.85. Runs on Linux, Windows 10+, and macOS 12+. GPU support requires Linux with standard /sys mounts.

The quickest path. Cargo fetches, compiles with full optimisations, and installs the binary.

cargo install narsil
This places the binary in ~/.cargo/bin/. Make sure that directory is on your $PATH.

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

# Clone the repository git clone https://github.com/Pommersche92/narsil cd narsil # Build in release mode and run cargo run --release

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

# From crates.io with NVIDIA support cargo install narsil --features nvidia # Or from source cargo build --release --features nvidia
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>
🎨 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