A tiny, fast, extremely configurable system fetch tool. It's able to render images in terminals that support them (kitty, ghostty, Konsole, iTerm2, WezTerm) and falls back to colored half-blocks or an ascii ramp everywhere else.
__ _ addison@niko
o'')}____// ------------
`_/ ) OS Ultramarine Linux 44 (GNOME Edition) x86_64
(_(_/-(_/ DE GNOME (wayland)
woof! Uptime 3 hours, 3 mins
CPU AMD Ryzen 7 9700X (16) @ 5.58 GHz
GPU Intel Arc B580
RAM 9.4 GiB / 30.5 GiB (30%)
Disk (/) 63.4 GiB / 1.8 TiB (3%)
go install github.com/addidotlol/puppyfetch@latestSingle static binary, zero runtime dependencies.
puppyfetch # builtin puppy + default modules
puppyfetch --image ~/dog.png # your own image
puppyfetch --protocol blocks # force a render mode
puppyfetch --no-image # info only
puppyfetch --write-config # drop a commented config to editConfig lives at ~/.config/puppyfetch/config.kdl (KDL).
Run puppyfetch --write-config to generate a fully commented starter file.
image {
path "~/.config/puppyfetch/puppy.png" // png/jpg/gif/webp, or ansi-art .txt
protocol "auto" // auto | kitty | iterm | blocks | ascii | none
width 32 // in terminal cells
padding 3
}
style {
key-color "magenta" // named, 256-index ("141"), or hex ("#ff87d7")
separator " "
bold-keys true
}
// Reorder, remove, repeat, or restyle any module.
// All modules accept label= icon= key-color= format=
modules {
title
separator
os // {name} {arch}
de // {name}
uptime format="{days}d {hours}h" // {pretty} {days} {hours} {minutes}
cpu // {model} {count} {freq}
gpu // one line per GPU
ram // {used} {total} {free} {percent}
storage "/" "/home" // default: all real disks
custom "Song" command="playerctl metadata title"
blank
colors blocks="16"
}Extra modules: kernel, host, shell, terminal.
NO_COLOR is respected.