A cross-platform system information fetching tool written in Rust.
Choose your platform. The quick installer handles everything — including Rust setup if needed.
# One-liner (curl)
curl -fsSL https://raw.githubusercontent.com/xscriptor/xfetch/main/install.sh | bash
# Custom prefix
bash <(curl -fsSL ...) --prefix /usr/local
After install, just run:
$ xfetch
$ xfetch --version
$ xfetch --gen-configFrom OS detection to animated ASCII art — xfetch packs a punch in a single binary.
OS, kernel, CPU, GPU, memory, disk, battery, uptime, packages, shell, terminal, WM/DE and more.
Works on Linux, Windows, and macOS. Same tool, same config — everywhere.
Classic side-by-side, Pac-Man, tree, section, side-block, box, lines, dots, and bottom-line.
Full customization via config.jsonc — modules, icons, colors, logos, and layouts.
Built-in ANSI color palette display with square, circle, triangle, and line styles.
Extend with external plugins via JSON over stdin/stdout. Animate logos, fetch GitHub stats, and more.
Animate ASCII logos with sweep, wave, rainbow, sparkle, breathing, and frame-by-frame styles.
Customizable Nerd Font icons per module. Use emojis, text, or any Unicode glyph.
Display text logos with ANSI colors or image files (png, jpg, svg) via viuer.
Watch xfetch display your system information in real time. This is a simulated terminal session.
█Click to replay
Every piece of information xfetch can display. Mix, match, and reorder them in your config.
osOperating system name, version & architecturekernelKernel versionhostnameMachine hostnameuptimeSystem uptimepackagesPackage count (pacman, dpkg, scoop, brew, etc.)shellCurrent shell (bash, zsh, powershell)terminalTerminal emulatorwmWindow Manager / Desktop EnvironmentcpuCPU model, cores & frequencygpuGPU model(s) — integrated & discretememoryRAM used / total with percentageswapSwap usagediskDisk usagebatteryBattery level & status (charging/discharging)userCurrent usernamedatetimeCurrent date & timelocal_ipLocal IP addresspaletteANSI color palette (squares, circles, triangles, lines)xfetch ships with 9 built-in layouts. Each has a distinct visual style for different preferences.
{
"layout": null
}Logo on the left, info on the right. Clean and familiar.
{
"layout": "pacman"
}Boxed layout with Pac-Man header and footer. Fun and retro.
{
"layout": "section",
"modules": [
{ "type": "group", "title": "Hardware",
"modules": ["cpu","gpu","memory"] },
{ "type": "group", "title": "Software",
"modules": ["os","shell"] }
]
}Grouped modules with clear section headers.
{
"layout": "side-block"
}Keys and values in separate side-by-side boxes.
{
"layout": "tree",
"modules": [
{ "type": "group", "title": "OS",
"modules": ["os","kernel","packages"] },
{ "type": "group", "title": "PC",
"modules": ["cpu","gpu","memory"] }
]
}Hierarchical tree with nested groups. Great for organizing.
{
"layout": "box"
}All info enclosed in a rounded box.
Toggle modules and pick a layout to generate a config.jsonc.
Modules
Layout
Generated config.jsonc
{
"modules": [
"os",
"kernel",
"uptime",
"packages",
"shell",
"wm",
"cpu",
"gpu",
"memory",
"disk",
"palette"
],
"show_colors": true
}Use a custom config file:
xfetch --config path/to/my_config.jsoncxfetch communicates with external plugins via JSON over stdin/stdout. Install, list, and remove plugins with simple CLI commands.
# Install from local path
xfetch plugin install ./plugins/animate-logo
# List installed
xfetch plugin list
# Remove
xfetch plugin remove animate-logoAnimates ASCII logos with multiple color effects via JSON protocol.
Fetches GitHub user stats via the public API.
Any executable reading JSON from stdin and writing JSON to stdout works.
Plugin discovery: explicit path → xfetch-plugin-<name> in PATH → ~/.config/xfetch/plugins/ → ./plugins/<name>/target/release
Simply run xfetch in your terminal:
xfetchWhat's planned for xfetch — from additional package managers to a daemon mode. Contributions welcome!
Core system, all info modules, 20+ example configs, install scripts, layouts, documentation.
RPM, APK (Alpine), Nix, Homebrew, Chocolatey, multi-manager detection, performance optimization.
Local/public IP (with privacy toggle), IPv6, network interface display.
Music player (MPD), Spotify, weather, timezone, user info, display resolution, theme detection.
Compact, horizontal, bottom, minimal (text-only), layout preview documentation.
Parallel probing, caching, lazy loading, benchmarking, profiling, modularized files.
GitHub Actions, macOS/Windows binaries, Homebrew tap, AUR, install scripts, changelog automation.
Themes registry, plugin system, theme download manager, community contributions, theme preview tool.
Unit/integration tests, clippy, rustfmt, platform-specific tests, cross-platform suite, coverage.
Custom scripting, conditional modules, theme variables, daemon mode, hot-reload, telemetry (opt-in).
User manual, video tutorials, project website, blog posts, comparison guide, community channel.
curl -fsSL https://raw.githubusercontent.com/xscriptor/xfetch/main/uninstall.sh | bashrm ~/.local/bin/xfetch
rm -rf ~/.config/xfetch