NEWFastfetch 2.68.1 is now live with enhanced GPU & display metrics
The ultra-fast, highly customizable system information tool.
Fastfetch is a high-performance command-line system information tool written mainly in C, engineered as a modern, maintainable successor to Neofetch. It queries operating system attributes, hardware specifications, and desktop environments in sub-millisecond execution times and renders them alongside customizable ASCII or graphical logos.
Fastfetch is an open-source, high-performance command-line system information tool written mainly in C. It queries operating system attributes, hardware components, and software configurations to display a detailed, visually structured summary in terminal emulators alongside customizable ASCII art or high-resolution images. Designed to supersede Neofetch, Fastfetch emphasizes sub-millisecond execution speeds, minimal memory footprint, and deep native support across Linux, macOS, Windows 8.1+, Android, and BSD systems.
What is Fastfetch used for?
Fastfetch is used by software developers, Linux ricing enthusiasts, and systems administrators for three primary use cases: instant terminal greetings upon opening a shell session, hardware auditing & system diagnostics without heavy GUI overhead, and desktop screenshot showcases on communities like r/unixporn. Because it runs in 1–5 milliseconds, it delivers complete hardware metrics without terminal startup lag.
Unlike legacy shell-based fetchers that spawn dozens of sub-processes, Fastfetch queries kernel interfaces and shared libraries directly via dynamic linking. If an optional hardware library is absent, Fastfetch continues without failing, ensuring 100% crash-free portability across both server and desktop operating systems.
Fastfetch solves the slowness and bloat of legacy system fetch scripts, offering native C execution, over 75 hardware metrics, and full editor autocomplete.
Sub-Millisecond Multithreaded Execution
Fastfetch is implemented in pure, highly optimized C. Instead of executing hundreds of shell forks and sed/awk commands, it queries kernel syscalls, D-Bus, WMI, and native APIs asynchronously across multiple worker threads. The result is total execution times of 1 to 5 milliseconds, making it suitable for instant shell startup greetings without terminal lag.
75+ Built-in Modules
From CPU microarchitecture, GPU memory, and physical disk I/O to battery charge rates, TPM security status, audio devices, and Wi-Fi link speed, Fastfetch captures everything.
Cross-Platform Equality
First-class citizen support on Windows (via native Win32/WMI APIs), macOS (via IOKit and CoreGraphics), Linux, FreeBSD, OpenBSD, NetBSD, Android (Termux), and Haiku OS.
Modern Terminal Image Graphics
In addition to over 300 built-in ASCII distro logos, Fastfetch renders full-color PNG/JPEG logos natively using the Kitty graphics protocol, Sixel, iTerm2, or Unicode half-blocks with Chafa.
JSONC Configuration with Official JSON Schema
Fastfetch configurations use JSONC (JSON with comments), eliminating cryptic Bash variable scripts. An official JSON schema provides rich autocompletion, instant type checking, and hover documentation inside Visual Studio Code, Neovim, and Helix editors.
Themes & Ricing
Fastfetch Themes, Presets & Dotfiles
Explore curated Fastfetch themes and dotfiles configurations for Unix ricing. One-click copy production-ready JSONC presets for Catppuccin, Nord, Tokyo Night, and Neofetch.
Community FavoriteJSONC Preset
Catppuccin Mocha Dotfiles Theme
Warm, soothing pastel aesthetic featuring Catppuccin Mocha tones with custom magenta and sapphire accents. Ideal for minimalist Unix ricing setups.
Unlike Neofetch, which was officially archived in April 2024 and suffered from sluggish Bash regex parsing, Fastfetch is actively maintained and executes in pure C using multithreaded detection. Compared to Macchina (written in Rust) and Hyfetch (a Python-based Neofetch wrapper), Fastfetch provides the broadest hardware module library (over 75 metrics), true native Windows support without Cygwin dependencies, and comprehensive terminal image protocol support.
Evaluation Dimension
Fastfetch
Neofetch
Hyfetch
Macchina
Primary Language
C (Native Binary)
Bash Script
Python + Bash
Rust
Average Execution Time
1 – 5 ms
100 – 1,200 ms
150 – 800 ms
5 – 25 ms
Active Maintenance Status
Active (Weekly releases)
Archived / Abandoned (2024)
Active
Active
Native Windows Support
✓ Full Win32 / WMI Native
✗ Slow Cygwin/MSYS only
✗ Limited / WSL
✓ Partial
Configuration Format
JSONC with JSON Schema
Bash script variables
Bash script variables
TOML
Hardware & System Modules
75+ Comprehensive Modules
~30 Basic Modules
~30 Basic Modules
~20 Core Modules
High-Res Image Protocols
Kitty, Sixel, iTerm2, Chafa
w3m (frequently broken)
Sixel / chafa
ASCII only
Sub-Process Spawning
0 (Direct library calls)
50 to 200+ forks per run
50+ forks
0 (Rust bindings)
Is Fastfetch better than neofetch?
Yes, Fastfetch is substantially better than Neofetch across performance, maintenance, feature set, and platform portability. Neofetch was a monolithic Bash script officially archived in April 2024, plagued by high CPU overhead and sluggish execution (typically 100–1,200 ms due to spawning dozens of sub-shells). In contrast, Fastfetch is actively developed in high-performance C, executing in under 5 milliseconds (over 50× faster) via multithreaded native library calls. Fastfetch natively supports Windows 10/11 without Cygwin, offers over 75 hardware detection modules, and uses standard JSONC configuration with JSON Schema autocompletion.
MIGRATION GUIDE
Switching from Neofetch to Fastfetch
fastfetch -c neofetch
Neofetch Drop-in Emulation: Fastfetch includes an official built-in neofetch preset. Running fastfetch -c neofetch outputs your system info in the exact layout, colors, and structure of Neofetch—without the Bash lag.
CLI Flag & Concept Mapping
Neofetch (Archived)
Fastfetch Equivalent
Behavior & Purpose
neofetch
fastfetch
Execute standard system fetch summary
neofetch --config path
fastfetch -c path
Load custom configuration or built-in preset
~/.config/neofetch/config.conf
~/.config/fastfetch/config.jsonc
Primary configuration file (Bash → JSONC)
neofetch --ascii_distro arch
fastfetch --logo arch
Override detected OS logo with specified ASCII logo
neofetch --off
fastfetch --logo none
Disable ASCII/graphical logo rendering entirely
neofetch --source /path/to/img
fastfetch --logo /path/to/img --logo-type kitty
Display high-resolution image instead of ASCII art
neofetch --clean
fastfetch --gen-config-force
Regenerate fresh configuration file
Bash regex string manipulation
Fastfetch Format String Engine
Format expressions like {1}, slicing, conditionals
Quick Reference
Common Fastfetch CLI Commands
Practical copy-ready commands for running, customizing, and formatting Fastfetch on your system.
Default System Fetch
Runs Fastfetch with your active configuration or built-in defaults.
fastfetch
Run Built-in Preset
Loads an official preset such as neofetch, archey, or paleofetch.
fastfetch -c neofetch
Inspect All Supported Modules
Runs Fastfetch with every module enabled to explore available metrics.
fastfetch -c all.jsonc
Generate Default Config File
Creates a documented configuration file at ~/.config/fastfetch/config.jsonc.
fastfetch --gen-config
Force Custom Logo
Displays a specific built-in ASCII logo regardless of detected OS.
fastfetch --logo arch
Custom Structure On-the-Fly
Specifies exact modules to display using a colon-separated list.
fastfetch -s title:os:kernel:cpu:gpu:memory
Machine-Readable JSON Output
Outputs structured JSON data ideal for shell scripts and dashboards.
fastfetch --format json
List All Available Modules
Prints all 75+ modules supported by your compiled Fastfetch binary.
fastfetch --list-modules
Community & Workflow
Ecosystem & Shell Integrations
Fastfetch integrates cleanly into modern developer environments, prompt engines, and terminal emulators.
Shell Startup Greeting
Because Fastfetch runs in under 5 milliseconds, adding it to your ~/.bashrc, ~/.zshrc, or Fish greeting introduces zero perceptible startup delay.
echo 'fastfetch' >> ~/.zshrc
Starship & Oh My Posh
Fastfetch pairs seamlessly with prompt engines like Starship and Oh My Posh, sharing custom Nerd Font icon glyphs and terminal themes without conflicts.
Theme Compatible
Fastfetch-GUI Frontends
Community GUI frontends and configuration editors wrap Fastfetch for desktop users who prefer graphical menus over direct JSON editing.
Community Project
Docker & Containers
Deploy Fastfetch inside lightweight container environments to inspect host kernel, container memory limits, and container runtime metrics in CI/CD.
docker run --rm ghcr.io/fastfetch-cli/fastfetch
Shell Startup Integration
Universal Shell Greeting Configuration
Copy production-safe setup hooks for your favorite shell environment. Includes non-interactive SSH protections.
CRITICAL SCP / SFTP FIX: Never invoke fastfetch unconditionally at the top of ~/.bashrc! Non-interactive SSH tools like scp, sftp, and automated Git hooks will crash with "Received message too long" if stdout receives greeting text. Always guard with an interactive shell check:
~/.bashrc
# Only execute Fastfetch for interactive shell sessions
if [[ $- == *i* ]]; then
fastfetch
fi
Place at the bottom of your ~/.zshrc file so completions, plugins, and Starship prompt engines finish initializing first:
Zsh Pro Tip: If you use Oh My Zsh, adding fastfetch takes < 2ms and won't block prompt rendering.
Add inside ~/.config/fish/config.fish using Fish's built-in interactive status function:
~/.config/fish/config.fish
if status is-interactive
fastfetch
end
In Windows Terminal or standalone PowerShell, edit your $PROFILE (located at $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1):
Microsoft.PowerShell_profile.ps1
# Execute only in interactive terminal sessions
if ([Console]::IsOutputRedirected -eq $false) {
fastfetch
}
PowerShell Execution Policy: If scripts are disabled, run: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser.
Add to your Nushell configuration file at $nu.config-path (e.g. config.nu or env.nu):
config.nu
# Fastfetch interactive greeting in Nushell
if (term size).columns > 0 {
fastfetch
}
Interactive Tool
Visual Fastfetch Config Generator
Customize options in real time below. Copy or download your production-ready config.jsonc file.
~/.config/fastfetch/config.jsoncLIVE GENERATION
Frequently Asked Questions
Everything You Need to Know About Fastfetch
Definitive answers to common queries regarding Fastfetch architecture, installation, troubleshooting, and optimization.
What is Fastfetch used for?
Fastfetch is used by software developers, Linux ricing enthusiasts, and systems administrators for three primary use cases: instant terminal greetings upon opening a shell session, rapid hardware auditing & system diagnostics without heavy GUI overhead, and desktop ricing screenshots shared on communities like r/unixporn. Because it runs in 1–5 milliseconds, it delivers complete hardware metrics without noticeable terminal startup lag.
Is Fastfetch better than neofetch?
Yes, Fastfetch is substantially better than Neofetch across performance, maintenance, feature set, and platform portability. Neofetch was officially archived in April 2024 and suffered from sluggish Bash execution (100–1,200 ms) due to spawning hundreds of sub-processes. Fastfetch is written in pure C, runs multithreaded in under 5 milliseconds (over 50x faster), natively supports Windows without Cygwin, offers over 75 hardware modules, supports modern image protocols (Kitty, Sixel, iTerm2), and uses JSONC configuration with schema validation.
How to install Fastfetch in Linux?
Fastfetch is available in the official repositories of almost all major Linux distributions: on Ubuntu/Debian run 'sudo add-apt-repository ppa:zhangsongcui3371/fastfetch && sudo apt update && sudo apt install fastfetch' (or 'sudo apt install fastfetch' on Debian 13+ / Ubuntu 24.10+); on Arch Linux run 'sudo pacman -S fastfetch'; on Fedora run 'sudo dnf install fastfetch'; on openSUSE run 'sudo zypper install fastfetch'; on Alpine run 'apk add fastfetch'; and on any distro with Homebrew run 'brew install fastfetch'.
Does Fastfetch work on Windows?
Yes, Fastfetch works natively on Windows 8.1, Windows 10, and Windows 11 without requiring WSL, MSYS2, or Cygwin. It queries the Windows Win32 APIs, WMI, and registry directly. You can install it on Windows by running 'winget install fastfetch' in PowerShell or Command Prompt, 'scoop install fastfetch' using Scoop, 'choco install fastfetch' using Chocolatey, or by downloading the standalone pre-compiled zip package from GitHub Releases.
How do I use Fastfetch themes, presets, and dotfiles?
Fastfetch includes built-in presets that can be loaded instantly with the -c flag, such as 'fastfetch -c neofetch', 'fastfetch -c archey', or 'fastfetch -c all.jsonc'. You can inspect all bundled presets with 'fastfetch --list-presets'. For custom community themes and dotfiles (like Catppuccin, Nord, or Tokyo Night), save your JSONC preset file into ~/.config/fastfetch/ or copy community presets into that directory and load them via 'fastfetch -c <name>'.
Where is the Fastfetch configuration file stored on disk?
On Linux and macOS, the primary Fastfetch configuration file is located at ~/.config/fastfetch/config.jsonc. On Windows, Fastfetch checks %USERPROFILE%\.config\fastfetch\config.jsonc or %APPDATA%\fastfetch\config.jsonc. You can generate a default configuration file anytime by executing the command 'fastfetch --gen-config'.
How do I change the Fastfetch logo or display a custom image?
To change the ASCII logo to another distribution or custom art, use 'fastfetch --logo <name>' (for example, 'fastfetch --logo arch'). To list all available built-in logos, run 'fastfetch --print-logos'. To render high-resolution images, use 'fastfetch --logo /path/to/image.png --logo-type kitty' (or sixel, iterm, or chafa). In config.jsonc, configure the 'logo' object with 'source' and 'type' keys.
How do I fix missing icons or broken square symbols in Fastfetch?
If Fastfetch displays question marks or square replacement boxes instead of hardware symbols, your terminal font lacks glyph support. To resolve this, install a Nerd Font (such as JetBrainsMono Nerd Font, FiraCode Nerd Font, or MesloLGS NF) and configure your terminal emulator to use that font.
Why does adding Fastfetch to ~/.bashrc break my SCP or SFTP connections?
Non-interactive SSH utilities like scp, sftp, and rsync source your shell's rc file but expect pure protocol communication on standard input/output. If Fastfetch prints greeting text, the client protocol parser fails with "Received message too long". To fix this, always guard your Fastfetch invocation with an interactive check in ~/.bashrc: if [[ $- == *i* ]]; then fastfetch; fi.
Why does Fastfetch take 2-3 seconds on Windows during the first execution?
On Windows, the first call to Windows Management Instrumentation (WMI) initializes the background DCOM service host, which can introduce a 1–2 second cold-start latency. Subsequent invocations execute in under 10 ms because Fastfetch caches query connections. To achieve instantaneous sub-5ms cold starts on Windows, configure Fastfetch to query direct Win32 APIs and omit slow WMI-only modules (such as WMI battery polling on desktops).
How do I accurately benchmark and profile Fastfetch startup time?
You can benchmark execution speed using standard timing tools: run time fastfetch --pipe false > /dev/null on Linux/macOS, or use the professional Rust CLI tool hyperfine 'fastfetch --pipe false' to perform statistically sound multi-run benchmarks with mean, standard deviation, and minimum execution time calculations.
How do I display a random wallpaper or custom sprite on each terminal startup?
In your config.jsonc file, set "logo": { "type": "auto", "source": "~/Pictures/Wallpapers/*.png" }. Fastfetch automatically performs glob expansion on *nix systems and randomly selects an image for each run. For CLI sprites (like Pokemon sprites), set "logo": { "type": "command-raw", "source": "pokeget random --hide-name" } or pipe via shell with pokeget random \| fastfetch --file-raw -.