Configs2026年4月14日·1 分钟阅读

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.

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

// ~/.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"
  ]
}
# 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

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产