Fastfetch is a neofetch-like tool for fetching system information and displaying them in a pretty way. It is written mainly in C, with performance and customizability in mind. Currently, Linux, Android, FreeBSD, macOS, SunOS and Windows 7+ are supported.
There are screenshots on different platforms
Some distros packaged an outdated fastfetch version. Older version is not supported, please always ensure that the latest version is used.
- Ubuntu:
ppa:zhangsongcui3371/fastfetch
(for Ubuntu 22.04 or newer) - Debian:
sudo apt install fastfetch
(for Debian 13 or newer) - Debian / Ubuntu: Download
fastfetch-linux-<proper architecture>.deb
from Github release page and double-click it (for Ubuntu 20.04 or newer and Debian 11 or newer). - Arch Linux:
sudo pacman -S fastfetch
- Fedora:
sudo dnf install fastfetch
- Gentoo:
sudo emerge --ask app-misc/fastfetch
- Alpine:
apk add --upgrade fastfetch
- NixOS:
nix-shell -p fastfetch
- openSUSE:
sudo zypper install fastfetch
- ALT Linux:
sudo apt-get install fastfetch
Replace sudo with doas depending on what you use.
See also if fastfetch has been packaged for your favorite Linux distro.
If fastfetch is not packaged for your distro or an outdated version is packaged, linuxbrew is a good alternative: brew install fastfetch
- scoop:
scoop install fastfetch
- winget:
winget install fastfetch
- MSYS2 MinGW:
pacman -S mingw-w64-<subsystem>-<arch>-fastfetch
You may also download it directly from GitHub releases page and extract the archive.
pkg install fastfetch
pkg install fastfetch
See Wiki: https://github.com/fastfetch-cli/fastfetch/wiki/Building
- Run it with default configuration:
fastfetch
- Run it with all supported modules and find what you interest:
fastfetch -c all.jsonc
- Find all data that fastfetch detects:
fastfetch -s <module> --format json
- Display help messages:
fastfetch --help
- Generate config file based on command line arguments:
fastfetch --arg1 --arg2 --gen-config
Fastfetch uses the JSONC (or JSON with comments) for configuration. See Wiki for detail. There are some premade config files in presets
, including the ones used for the screenshots above. You can load them using -c <filename>
. They may also serve as a good example for format arguments.
Logos can be heavily customized too; see the logo documentation for more information.
- DEB / RPM package:
cmake --build . --target package
- Install directly:
cmake --install . --prefix /usr/local
- Fastfetch is actively maintained.
- Fastfetch is faster. As the name suggests.
- Fastfetch is more feature-rich. By default fastfetch only has a few modules enabled. Use
fastfetch -c all
to find what you want. - Fastfetch is more configurable. You can find more information in the Wiki: https://github.com/fastfetch-cli/fastfetch/wiki/Configuration
- Fastfetch is more polished. For example, neofetch prints
555MiB
inMemory
module and23G
inDisk
module (notibily the difference ofMiB
andG
), while fastfetch prints555.00 MiB
and22.97 GiB
respectively. - Fastfetch is more accurate. For example, neofetch never actually supports Wayland protocol.
A local IP (10.x.x.x, 172.x.x.x, 192.168.x.x) has nothing to do with privacy. It only makes sense if you are on the same network, for example, if you connect to the same Wi-Fi network.
Actually the Local IP
module is the most useful module for me personally. I (@CarterLi) have several VMs installed to test fastfetch and often need to SSH into them. I have fastfetch running on shell startup and I never need to type ip addr
manually.
If you really don't like it, you can disable the Local IP
module in config.jsonc
.
Fastfetch
don't generate config file automatically. You can use fastfetch --gen-config
to generate one. The config file will be saved in ~/.config/fastfetch/config.jsonc
by default. See Wiki for detail.
Fastfetch uses JSON (with comments) for configuration. I suggest you use an IDE with JSON schema support (like VSCode) to edit it.
Alternatively, you can refer to the presets in presets
directory.
Here is the documentation. It is generated from JSON schema but you won't like it.
Fastfetch uses format
to generate output. For example to make GPU
module show GPU name only and ignore other information, you can use
{
"modules": [
{
"type": "gpu",
"format": "{2}" // See `fastfetch -h gpu-format` for detail
}
]
}
which is equivalent to fastfetch -s gpu --gpu-format '{2}'
See fastfetch -h format
for basic usage. For module specific formattion, see fastfetch -h <module>-format
Try fastfetch -l /path/to/logo
. See logo documentation for detail.
If you just want to display distro name in FIGlet text
# install pyfiglet and jq first
pyfiglet -s -f small_slant $(fastfetch -s os --format json | jq -r '.[0].result.name') && fastfetch -l none
This issue usually happens when using fastfetch with p10k
. There are known incompatibility between fastfetch and p10k instant prompt.
The p10k doc clearly states that you should NOT print anything to stdout after p10k-instant-prompt
is initialized. You should either put fastfetch
before initialization of p10k-instant-prompt
(recommended)
You can always use fastfetch --pipe false
to force fastfetch running in colorful mode.
Fastfetch is a system information tool. We only accept hardware or system level software feature requests. For most personal uses, I recommend using Command
module to detect it yourself, which can be used to grab output from a custom shell script:
// This module shows the default editor
{
"modules": [
{
"type": "command",
"text": "$EDITOR --version | head -1",
"key": "Editor"
}
]
}
Otherwise, open a feature request in GitHub Issues.
- For usage questions, please start a discussion in GitHub Discussions.
- For possible bugs, please open an issue in GitHub Issues. Be sure to fill the bug-report template carefully for developers to investigate.
Give it a star to support us!