fastfetch1
A fast and feature-rich system information tool similar to neofetch
Usage
fastfetch [OPTIONS ...]
Overview
Fastfetch is a tool for displaying system information in a visually appealing way. Written primarily in C, it focuses on performance and customizability while providing functionality similar to neofetch. It supports Linux, Android, FreeBSD, macOS, and Windows 7 or newer.
Configuration
Fetch Structure
The structure defines which modules to display and in what order. It consists of module names separated by colons (:). For example: title:separator:os:kernel:uptime
To list all available modules, use --list-modules
Config Files
Fastfetch uses JSONC (JSON with Comments) for configuration files. These files must have the .jsonc extension.
You can generate a default config file using --gen-config. By default, the config file is saved at ~/.config/fastfetch/config.jsonc.
The configuration/preset files are searched in the following locations (in order):
1. Relative to the current working directory
2. Relative to ~/.local/share/fastfetch/presets/
3. Relative to /usr/share/fastfetch/presets/
For detailed information on logo options, module configuration, and formatting, visit: https://github.com/fastfetch-cli/fastfetch/wiki/Configuration
Fastfetch provides several built-in presets. List them with --list-presets.
JSON Schema
A JSON schema is available for editor intelligence when editing the configuration file. Add the following line at the beginning of your config file:
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json"
Options
Options are parsed in a case-insensitive manner. For example, --logo-type and --LOGO-TYPE are treated identically.
Arguments in square brackets are optional. Optional boolean arguments default to 'true' when specified without a value.
For more detailed information about a specific option, use: fastfetch -h <option_name_without_dashes>
Any combination of options can be made permanent by generating a configuration file: fastfetch <options> --gen-config
Informative
-
-h, --help [command] -
Show this help message or help for a specific command
-
-v, --version -
Show the full Fastfetch version
-
--version-raw -
Show the raw version string (major.minor.patch)
-
--list-config-paths -
List search paths for config files
-
--list-data-paths -
List search paths for presets and logos
-
--list-logos -
List available logos
-
--list-modules -
List available modules
-
--list-presets -
List available presets
Presets can be loaded with "--config <preset-name>"
-
--list-features -
List the supported features that fastfetch was compiled with
Mainly for development
-
--print-logos -
Show available logos
-
--print-structure -
Show the default structure
-
--format enum -
Set the output format
-
-j, --json [bool] -
Enable or disable JSON output
Shortcut for `--format json`
-
--dynamic-interval num -
Keep Fastfetch running and refresh the output every <num> milliseconds
Set to 0 (default) to disable this behavior; does not work with --json
-
-w, --watch [num] -
Alias of dynamic-interval, but the value is in seconds instead of milliseconds. If no value is provided, it defaults to 1 second
Config
-
-c, --config config -
Specify the config file or preset to load
The file is searched in the order shown by "fastfetch --list-config-paths". Use "-" to read config from stdin, or "none" to disable further config loading. See also https://github.com/fastfetch-cli/fastfetch/wiki/Configuration for details
-
--gen-config [path] -
Interactively generate a config file at the specified path
Opens an interactive configuration UI when run in a terminal. Falls back to non-interactive generation when env-var `$NO_COLOR` is set or stdin/stdout is not a TTY. Defaults to "~/.config/fastfetch/config.jsonc". Prints the generated config if <path> is "-"
General
-
--thread [bool] -
Use separate threads for HTTP requests
-
--wmi-timeout num -
Set the timeout (ms) for WMI queries
Windows only
-
--processing-timeout num -
Set the timeout (ms) when waiting for child processes
-
--ds-force-drm [enum] -
Specify whether display detection should use DRM only
Use this option if you encounter problems with other detection methods.
Linux only
-
--detect-version [bool] -
Specify whether to detect and display versions for terminal, shell, editor, and others
Mainly for benchmarking
Logo
-
-l, --logo logo -
Set the logo source. Use "none" to disable logo output
Use either a built-in logo name or a path to an image file. See also https://github.com/fastfetch-cli/fastfetch/wiki/Logo-options
-
--logo-type enum -
Set the type of logo specified by "--logo"
See also https://github.com/fastfetch-cli/fastfetch/wiki/Logo-options
-
--logo-width num -
Set the width of the logo (in characters) if it is an image
Required for iTerm image protocol
-
--logo-height num -
Set the height of the logo (in characters) if it is an image
Required for iTerm image protocol
-
--logo-preserve-aspect-ratio [bool] -
Specify whether the logo should fill the specified width and height as much as possible without stretching
Supported by iTerm image protocol only
--logo-color-[1-9]color-
Override a color in the logo
See `-h color` for the list of available colors
-
--logo-padding num -
Set the padding on the left and right sides of the logo
-
--logo-padding-left num -
Set the padding on the left side of the logo
-
--logo-padding-right num -
Set the padding on the right side of the logo
-
--logo-padding-top num -
Set the padding at the top of the logo
-
--logo-padding-bottom num -
Set the padding at the bottom of the logo
Only used with "--logo-position top"
-
--logo-print-remaining [bool] -
Specify whether to print remaining logo lines when the logo is taller than the module list
-
--logo-position enum -
Set the display position of the logo
-
--logo-cache [enum] -
Specify how the image logo cache is used
See "--help logo-animation-frame" for the one case where a cached rendering can outlive the image type that produced it
-
--logo-animation-frame [num] -
Select which frame of an animated image logo to render
Animated kitty graphics only, and only if the image source is animated; 1 or higher renders that frame as a still image, 0 plays the animation
A selected frame is cached exactly like the first frame is, sharing its entries; the frame number is recorded next to them, so changing this option re-renders
That record is per cache directory, not per image type: switching --logo-type between two types that both have a cached rendering here, and asking for a different frame, can pair one type's rendering with the other's frame number
Run "--logo-cache regen" after such a switch
-
--file path -
Short for --logo-type file --logo <path>
See "--help logo-type" for more info
-
--file-raw path -
Short for --logo-type file-raw --logo <path>
See "--help logo-type" for more info
-
--data data -
Short for --logo-type data --logo <data>
See "--help logo-type" for more info
-
--data-raw data -
Short for --logo-type data-raw --logo <data>
See "--help logo-type" for more info
-
--raw path -
Short for --logo-type raw --logo <path>
See "--help logo-type" for more info
-
--sixel path -
Short for --logo-type sixel --logo <path>
See "--help logo-type" for more info
-
--kitty path -
Short for --logo-type kitty --logo <path>
See "--help logo-type" for more info
-
--kitty-direct path -
Short for --logo-type kitty-direct --logo <path>
See "--help logo-type" for more info
-
--kitty-icat path -
Short for --logo-type kitty-icat --logo <path>
See "--help logo-type" for more info
-
--iterm path -
Short for --logo-type iterm --logo <path>
See "--help logo-type" for more info
-
--chafa path -
Short for --logo-type chafa --logo <path>
See "--help logo-type" for more info
-
--chafa-fg-only [bool] -
Produce character-cell output using foreground colors only
See the Chafa documentation for details
-
--chafa-symbols str -
Specify character symbols to employ in final output
See the Chafa documentation for details
-
--chafa-canvas-mode enum -
Determine how colors are used in the output
This value maps to the integer value of enum ChafaCanvasMode. See the Chafa documentation for details
-
--chafa-color-space enum -
Set the color space used for quantization
This value maps to the integer value of enum ChafaColorSpace. See the Chafa documentation for details
-
--chafa-dither-mode enum -
Set the output dithering mode (no effect with 24-bit color)
This value maps to the integer value of enum ChafaDitherMode. See the Chafa documentation for details
Display
-
-s, --structure structure -
Set the structure of the fetch
Must be a colon-separated list of module keys. Use "fastfetch --list-modules" to see available options
-
--structure-disabled structure -
Disable specific modules in the structure
Must be a colon-separated list of keys
-
--stat [bool] -
Show execution time (ms) for individual modules
-
--pipe [bool] -
Disable colors
Auto-detected based on isatty(1) by default
-
--color color -
Set the color of both keys and title
Shortcut for "--color-keys <color>" and "--color-title <color>"
For color syntax, see <https://github.com/fastfetch-cli/fastfetch/wiki/Color-Format-Specification>
-
--color-keys color -
Set the color of the keys
Doesn't affect Title, Separator, and Colors modules. See `-h color` for the list of available colors
-
--color-title color -
Set the color of the title
See `-h color` for the list of available colors
-
--color-output color -
Set the color of module output
See `-h color` for the list of available colors
-
--color-separator color -
Set the color of the key-value separator
See `-h color` for the list of available colors
-
--duration-abbreviation [bool] -
Specify whether to abbreviate duration values
If true, output is shown as "1h 2m" instead of "1 hour, 2 mins"
-
--duration-space-before-unit enum -
Specify whether to put a space before the unit in duration values
-
--key-width num -
Align the width of keys to <num> characters
-
--key-padding-left num -
Set the left padding of keys to <num> characters
-
--key-type enum -
Specify whether to show an icon before string keys
-
--key-language [enum] -
Specify the language used for module keys
Leave empty for auto-detection based on the system locale. Unsupported locales fall back to English
-
--bright-color [bool] -
Specify whether keys, title, and ASCII logo should be printed in bright color
-
--separator str -
Set the separator between key and value
-
--show-errors [bool] -
Print errors when they occur
-
--disable-linewrap [bool] -
Specify whether to disable line wrap during execution
-
--hide-cursor [bool] -
Specify whether to hide the cursor during execution
-
--percent-type num -
Set the percentage output style
1 for percentage number
2 for multi-color bar
3 for both
6 for bar only
9 for colored number
10 for monochrome bar
-
--percent-ndigits num -
Set the number of decimal places to use when formatting percentages
-
--percent-color-green color -
Set color used for the green state of percentage bars and numbers
See `-h color` for the list of available colors
-
--percent-color-yellow color -
Set color used for the yellow state of percentage bars and numbers
See `-h color` for the list of available colors
-
--percent-color-red color -
Set color used for the red state of percentage bars and numbers
See `-h color` for the list of available colors
-
--percent-space-before-unit enum -
Specify whether to put a space before the percentage symbol
-
--percent-width num -
Specify the width of the percentage number, in characters
This option affects only percentage numbers, not bars
-
--bar-char-elapsed str -
Set the character used for the elapsed part of percentage bars
-
--bar-char-total str -
Set the character used for the total part of percentage bars
-
--bar-border-left string -
Set the string to use at the left border of percentage bars
-
--bar-border-right string -
Set the string to use at the right border of percentage bars
-
--bar-border-left-elapsed string -
If both bar-border-left-elapsed and bar-border-right-elapsed are set, the border is used as part of the bar content
-
--bar-border-right-elapsed string -
If both bar-border-left-elapsed and bar-border-right-elapsed are set, the border is used as part of the bar content
-
--bar-color-elapsed color -
Set the color used for the elapsed part of percentage bars
By default, this is auto-selected by percent-color-{green,yellow,red}
-
--bar-color-total color -
Set the color used for the total part of percentage bars
-
--bar-color-border color -
Set the color used for percentage bar borders
-
--bar-width num -
Set the width of percentage bars in characters
-
--no-buffer [bool] -
Specify whether stdout buffering should be disabled
-
--size-ndigits num -
Set the number of decimal places to use when formatting sizes
-
--size-binary-prefix enum -
Set the binary prefix to use when formatting sizes
-
--size-max-prefix enum -
Set the largest binary prefix to use when formatting sizes
-
--size-space-before-unit enum -
Specify whether to put a space before the unit
-
--freq-ndigits num -
Set the number of decimal places to use when printing CPU/GPU frequency in GHz
-
--freq-space-before-unit enum -
Specify whether to put a space before the unit
-
--fraction-ndigits num -
Set the number of decimal places to use when printing fractional values
If negative, the number of digits will be automatically determined based on the value
-
--fraction-trailing-zeros enum -
Set when to keep trailing zeros
-
--temp-unit enum -
Set the temperature unit
-
--temp-ndigits num -
Set the number of decimal places to use when printing temperatures
-
--temp-color-green color -
Set color used for the green state of temperature values
See `-h color` for the list of available colors
-
--temp-color-yellow color -
Set color used for the yellow state of temperature values
See `-h color` for the list of available colors
-
--temp-color-red color -
Set color used for the red state of temperature values
See `-h color` for the list of available colors
-
--temp-space-before-unit enum -
Specify whether to put a space before the unit
Examples
Basic Usage
fastfetch
Use a specific logo
fastfetch --logo arch
Custom structure
fastfetch --structure title:os:kernel:uptime:memory
Generate a config file
fastfetch --gen-config
Use a preset
fastfetch --config neofetch
Config File Example
// ~/.config/fastfetch/config.jsonc
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "auto",
"source": "arch"
},
"display": {
"separator": ": ",
"color": {
"keys": "blue",
"title": "red"
},
"key": {
"width": 12
}
},
"modules": [
"title",
"separator",
"os",
"kernel",
"uptime",
{
"type": "memory",
"format": "{used}/{total} ({used_percent}%)"
}
]
}
Releases
2 releases since Debian 13 (Trixie); the text changed 1 time.
--bar-border-left-elapsed since Arch Linux 2026-11-01;
--bar-border-right-elapsed since Arch Linux 2026-11-01;
--bar-color-border since Arch Linux 2026-11-01;
--bar-color-elapsed since Arch Linux 2026-11-01;
--bar-color-total since Arch Linux 2026-11-01;
--duration-abbreviation since Arch Linux 2026-11-01;
--duration-space-before-unit since Arch Linux 2026-11-01;
--dynamic-interval since Arch Linux 2026-11-01;
--fraction-ndigits since Arch Linux 2026-11-01;
--fraction-trailing-zeros since Arch Linux 2026-11-01;
--freq-space-before-unit since Arch Linux 2026-11-01;
--json since Arch Linux 2026-11-01;
--key-language since Arch Linux 2026-11-01;
--logo-animation-frame since Arch Linux 2026-11-01;
--logo-cache since Arch Linux 2026-11-01;
--logo-padding-bottom since Arch Linux 2026-11-01;
--percent-space-before-unit since Arch Linux 2026-11-01;
--percent-width since Arch Linux 2026-11-01;
--size-space-before-unit since Arch Linux 2026-11-01;
--structure-disabled since Arch Linux 2026-11-01;
--temp-space-before-unit since Arch Linux 2026-11-01;
--watch since Arch Linux 2026-11-01;
-j since Arch Linux 2026-11-01;
-w since Arch Linux 2026-11-01.
--battery-temp until Debian 13 (Trixie);
--battery-use-setup-api until Debian 13 (Trixie);
--bluetooth-show-disconnected until Debian 13 (Trixie);
--brightness-compact until Debian 13 (Trixie);
--brightness-ddcci-sleep until Debian 13 (Trixie);
--colors-block-range-end until Debian 13 (Trixie);
--colors-block-range-start until Debian 13 (Trixie);
--colors-block-width until Debian 13 (Trixie);
--colors-padding-left until Debian 13 (Trixie);
--colors-symbol until Debian 13 (Trixie);
--command-key until Debian 13 (Trixie);
--command-param until Debian 13 (Trixie);
--command-shell until Debian 13 (Trixie);
--command-text until Debian 13 (Trixie);
--cpu-show-pe-core-count until Debian 13 (Trixie);
--cpu-temp until Debian 13 (Trixie);
--cpucache-compact until Debian 13 (Trixie);
--cpuusage-separate until Debian 13 (Trixie);
--cpuusage-wait-time until Debian 13 (Trixie);
--de-slow-version-detection until Debian 13 (Trixie);
--disk-folders until Debian 13 (Trixie);
--disk-show-external until Debian 13 (Trixie);
--disk-show-hidden until Debian 13 (Trixie);
--disk-show-readonly until Debian 13 (Trixie);
--disk-show-regular until Debian 13 (Trixie);
--disk-show-subvolumes until Debian 13 (Trixie);
--disk-show-unknown until Debian 13 (Trixie);
--disk-use-available until Debian 13 (Trixie);
--diskio-detect-total until Debian 13 (Trixie);
--diskio-name-prefix until Debian 13 (Trixie);
--diskio-wait-time until Debian 13 (Trixie);
--display-compact-type until Debian 13 (Trixie);
--display-order until Debian 13 (Trixie);
--display-precise-refresh-rate until Debian 13 (Trixie);
--dns-show-type until Debian 13 (Trixie);
--gen-config-force until Debian 13 (Trixie);
--gpu-detection-method until Debian 13 (Trixie);
--gpu-driver-specific until Debian 13 (Trixie);
--gpu-hide-type until Debian 13 (Trixie);
--gpu-temp until Debian 13 (Trixie);
--loadavg-compact until Debian 13 (Trixie);
--loadavg-ndigits until Debian 13 (Trixie);
--localip-compact until Debian 13 (Trixie);
--localip-default-route-only until Debian 13 (Trixie);
--localip-name-prefix until Debian 13 (Trixie);
--localip-show-all-ips until Debian 13 (Trixie);
--localip-show-flags until Debian 13 (Trixie);
--localip-show-ipv4 until Debian 13 (Trixie);
--localip-show-ipv6 until Debian 13 (Trixie);
--localip-show-loop until Debian 13 (Trixie);
--localip-show-mac until Debian 13 (Trixie);
--localip-show-mtu until Debian 13 (Trixie);
--localip-show-prefix-len until Debian 13 (Trixie);
--localip-show-speed until Debian 13 (Trixie);
--logo-recache until Debian 13 (Trixie);
--netio-default-route-only until Debian 13 (Trixie);
--netio-detect-total until Debian 13 (Trixie);
--netio-name-prefix until Debian 13 (Trixie);
--netio-wait-time until Debian 13 (Trixie);
--opengl-library until Debian 13 (Trixie);
--packages-disabled until Debian 13 (Trixie);
--physicaldisk-name-prefix until Debian 13 (Trixie);
--physicaldisk-temp until Debian 13 (Trixie);
--player-name until Debian 13 (Trixie);
--publicip-ipv6 until Debian 13 (Trixie);
--publicip-timeout until Debian 13 (Trixie);
--publicip-url until Debian 13 (Trixie);
--separator-length until Debian 13 (Trixie);
--separator-output-color until Debian 13 (Trixie);
--separator-string until Debian 13 (Trixie);
--sound-type until Debian 13 (Trixie);
--title-color-at until Debian 13 (Trixie);
--title-color-host until Debian 13 (Trixie);
--title-color-user until Debian 13 (Trixie);
--title-fqdn until Debian 13 (Trixie);
--users-compact until Debian 13 (Trixie);
--users-myself-only until Debian 13 (Trixie);
--weather-location until Debian 13 (Trixie);
--weather-output-format until Debian 13 (Trixie);
--weather-timeout until Debian 13 (Trixie);
--wm-detect-plugin until Debian 13 (Trixie).