# fastfetch — A Fast, Modern System Information Tool Replacing neofetch > fastfetch is the successor to neofetch: display system info (OS, kernel, CPU, GPU, memory, uptime) with a distro logo, in milliseconds. Written in C with rich customization via JSONC config. ## Install Save in your project root: # fastfetch — Modern System Info in the Terminal ## Quick Use ```bash # macOS brew install fastfetch # Ubuntu sudo apt install fastfetch # 24.04+ # Arch sudo pacman -S fastfetch # Windows winget install Fastfetch-cli.Fastfetch fastfetch ``` ## Introduction fastfetch is the modern replacement for neofetch, which was archived in 2024. Written in C (neofetch was pure Bash), fastfetch starts in ~30ms vs neofetch's 200–800ms, supports richer configuration via JSONC, and actively adds new modules (GPU, display, sound, weather, battery, etc.). With over 22,000 GitHub stars, fastfetch is now the default in many distro welcome scripts and the go-to choice for terminal screenshots in /r/unixporn. ## What fastfetch Does fastfetch gathers system information from OS-native APIs (no shell-outs where avoidable), renders a distro logo as ASCII or image (with kitty/iTerm/sixel image protocols), and prints a configurable key/value list. Output is customizable per-module: pick which facts to show, what color, what format. ## Architecture Overview ``` [fastfetch binary (C)] | +--------+--------+--------+--------+ | | | | | OS info CPU/GPU Memory Network Display (native APIs) | [Logo engine] builtin ASCII distro logos or PNG/JPEG via image protocol | [Render engine] colored key/value output left = logo, right = info | [Config] ~/.config/fastfetch/config.jsonc modules, format strings, colors ``` ## Self-Hosting & Configuration ```jsonc // ~/.config/fastfetch/config.jsonc { "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", "logo": { "type": "small", "color": { "1": "cyan" } }, "display": { "color": "blue" }, "modules": [ "title", "separator", "os", "kernel", "uptime", "packages", "shell", "display", "terminal", "cpu", "gpu", "memory", "disk", "localip", "battery", "colors" ] } ``` ```bash # Show an image logo (terminal must support kitty/iterm/sixel) fastfetch --logo path/to/avatar.png --logo-type kitty # List all modules fastfetch --list-modules # Compact output (useful in shell init scripts) fastfetch --structure "OS:Kernel:CPU:Memory" ``` ## Key Features - **Startup in ~30ms** — C implementation with native OS APIs - **Image logos** — kitty/iTerm/sixel protocols for pixel-perfect logos - **80+ modules** — OS, CPU, GPU, memory, disk, battery, weather, sound, DE, WM, more - **JSONC config** — comments + schema validation in your config - **Cross-platform** — Linux, macOS, Windows, BSD, Android - **Distro-aware** — detects Linux distros and shows correct logo - **Script-friendly** — `--format json` for machine-readable output - **Actively maintained** — weekly commits, fast issue response ## Comparison with Similar Tools | Feature | fastfetch | neofetch | macchina | pfetch | archey | |---|---|---|---|---|---| | Status | Active | Archived (2024) | Active | Active | Legacy | | Language | C | Bash | Rust | POSIX shell | Python | | Startup time | ~30ms | 200–800ms | 50ms | 20ms | Slow | | Image logos | Yes | Limited | No | No | No | | Module count | 80+ | 60+ | ~30 | Minimal | Minimal | | Config | JSONC + schema | Bash file | TOML | Shell vars | Python dict | | Best For | Modern replacement | Legacy installs | Rust fans | Minimal setups | Historical | ## FAQ **Q: Why did neofetch shut down?** A: The maintainer archived the project in 2024 citing lack of time. fastfetch (and macchina) picked up the mantle. If you have neofetch, migrate — it won't receive updates. **Q: Will my neofetch config work?** A: Not directly. fastfetch uses JSONC, neofetch used Bash. Most modules have equivalent names, but you'll need to rewrite the config file. **Q: Can I use my own image as the logo?** A: Yes. `fastfetch --logo path.png --logo-type kitty` (requires a terminal that supports the kitty image protocol: kitty, WezTerm, Ghostty, tabby, etc.). **Q: How do I run it on every shell startup?** A: Add `fastfetch` to `~/.zshrc` / `~/.bashrc` / `~/.config/fish/config.fish`. Use a compact structure to avoid slowing shell startup. ## Sources - GitHub: https://github.com/fastfetch-cli/fastfetch - License: MIT --- Source: https://tokrepo.com/en/workflows/a672c079-380a-11f1-9bc6-00163e2b0d79 Author: AI Open Source