Navigate:
All Reposfastfetch
~$FASTFE0.3%

Fastfetch: Neofetch-like system information tool

High-performance CLI system information display written in C.

LIVE RANKINGS • 06:51 AM • STEADY
TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50TOP 50
OVERALL
#40
9
DEVELOPER TOOLS
#8
3
30 DAY RANKING TREND
ovr#40
·Devel#8
STARS
19.2K
FORKS
649
DOWNLOADS
11
7D STARS
+58
7D FORKS
+4
See Repo:
Share:

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.

fastfetch

1

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.

2

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.

3

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;
}

v2.55.0

Commands now execute in parallel by default for faster performance; set `"parallel": false` in config if scripts break.

  • Add `--dynamic-interval <ms>` flag to enable auto-refresh output (Display and Media modules excluded).
  • Use media cover art as logo source with `--<image-protocol> media-cover` or `"source": "media-cover"` in JSON config.
v2.54.0

Windows binaries now signed by SignPath; new CMake option `-DENABLE_WORDEXP` defaults ON but can be disabled for security.

  • Set `-DENABLE_WORDEXP=OFF` in CMake to use `glob(3)` instead of `wordexp(3)` for logo paths if security is a concern.
  • Use `--json` or `-j` flag as shortcut for JSON output; glob patterns now work in `Disk.hideFolders` config.
v2.53.0

Renames Separator JSON property `length` to `times` (breaking change); adds experimental glibc 2.17 polyfilled binaries for RHEL/CentOS 7.

  • Update JSON configs: replace `"length"` with `"times"` in Separator module definitions to avoid breakage.
  • Use polyfilled binaries only on ancient distros (glibc <2.17); standard builds remain preferred and officially supported.

See how people are using fastfetch

Loading tweets...


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers