fastfetch
Display system information and hardware details
TLDR
Display system information
Display full system information with all the modules enabled
Load a custom configuration file
Fetch a specific structure
Use a specific logo
Display system information without a logo
Use a specific color for the keys and title
SYNOPSIS
fastfetch [OPTIONS...]
PARAMETERS
-h, --help
Displays the help message and exits.
-v, --version
Displays version information and exits.
-c <file>, --config <file>
Uses a custom configuration file instead of the default.
-s <key>=<value>, --set <key>=<value>
Overrides a configuration key with a new value for the current run.
--disable-modules <modules>
Disables specific modules (comma-separated list, e.g., 'cpu,gpu').
--enable-modules <modules>
Enables specific modules, implicitly disabling all others not specified.
--list-modules
Lists all available information modules that can be displayed.
--list-logos
Lists all available ASCII logos that can be used.
--color-keys <color>
Sets the ANSI color for the key names (e.g., 'red', '#FF0000').
--color-values <color>
Sets the ANSI color for the values (e.g., 'blue', '#0000FF').
--logo <type|path>
Specifies the ASCII logo type to use or a path to a custom image. Use 'none' to disable the logo.
--format <format>
Sets the output format (e.g., 'json', 'plain', 'ansi').
DESCRIPTION
Fastfetch is a modern, high-performance command-line utility designed to fetch and display various system information details. It serves as a significantly faster and more efficient alternative to older tools like Neofetch and Screenfetch, thanks to its optimized C++ codebase and direct utilization of native system APIs. Fastfetch can present a wide array of information, including OS, Kernel, Uptime, Packages, Shell, Resolution, Desktop Environment/Window Manager, CPU, GPU, Memory, and Disk usage.
It is highly configurable, allowing users to precisely control which modules are displayed, their order, and the output formatting, making it ideal for system showcases, quick diagnostics, or automated reporting. Its modular design and emphasis on speed make it a preferred choice for many Linux enthusiasts.
CAVEATS
While highly optimized, performance can still vary depending on the system's hardware, the number of enabled modules, and the specific APIs available. Some modules may require elevated privileges or specific system configurations (e.g., kernel modules) to fetch accurate data. The extensive configuration options, while providing great flexibility, can introduce a learning curve for new users.
CONFIGURATION FILE
Fastfetch primarily uses a TOML or JSONC based configuration file (default: ~/.config/fastfetch/config.jsonc or ~/.config/fastfetch/config.toml) to define which modules to display, their order, and various formatting options. This allows for highly customized and persistent outputs across sessions, saving users from typing long command-line arguments repeatedly.
MODULE SYSTEM
The tool is built around a robust modular architecture. Each piece of information, such as the Operating System, CPU, RAM, or GPU details, is handled by a separate module. This design allows users to easily enable or disable specific modules, tailoring the output precisely to their requirements and optimizing performance by only fetching necessary data. This modularity also simplifies future expansions and contributions.
CROSS-PLATFORM SUPPORT
While widely popular on Linux, fastfetch also provides support for other operating systems, including macOS and Windows. This makes it a versatile system information utility that can be utilized across different computing environments, maintaining a consistent interface and feature set for users regardless of their underlying OS.
HISTORY
Fastfetch emerged as a modern, high-performance alternative to existing system information tools like Neofetch, which were largely script-based (e.g., Bash) and could be slower or less efficient in fetching system details. Developed primarily in C++ by KitsuneAlex, its core focus was on leveraging native system APIs and optimized algorithms to achieve significantly faster execution times and lower resource consumption. This development philosophy aimed to address the performance limitations of its predecessors while offering extensive configurability and broad cross-platform support. It quickly gained traction within the Linux community for its speed and rich feature set, establishing itself as a preferred utility for displaying system information.
SEE ALSO
neofetch(1), screenfetch(1), uname(1), lsb_release(1), hwinfo(8), inxi(1)