Fastfetch: Neofetch-like system information tool
High-performance CLI system information display written in C.
Learn more about Fastfetch
Fastfetch is a command-line system information tool written in C that queries and displays hardware and software configuration details similar to Neofetch but with significantly faster execution times. The tool works by directly interfacing with operating system APIs and reading system files to collect data about components including CPU, GPU, memory, kernel version, desktop environment, and various other system attributes. It supports extensive customization through configuration files and command-line flags that control which modules are displayed, how data is formatted using template strings with positional placeholders, and how the ASCII logo and color scheme are rendered. The architecture prioritizes minimal dependencies and efficient system calls to achieve sub-millisecond execution on most platforms, making it suitable for shell prompts and frequent invocations. Cross-platform compatibility is achieved through platform-specific detection code paths that handle differences between Linux, macOS, Windows, and BSD systems.
C-based implementation
Written primarily in C rather than shell scripts, allowing for direct system calls and reduced interpreter overhead. This architectural choice affects startup time and resource consumption compared to script-based alternatives.
Multi-platform support
Supports a broad range of operating systems including Linux distributions, macOS, Windows 7 and later, BSD variants (FreeBSD, OpenBSD, NetBSD, DragonFly), Android, Haiku, and SunOS. Platform-specific code paths handle differences in system information retrieval across these environments.
Configuration-driven output
Provides preset configuration files that control which system information is displayed and how it is formatted. Users can customize the tool's behavior through configuration files rather than command-line flags alone, enabling complex display layouts.
#include <fastfetch/fastfetch.h>
int main() {
FFdata data;
ffInitData(&data);
// Get CPU information
FFCPUResult cpu;
ffDetectCPU(&data, &cpu);
printf("CPU: %s\n", cpu.name.chars);
ffCleanupData(&data);
return 0;
}Fixes compatibility issues with KDE Plasma 6.6 and removes slow version detection option
- –The de.slowVersionDetection option has been removed. Slow version detection is now always enabled, as required on non-FHS-compliant distros
- –One can still disable the version detection feature with general.detectVersion: false
- –Adds the --structure-disabled <modules...> command-line flag to temporarily disable module structure printing
- –Supports chassis type detection on Linux ARM devices when reported via the device tree
Focuses on compilation fixes across platforms and minor performance improvements
- –Tiny performance improvements (Windows)
- –Improves the reliability of hostname retrieval (Title, Windows)
- –Fixes potential compilation issues on Linux
- –Fixes compilation errors on macOS when building with older SDKs
- –Fixes compilation issues when building with -DENABLESYSTEMYYJSON=ON
Adds COSMIC DE support and various terminal detection improvements
- –The ENABLEWIN7COMPAT CMake option and the -win7 variant binaries are planned to be removed in 2.60.0
- –Supports COSMIC DE version detection
- –Supports niri version detection
- –Supports cosmic-term version and terminal font detection
- –Supports urxvt font detection
Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
n
A command-line utility for installing, switching between, and managing multiple Node.js versions on Unix-like systems.
ExcelJS
Parse, modify, and generate XLSX files in Node.js.
Bubble Tea
Go framework for terminal user interfaces based on The Elm Architecture with inline/fullscreen modes.
Mamba
Fast C++ reimplementation of conda with parallel downloading and improved dependency solving performance.
VVV
Vagrant configuration creating local development environments for WordPress development.