ratfetch
August 31, 2026 · View on GitHub
A system fetch that does not stop at one frame.
fastfetch prints your machine once and exits. ratfetch keeps the logo and
the info table, then puts them at the top of a live TUI: meters, graphs, a
process table, filesystems and interfaces, all refreshing while you watch.
What it does
- Live, not a snapshot. Everything re-reads on a configurable interval.
- 526 logos, the full set vendored from fastfetch, with their original
colour palettes. Auto-detected from
/etc/os-release, or pick your own. - Four tabs — overview, processes, filesystems, interfaces.
- 13 built-in themes, plus per-role colour overrides. The default is
mono, so the interface borrows your terminal's colours and the logo is the only thing on screen with a palette of its own. - A config system that tells you when you get it wrong, with the file, the line, and a "did you mean" for every closed vocabulary in the schema.
- No
sysinfocrate./procand/sysare read directly, so the numbers come from where the kernel actually puts them.
Linux only — the collectors are built on /proc and /sys.
Install
curl -fsSL https://tuna4ll.github.io/ratfetch/install.sh | sh
That picks the right prebuilt binary for your architecture and libc, verifies
its checksum against the release's SHA256SUMS, and installs it to
~/.local/bin (or /usr/local/bin when run as root). RATFETCH_VERSION,
RATFETCH_INSTALL_DIR and RATFETCH_NO_MODIFY_PATH override the defaults.
The script is install.sh in this repo — read it before piping
it to a shell, as you should with any installer.
Prebuilt for x86_64 and aarch64, gnu and musl.
Manual setup
Any other architecture, or if you would rather build it yourself. Needs Rust 1.88 or newer.
cargo install --git https://github.com/tuna4ll/ratfetch
From a checkout, which is also how you build it to hack on:
git clone https://github.com/tuna4ll/ratfetch
cd ratfetch
cargo install --path .
Both put the binary in ~/.cargo/bin. To keep it out of the cargo tree
entirely, build and place it yourself:
cargo build --release
install -m 755 target/release/ratfetch ~/.local/bin/
Use
ratfetch # the live TUI
ratfetch --once # one frame, like a classic fetch tool
# (graphs are dropped: one sample is not a series)
ratfetch --logo nixos # override the detected logo
ratfetch --theme gruvbox-dark
ratfetch --interval 250 # four samples a second
ratfetch --list-logos | fzf # browse what is bundled
Keys
| key | action |
|---|---|
q esc ctrl+c | quit |
? f1 | help |
tab shift+tab | change tab |
j k / arrows | scroll |
s | cycle the process sort column |
c | per-core CPU meters |
space | freeze / resume |
r | reload the config |
All of them are rebindable.
Configuration
ratfetch --generate-config # writes a fully commented ~/.config/ratfetch/config.toml
ratfetch --check-config # validates without starting the UI
ratfetch --print-config # the effective config, after merging
Files are merged in order, and each one may be partial:
/etc/ratfetch/config.toml → ~/.config/ratfetch/config.toml → --set key=value
--config PATH replaces the first two. --no-config skips them all.
The config is watched while running, so saving the file re-applies it. If the new version does not parse, ratfetch says so in the footer and keeps running on the old one.
A taste of it
[general]
interval_ms = 500
[logo]
source = "arch"
color_mode = "rainbow"
[theme]
name = "tokyonight"
[theme.colors]
accent = "#7aa2f7"
[layout]
panels = ["meters", "graphs", "processes"]
[info]
items = ["title", "separator", "os", "kernel", "uptime", "cpu", "memory", "colors"]
[meters]
style = "blocks"
per_core = true
[keys]
quit = ["q"]
freeze = ["p"]
Anything you leave out keeps its default. Anything you misspell is an error with a location:
$ ratfetch --check-config
ratfetch: in /home/tuna4l/.config/ratfetch/config.toml:
TOML parse error at line 12, column 1
|
12 | inteval_ms = 500
| ^^^^^^^^^^
unknown field `inteval_ms`, expected one of `interval_ms`, `history`, ...
$ ratfetch --set info.items='["kernal"]' --check-config
ratfetch: config is not valid: unknown InfoItem `kernal` (did you mean `kernel`?)
Every option is documented inline in the generated config; that file is the reference.
Layout
The overview is a header plus a stack of panels:
layout.panels—meters,graphs,processes,disks,network,colorslayout.panel_heights— a fixed height each, or0to share what is left (meterssizes itself to its bars)logo.position—left,right,top,none
Below layout.narrow_width columns the logo moves above the info table on its
own, so ratfetch stays readable in a split pane.
Credits
The ASCII art is vendored from fastfetch
under the MIT License — see assets/ascii/LICENSE. The TUI is built with
ratatui, which the name is a nod to.
License
MIT © Tuna Kılıç