A fast, modular system information tool written in C with a configuration-driven module pipeline.
btwfetch is a lightweight system information utility designed around:
- minimal runtime overhead
- modular detection system
- config-driven module selection and ordering
- direct Linux interface usage (
/proc,/sys,getenv,uname)
Only modules listed in the configuration file are executed.
- High performance (low syscall overhead)
- Zero unnecessary module execution
- Deterministic output ordering via config
- Simple, hackable C codebase
- No external runtime dependencies beyond glibc
- Module system: function registry mapping string → detector function
- Config parser: reads ordered module list
- Common buffer system: single output buffer to reduce syscalls
- Detection modules: isolated system information collectors
Default config location: project-root/config/default.conf
tar -xzf btwfetch-current-version.tar.gz
cd btwfetch-current-version
make
mkdir -p ~/.local/bin
cp btwfetch ~/.local/bin/
chmod +x ~/.local/bin/btwfetchif you use fish:
set -U fish_user_paths $HOME/.local/bin $fish_user_pathsif not:
export PATH="$HOME/.local/bin:$PATH"======= config/default.conf
user os kernel uptime shell terminal de wm theme icons resolution cpu cpu_usage ram memory_usage gpu packages disk battery network locale
- GCC or Clang
- Linux system headers (glibc assumed)
make./btwfetch- Linux-only
- partial module implementation
- no caching yet
- no async execution yet
- no ascii art yet
This project is licensed under the BSD 3-Clause License.
Copyright (c) 2026 mattsva
See the LICENSE file for full details.
