<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Narsil — The Blade Reforged</title>
<meta name="description" content="narsil — A terminal-based system resource monitor for Linux, Windows and macOS. GPU-aware (Linux), Braille charts, per-character label inversion. Written in Rust." />
<link rel="canonical" href="https://pommersche92.github.io/narsil/" />
<meta property="og:title" content="narsil — The Blade Reforged" />
<meta property="og:description" content="A terminal system monitor sharper than the tools that came before it." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://pommersche92.github.io/narsil/" />
<meta property="og:image" content="https://pommersche92.github.io/narsil/assets/aragorn_narsil.png" />
<link rel="stylesheet" href="assets/fonts/fonts.css" />
<link rel="stylesheet" href="site.css" />
</head>
<body>
<canvas id="cosmos"></canvas>
<nav>
<a href="#" class="nav-brand">
<img src="assets/hero_image.png" width="30em" alt="Narsil">
narsil
</a>
<ul class="nav-links">
<li><a href="#features">Features</a></li>
<li><a href="#install">Install</a></li>
<li><a href="#gpu">GPU</a></li>
<li><a href="#comparison">Compare</a></li>
<li><a href="#roadmap">Roadmap</a></li>
<li><a href="https://github.com/Pommersche92/narsil" target="_blank" rel="noopener">GitHub ↗</a></li>
</ul>
</nav>
<section id="hero">
<div class="rune-ring rune-ring-1"></div>
<div class="rune-ring rune-ring-2"></div>
<img class="hero-aragorn" src="assets/aragorn_narsil.png" alt="" aria-hidden="true" />
<p><img src="assets/hero_image.png" width="300em" alt="Narsil"></p>
<p class="hero-eyebrow">The Flame of the West · Reforged in Rust</p>
<h1 class="hero-title">narsil</h1>
<p class="hero-subtitle">A System Monitor Reforged</p>
<p class="hero-tagline">
Named after the blade shattered at the dawn of the Third Age<br>
and reforged for a king — <em>narsil</em> is sharper<br>
than the tools that came before it.
</p>
<div class="hero-cta">
<a href="#install" class="btn-forge">
<svg width="13" height="13" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0a8 8 0 100 16A8 8 0 008 0zm.5 4.5v4.793l2.146-2.147a.5.5 0 01.708.708l-3 3a.5.5 0 01-.708 0l-3-3a.5.5 0 01.708-.708L7.5 9.293V4.5a.5.5 0 011 0z"/></svg>
cargo install narsil
</a>
<a href="https://github.com/Pommersche92/narsil" class="btn-ghost" target="_blank" rel="noopener">
GitHub ↗
</a>
<a href="https://crates.io/crates/narsil" class="btn-ghost" target="_blank" rel="noopener">
crates.io ↗
</a>
</div>
<div class="hero-badges">
<span class="badge">🦀 Rust</span>
<span class="badge">ratatui</span>
<span class="badge">AMD + NVIDIA GPU (Linux)</span>
<span class="badge">Linux · Windows · macOS</span>
<span class="badge">GPL-3.0</span>
</div>
</section>
<section id="features">
<div class="container">
<div class="s-header fade-in-up">
<p class="s-eyebrow">What Narsil Sees</p>
<h2 class="s-title">Seven Views. One Kingdom.</h2>
<p class="s-desc">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.</p>
</div>
<div class="features-grid">
<div class="feat-card hero-feat fade-in-up">
<span class="feat-icon">🎨</span>
<div>
<h3 class="feat-title">Split-Colour Gauge Inversion</h3>
<p class="feat-desc">Every percentage label inside a gauge automatically inverts its colour <strong>character-by-character</strong> at the fill boundary — so text is always readable, even when the bar sits at exactly 50%. No other terminal monitor does this.</p>
<span class="feat-tag">unique to narsil</span>
</div>
</div>
<div class="feat-card fade-in-up">
<span class="feat-icon">🗺️</span>
<h3 class="feat-title">Overview</h3>
<p class="feat-desc">CPU & RAM gauges, live RX/TX sparklines, and a process list that fills every available line of your terminal.</p>
</div>
<div class="feat-card fade-in-up">
<span class="feat-icon">🧠</span>
<h3 class="feat-title">CPU</h3>
<p class="feat-desc">Global usage history rendered in Braille dot art, followed by per-core gauges colour-coded by load intensity.</p>
<span class="feat-tag">Braille charts</span>
</div>
<div class="feat-card fade-in-up">
<span class="feat-icon">💾</span>
<h3 class="feat-title">Memory</h3>
<p class="feat-desc">RAM and Swap history charts with live GiB usage gauges. See exactly how much of your kingdom's silver remains.</p>
</div>
<div class="feat-card fade-in-up">
<span class="feat-icon">🌐</span>
<h3 class="feat-title">Network</h3>
<p class="feat-desc">Combined RX/TX history chart alongside live per-direction throughput — every packet a message from the realm.</p>
</div>
<div class="feat-card fade-in-up">
<span class="feat-icon">💿</span>
<h3 class="feat-title">Disks</h3>
<p class="feat-desc">Per-partition usage bars at fixed height, with ▲ ▼ scroll indicators when your vaults exceed the visible height.</p>
<span class="feat-tag">scrollable</span>
</div>
<div class="feat-card fade-in-up">
<span class="feat-icon">🔬</span>
<h3 class="feat-title">Processes</h3>
<p class="feat-desc">Process table sorted by CPU usage — the lords of the realm and their burdens, always filling the visible height.</p>
</div>
<div class="feat-card fade-in-up">
<span class="feat-icon">🎮</span>
<h3 class="feat-title">GPU <span style="font-size:.7em;opacity:.7">(Linux)</span></h3>
<p class="feat-desc">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 <code>amdgpu</code> or NVIDIA proprietary driver.</p>
<span class="feat-tag">AMD ✓ NVIDIA ✓</span>
</div>
<div class="feat-card fade-in-up">
<span class="feat-icon">⚡</span>
<h3 class="feat-title">Zero Busy-Wait</h3>
<p class="feat-desc">A 1-second tick loop drives all rendering. Key events are processed between ticks with zero busy-waiting — swift and silent as a ranger.</p>
</div>
</div>
</div>
</section>
<div class="container">
<div class="divider fade-in-up"><span class="divider-rune">✦ ᚾ ✦</span></div>
</div>
<section id="install">
<div class="container">
<div class="s-header fade-in-up">
<p class="s-eyebrow">Forge Your Blade</p>
<h2 class="s-title">Installation</h2>
<p class="s-desc">Runs on <strong>Linux</strong>, <strong>Windows 10+</strong>, and <strong>macOS 12+</strong>. Rust is only needed for the crates.io and source options. GPU support requires Linux.</p>
</div>
<div class="channels-grid fade-in-up">
<div class="channel-card">
<div class="channel-icon"><img src="assets/crates-io.png" alt="crates.io"></div>
<div class="channel-name">crates.io</div>
<div class="channel-desc">All platforms · Rust needed</div>
<code class="channel-cmd">cargo install narsil</code>
</div>
<div class="channel-card">
<div class="channel-icon"><img src="assets/archlinux.svg" alt="Arch Linux"></div>
<div class="channel-name">AUR</div>
<div class="channel-desc">Arch Linux · 4 packages</div>
<code class="channel-cmd">yay -S narsil-bin</code>
</div>
<div class="channel-card">
<div class="channel-icon"><img src="assets/appimage.svg" alt="AppImage"></div>
<div class="channel-name">AppImage</div>
<div class="channel-desc">Linux x86_64 · self-contained</div>
<code class="channel-cmd">./narsil-*.AppImage</code>
</div>
<div class="channel-card">
<div class="channel-icon"><img src="assets/windows.svg" alt="Windows"></div>
<div class="channel-name">Windows</div>
<div class="channel-desc">x86_64 · zip from Releases</div>
<code class="channel-cmd">narsil.exe</code>
</div>
<div class="channel-card">
<div class="channel-icon">🗃️</div>
<div class="channel-name">Tarball</div>
<div class="channel-desc">Linux x86_64 · GitHub Releases</div>
<code class="channel-cmd">tar xzf narsil-*.tar.gz</code>
</div>
<div class="channel-card">
<div class="channel-icon">🔨</div>
<div class="channel-name">Source</div>
<div class="channel-desc">All platforms · Rust needed</div>
<code class="channel-cmd">cargo build --release</code>
</div>
</div>
<div class="install-wrap fade-in-up">
<div class="tab-bar">
<button class="tab-btn active" onclick="switchTab('crates', this)">crates.io</button>
<button class="tab-btn" onclick="switchTab('aur', this)">AUR</button>
<button class="tab-btn" onclick="switchTab('appimage', this)">AppImage</button>
<button class="tab-btn" onclick="switchTab('windows', this)">Windows</button>
<button class="tab-btn" onclick="switchTab('tarball', this)">Tarball</button>
<button class="tab-btn" onclick="switchTab('source', this)">From source</button>
<button class="tab-btn" onclick="switchTab('nvidia', this)">NVIDIA support</button>
</div>
<div class="tab-panel active" id="tab-crates">
<p class="tab-intro">The quickest path. Cargo fetches, compiles with full optimisations, and installs the binary to <code>~/.cargo/bin/</code>. Works on Linux, Windows, and macOS.</p>
<div class="code-wrap">
<button class="copy-btn" onclick="copyCode(this, 'cargo install narsil')">copy</button>
<div class="code-block">
<span class="c-cmd">cargo</span> <span class="c-arg">install</span> <span class="c-string">narsil</span>
</div>
</div>
<div class="install-note">
Make sure <code>~/.cargo/bin/</code> is on your <code>$PATH</code>. For NVIDIA GPU support see the <em>NVIDIA support</em> tab.
</div>
</div>
<div class="tab-panel" id="tab-aur">
<p class="tab-intro">Four AUR packages cover every combination of source/binary and standard/NVIDIA.</p>
<div class="aur-table">
<div class="aur-row header">
<span>Package</span><span>Type</span><span>NVIDIA</span>
</div>
<div class="aur-row">
<a href="https://aur.archlinux.org/packages/narsil" target="_blank" rel="noopener"><code>narsil</code></a>
<span>source</span><span class="chip-no">—</span>
</div>
<div class="aur-row">
<a href="https://aur.archlinux.org/packages/narsil-nvidia" target="_blank" rel="noopener"><code>narsil-nvidia</code></a>
<span>source</span><span class="chip-yes">✓</span>
</div>
<div class="aur-row">
<a href="https://aur.archlinux.org/packages/narsil-bin" target="_blank" rel="noopener"><code>narsil-bin</code></a>
<span>binary</span><span class="chip-no">—</span>
</div>
<div class="aur-row">
<a href="https://aur.archlinux.org/packages/narsil-nvidia-bin" target="_blank" rel="noopener"><code>narsil-nvidia-bin</code></a>
<span>binary</span><span class="chip-yes">✓</span>
</div>
</div>
<div class="code-wrap" style="margin-top:1.2rem">
<button class="copy-btn" onclick="copyCode(this, 'yay -S narsil-bin')">copy</button>
<div class="code-block">
<span class="c-comment"># Prebuilt binary — fastest install</span>
<span class="c-cmd">yay</span> <span class="c-flag">-S</span> <span class="c-string">narsil-bin</span>
<span class="c-comment"># Or build from source</span>
<span class="c-cmd">yay</span> <span class="c-flag">-S</span> <span class="c-string">narsil</span>
</div>
</div>
</div>
<div class="tab-panel" id="tab-appimage">
<p class="tab-intro">Self-contained Linux bundle — no installation needed. Download, make executable, run.</p>
<div class="code-wrap">
<button class="copy-btn" onclick="copyCode(this, 'chmod +x narsil-*-x86_64.AppImage\n./narsil-*-x86_64.AppImage')">copy</button>
<div class="code-block">
<span class="c-comment"># Download from GitHub Releases, then:</span>
<span class="c-cmd">chmod</span> <span class="c-arg">+x</span> <span class="c-string">narsil-*-x86_64.AppImage</span>
<span class="c-cmd">./narsil-*-x86_64.AppImage</span>
</div>
</div>
<div class="install-note">
Two variants per release:
<code>narsil-{version}-x86_64.AppImage</code> (standard) and
<code>narsil-nvidia-{version}-x86_64.AppImage</code> (with NVIDIA support).
Requires a Linux x86_64 system.<br><br>
<a href="https://github.com/Pommersche92/narsil/releases/latest" target="_blank" rel="noopener">→ Latest GitHub Release ↗</a>
</div>
</div>
<div class="tab-panel" id="tab-windows">
<p class="tab-intro">Prebuilt Windows x86_64 executable — no Rust, no compiler needed. Download, extract, run in PowerShell or cmd.</p>
<div class="code-wrap">
<button class="copy-btn" onclick="copyCode(this, '.\\narsil.exe')">copy</button>
<div class="code-block">
<span class="c-comment"># After extracting the zip:</span>
<span class="c-cmd">.\narsil.exe</span>
</div>
</div>
<div class="install-note">
Download <code>narsil-{version}-x86_64-windows.zip</code> from
<a href="https://github.com/Pommersche92/narsil/releases/latest" target="_blank" rel="noopener">GitHub Releases ↗</a>.
A NVIDIA variant (<code>narsil-nvidia-…-windows.zip</code>) is also provided.<br><br>
The GPU tab is not compiled into the Windows build. All other tabs work normally.
</div>
</div>
<div class="tab-panel" id="tab-tarball">
<p class="tab-intro">Plain Linux tarball — drop the binary wherever you like. No package manager needed.</p>
<div class="code-wrap">
<button class="copy-btn" onclick="copyCode(this, 'tar xzf narsil-VERSION-x86_64.tar.gz\n./narsil-VERSION/narsil')">copy</button>
<div class="code-block">
<span class="c-comment"># Replace VERSION with the actual release tag</span>
<span class="c-cmd">tar</span> <span class="c-arg">xzf</span> <span class="c-string">narsil-VERSION-x86_64.tar.gz</span>
<span class="c-cmd">./narsil-VERSION/narsil</span>
</div>
</div>
<div class="install-note">
Download from
<a href="https://github.com/Pommersche92/narsil/releases/latest" target="_blank" rel="noopener">GitHub Releases ↗</a>.
Two variants: <code>narsil-{version}-x86_64.tar.gz</code> (standard) and
<code>narsil-nvidia-{version}-x86_64.tar.gz</code> (with NVIDIA support).
</div>
</div>
<div class="tab-panel" id="tab-source">
<p class="tab-intro">Clone and build locally — ideal for development or inspecting the forge.</p>
<div class="code-wrap">
<button class="copy-btn" onclick="copyCode(this, 'git clone https://github.com/Pommersche92/narsil\ncd narsil\ncargo build --release')">copy</button>
<div class="code-block">
<span class="c-cmd">git</span> <span class="c-arg">clone</span> <span class="c-string">https://github.com/Pommersche92/narsil</span>
<span class="c-cmd">cd</span> <span class="c-arg">narsil</span>
<span class="c-cmd">cargo</span> <span class="c-arg">build</span> <span class="c-flag">--release</span>
<span class="c-comment"># Linux / macOS</span>
<span class="c-cmd">./target/release/narsil</span>
<span class="c-comment"># Windows</span>
<span class="c-cmd">.\target\release\narsil.exe</span>
</div>
</div>
</div>
<div class="tab-panel" id="tab-nvidia">
<p class="tab-intro">Enable NVIDIA GPU monitoring via NVML. Requires proprietary NVIDIA drivers at link time. Linux only.</p>
<div class="code-wrap">
<button class="copy-btn" onclick="copyCode(this, 'cargo install narsil --features nvidia')">copy</button>
<div class="code-block">
<span class="c-comment"># From crates.io</span>
<span class="c-cmd">cargo</span> <span class="c-arg">install</span> <span class="c-string">narsil</span> <span class="c-flag">--features</span> <span class="c-arg">nvidia</span>
<span class="c-comment"># From source</span>
<span class="c-cmd">cargo</span> <span class="c-arg">build</span> <span class="c-flag">--release --features</span> <span class="c-arg">nvidia</span>
<span class="c-comment"># AUR</span>
<span class="c-cmd">yay</span> <span class="c-flag">-S</span> <span class="c-string">narsil-nvidia-bin</span>
</div>
</div>
<div class="install-note">
The <code>nvidia</code> feature links against <code>libnvidia-ml.so</code>. If the NVML library is absent at link time, the build fails — this is by design.
</div>
</div>
</div>
</div>
</section>
<div class="container">
<div class="divider fade-in-up"><span class="divider-rune">✦ ᛊ ✦</span></div>
</div>
<section id="gpu">
<div class="container">
<div class="s-header fade-in-up">
<p class="s-eyebrow">The Stewards of Silicon</p>
<h2 class="s-title">GPU Support</h2>
<p class="s-desc">GPU monitoring is <strong>Linux-only</strong> — 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.</p>
</div>
<div class="gpu-grid">
<div class="gpu-card ok fade-in-up">
<div class="gpu-vendor"><img src="assets/amd-48.png" alt="AMD Discrete"></div>
<div class="gpu-name">AMD Discrete</div>
<div class="gpu-driver">amdgpu kernel driver</div>
<div class="chips">
<span class="chip ok">Utilisation</span>
<span class="chip ok">VRAM</span>
<span class="chip ok">Temperature</span>
<span class="chip ok">Power</span>
</div>
<span class="gpu-label ok">Fully Supported</span>
</div>
<div class="gpu-card warn fade-in-up">
<div class="gpu-vendor"><img src="assets/amd-48.png" alt="AMD APU / iGPU"></div>
<div class="gpu-name">AMD APU / iGPU</div>
<div class="gpu-driver">amdgpu kernel driver</div>
<div class="chips">
<span class="chip ok">Utilisation</span>
<span class="chip warn">GTT Memory</span>
<span class="chip ok">Temperature</span>
<span class="chip ok">Power</span>
</div>
<span class="gpu-label warn">Supported (GTT)</span>
</div>
<div class="gpu-card ok fade-in-up">
<div class="gpu-vendor"><img src="assets/nvidia-48.png" alt="NVIDIA"></div>
<div class="gpu-name">NVIDIA</div>
<div class="gpu-driver">proprietary + --features nvidia</div>
<div class="chips">
<span class="chip ok">Utilisation</span>
<span class="chip ok">VRAM</span>
<span class="chip ok">Temperature</span>
<span class="chip ok">Power</span>
</div>
<span class="gpu-label ok">Fully Supported</span>
</div>
<div class="gpu-card dim fade-in-up">
<div class="gpu-vendor"><img src="assets/intel-48.png" alt="Intel iGPU / Arc"></div>
<div class="gpu-name">Intel iGPU / Arc</div>
<div class="gpu-driver">i915 / xe kernel driver</div>
<div class="chips">
<span class="chip none">Utilisation</span>
<span class="chip none">Memory</span>
<span class="chip none">Temperature</span>
<span class="chip none">Power</span>
</div>
<span class="gpu-label dim">Planned</span>
</div>
</div>
<p class="gpu-footnote fade-in-up">
AMD APU VRAM values reflect GTT — system RAM dynamically shared with the GPU. The numbers are accurate; dedicated-vs-shared label disambiguation is planned.
</p>
</div>
</section>
<div class="container">
<div class="divider fade-in-up"><span class="divider-rune">✦ ᛏ ✦</span></div>
</div>
<section id="keybindings">
<div class="container">
<div class="s-header fade-in-up">
<p class="s-eyebrow">Command the Blade</p>
<h2 class="s-title">Keybindings</h2>
</div>
<div class="keys-grid fade-in-up">
<div class="key-row"><kbd>Tab</kbd> <span class="key-desc">Next tab (wraps around)</span></div>
<div class="key-row"><kbd>Shift+Tab</kbd> <span class="key-desc">Previous tab</span></div>
<div class="key-row"><kbd>1</kbd>–<kbd>6</kbd> <span class="key-desc">Jump directly to tab (all platforms)</span></div>
<div class="key-row"><kbd>7</kbd> <span class="key-desc">Jump to GPU tab (Linux only)</span></div>
<div class="key-row"><kbd>→</kbd> / <kbd>l</kbd> <span class="key-desc">Next tab</span></div>
<div class="key-row"><kbd>←</kbd> / <kbd>h</kbd> <span class="key-desc">Previous tab</span></div>
<div class="key-row"><kbd>↓</kbd> / <kbd>j</kbd> <span class="key-desc">Scroll down</span></div>
<div class="key-row"><kbd>↑</kbd> / <kbd>k</kbd> <span class="key-desc">Scroll up</span></div>
<div class="key-row"><kbd>q</kbd> / <kbd>Ctrl‑C</kbd> <span class="key-desc">Quit</span></div>
</div>
</div>
</section>
<div class="container">
<div class="divider fade-in-up"><span class="divider-rune">✦ ᚨ ✦</span></div>
</div>
<section id="comparison">
<div class="container">
<div class="s-header fade-in-up">
<p class="s-eyebrow">Measured Against Heroes of Old</p>
<h2 class="s-title">How does it compare?</h2>
<p class="s-desc">The blades that came before, and what sets narsil apart.</p>
</div>
<div class="table-scroll fade-in-up">
<table>
<thead>
<tr>
<th>Feature</th>
<th><code>top</code></th>
<th><code>htop</code></th>
<th><code>gotop</code></th>
<th>⚔️ narsil</th>
</tr>
</thead>
<tbody>
<tr>
<td>Language</td>
<td>C</td><td>C</td><td>Go</td>
<td>🦀 Rust</td>
</tr>
<tr>
<td>GPU metrics</td>
<td class="crss">✗</td><td class="crss">✗</td><td class="part">partial</td>
<td class="chk">AMD + NVIDIA (Linux)</td>
</tr>
<tr>
<td>Braille charts</td>
<td class="crss">✗</td><td class="crss">✗</td><td class="chk">✓</td>
<td class="chk">✓</td>
</tr>
<tr>
<td>Per-char label inversion</td>
<td class="crss">✗</td><td class="crss">✗</td><td class="crss">✗</td>
<td class="chk">✓</td>
</tr>
<tr>
<td>Disk usage bars</td>
<td class="crss">✗</td><td class="crss">✗</td><td class="chk">✓</td>
<td class="chk">✓</td>
</tr>
<tr>
<td>Scroll indicators</td>
<td class="crss">✗</td><td class="chk">✓</td><td class="crss">✗</td>
<td class="chk">✓</td>
</tr>
<tr>
<td>Keybinding status bar</td>
<td class="crss">✗</td><td class="crss">✗</td><td class="crss">✗</td>
<td class="chk">✓</td>
</tr>
<tr>
<td>Log tail panel</td>
<td class="crss">✗</td><td class="crss">✗</td><td class="crss">✗</td>
<td class="part">planned</td>
</tr>
<tr>
<td>Alert rules</td>
<td class="crss">✗</td><td class="crss">✗</td><td class="crss">✗</td>
<td class="part">planned</td>
</tr>
<tr>
<td>Remote / SSH mode</td>
<td class="crss">✗</td><td class="crss">✗</td><td class="crss">✗</td>
<td class="part">planned</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<div class="container">
<div class="divider fade-in-up"><span class="divider-rune">✦ ᛚ ✦</span></div>
</div>
<section id="roadmap">
<div class="container">
<div class="s-header fade-in-up">
<p class="s-eyebrow">What the Palantír Foretells</p>
<h2 class="s-title">Roadmap</h2>
</div>
<div class="roadmap-grid">
<div class="rm-col fade-in-up">
<h3>🔜 Near-term</h3>
<div class="rm-item"><div class="rm-dot near"></div><div class="rm-text">🔵 Intel GPU support via i915 / xe sysfs and hwmon</div></div>
<div class="rm-item"><div class="rm-dot near"></div><div class="rm-text">🏷️ AMD APU label fix — distinguish GTT from dedicated VRAM</div></div>
<div class="rm-item"><div class="rm-dot near"></div><div class="rm-text">⏱️ Configurable refresh rate via <code>--interval <ms></code></div></div>
<div class="rm-item"><div class="rm-dot near"></div><div class="rm-text">🎨 Built-in colour themes — dark, light, high-contrast</div></div>
</div>
<div class="rm-col fade-in-up">
<h3>🔧 Medium-term</h3>
<div class="rm-item"><div class="rm-dot mid"></div><div class="rm-text">🔬 Per-process GPU attribution via NVML or DRM fdinfo</div></div>
<div class="rm-item"><div class="rm-dot mid"></div><div class="rm-text">🌡️ Temperature history sparklines for CPU and GPU</div></div>
<div class="rm-item"><div class="rm-dot mid"></div><div class="rm-text">💨 Fan speed display in GPU card view</div></div>
<div class="rm-item"><div class="rm-dot mid"></div><div class="rm-text">💽 Disk I/O throughput — read/write MB/s per device</div></div>
<div class="rm-item"><div class="rm-dot mid"></div><div class="rm-text">🔋 Battery & power panel for laptops</div></div>
</div>
<div class="rm-col fade-in-up">
<h3>🚀 Long-term</h3>
<div class="rm-item"><div class="rm-dot far"></div><div class="rm-text">📋 Log tail panel with regex highlight rules</div></div>
<div class="rm-item"><div class="rm-dot far"></div><div class="rm-text">🚨 Alert rules with desktop / webhook notifications</div></div>
<div class="rm-item"><div class="rm-dot far"></div><div class="rm-text">🖥️ SSH remote mode — monitor a remote host locally</div></div>
<div class="rm-item"><div class="rm-dot far"></div><div class="rm-text">📼 Session recording & replay for post-mortem analysis</div></div>
<div class="rm-item"><div class="rm-dot far"></div><div class="rm-text">📊 <code>--json</code> / <code>--prometheus</code> export for Grafana</div></div>
</div>
</div>
</div>
</section>
<footer>
<p class="footer-quote">"All that is gold does not glitter,<br>not all those who wander are lost."</p>
<p class="footer-attr">— J.R.R. Tolkien, The Fellowship of the Ring</p>
<div class="footer-links">
<a href="https://github.com/Pommersche92/narsil" target="_blank" rel="noopener">GitHub</a>
<a href="https://crates.io/crates/narsil" target="_blank" rel="noopener">crates.io</a>
<a href="https://docs.rs/narsil" target="_blank" rel="noopener">docs.rs</a>
<a href="https://github.com/Pommersche92/narsil/blob/main/LICENSE">GPL-3.0 License</a>
</div>
<p class="footer-copy">narsil · written in Rust · named after the shards of a broken blade</p>
<details class="impressum">
<summary><span class="impressum-arrow">▶</span> Impressum (Angaben gemäß § 5 TMG)</summary>
<div class="impressum-body">
<div class="impressum-col">
<h4>Angaben gemäß § 5 TMG</h4>
<p>Raimo Geisel<br>Uhlandstraße 15<br>75385 Bad Teinach</p>
</div>
<div class="impressum-col">
<h4>Kontakt</h4>
<p>E-Mail: <a href="mailto:raimog92@protonmail.com">raimog92@protonmail.com</a></p>
</div>
<div class="impressum-col">
<h4>Streitschlichtung</h4>
<p>Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
<a href="https://ec.europa.eu/consumers/odr" target="_blank" rel="noopener">https://ec.europa.eu/consumers/odr</a>.<br><br>
Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer
Verbraucherschlichtungsstelle teilzunehmen.</p>
</div>
</div>
</details>
</footer>
<div id="dsgvo-banner" role="dialog" aria-live="polite" aria-label="Datenschutzhinweis" hidden>
<div class="dsgvo-inner">
<p class="dsgvo-text">
Diese Seite verwendet <strong>keine Cookies</strong> und kein Tracking.
Sie wird auf GitHub Pages gehostet — GitHub Inc. kann dabei
IP-Adressen in Server-Logs erfassen (vgl.
<a href="https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#data-collection" target="_blank" rel="noopener">GitHub Privacy</a>).
Weitere Angaben im
<a href="#" onclick="document.querySelector('.impressum').open=true; document.querySelector('.impressum').scrollIntoView({behavior:'smooth'}); return false;">Impressum</a>.
</p>
<button class="dsgvo-btn" id="dsgvo-accept">Verstanden</button>
</div>
</div>
<script src="site.js"></script>
</body>
</html>