- Real-time RAM, CPU, GPU, NET speed and DISK usage monitoring
- Live CPU and GPU temperature readouts
- Small live sparkline graph next to every metric (last ~30 samples)
- Transparent purple-themed UI with GTK3 CSS styling, fully customizable via
config.json - Cool icons
- Optional one-click integration into the Mewline status bar (hover to open, move away to close)
This project is finished but still could get more features.
- Python 3.9+
- GTK3 (PyGObject)
- psutil
- cairosvg
- Nerd Font (for icons)
Checking system stats on Hyprland usually means opening a terminal and running htop, nvidia-smi, or df -h just to glance at RAM, temps, or disk space - a small but constant interruption. HyprStats removes that friction by putting live stats one hover away, right in your status bar.
3 main QoL improvements:
- No more terminal round-trips - RAM, CPU, GPU, disk, and network stats (plus live temps and mini graphs) are visible instantly, without alt-tabbing to a terminal and typing a command.
- Zero-click, hover-to-open access - integrated directly into the Mewline status bar: hover the icon to open, move away to close. No extra window to manage or close manually.
- Fully configurable without touching code - colors, position, which metrics show, graph size, and font size are all editable in a plain
config.json, generated automatically on first run.
Install system dependencies (Arch Linux):
sudo pacman -S python-gobject python-psutil python-cairosvgClone the repository:
git clone https://github.com/Frantisek-Vojta/HyprStats.git
cd HyprStatsInstall Python dependencies:
pip install -r requirements.txtThe repo includes install.sh, which copies the widget to ~/.config/hyprstats, installs Python dependencies, and - if Mewline by meowrch is detected - adds a hover button for it directly into Mewline's status bar.
chmod +x install.sh
./install.sh
⚠️ Mewline integration only works with meowrch/mewline. The script patches Mewline's ownstatus_bar.pyin place, so it depends on Mewline's internal file structure - it will not work with other status bars (Waybar, HyDePanel, eww, etc.). If Mewline isn't detected,install.shstill installs HyprStats standalone; you can then launch it manually (see Usage).
To undo the Mewline integration and restore the original, unpatched status_bar.py:
./install.sh --restoreRun the widget manually (either from the repo, or from the installed copy):
python3 ~/.config/hyprstats/main.pyIf you're using the Mewline integration, just hover over the HyprStats icon in the status bar instead - no manual launch needed.
On first launch, HyprStats automatically creates ~/.config/hyprstats/config.json with sensible defaults. Edit that file (not anything in the cloned repo) and restart the widget - or Mewline, if integrated - to apply changes. No code editing required.
You can customize:
position- which screen edges the widget anchors to (top/bottom/left/right) and the margin from eachrows- which metrics to show and in what order (remove one, e.g."gpu", to hide that row entirely)colors- accent color per metric (affects both the text and its graph), plus background and border colorsgraph- sparkline size and how many samples of history to keepwindow- overall width and font sizemewline- the icon shown for the HyprStats hover button in the Mewline status bar (grab a code from the Nerd Fonts cheat sheet)
Example:
{
"position": { "anchor": ["top", "right"], "margin_top": 50, "margin_right": 12 },
"rows": ["ram", "cpu", "gpu", "disk", "network"],
"colors": { "ram": "#a78bfa", "cpu": "#c084fc" },
"graph": { "history_length": 30, "width": 60, "height": 22 },
"window": { "min_width": 460, "font_size": 18 },
"mewline": { "icon": "\ued2f" }
}more screenshots coming soon.
Pull requests, bug reports, and feature requests are welcome. Feel free to open an issue.
This project is licensed under the MIT License.

