#fetch #system #cli #terminal #onefetch

bin+lib punfetch

A blazingly fast system fetch program to pair with onefetch

19 releases

0.3.6 Mar 7, 2023
0.3.5 Jan 21, 2023
0.2.0 Jan 15, 2023
0.1.11 Jan 9, 2023

#573 in Command line utilities

36 downloads per month

MIT license

812 lines


crate downloads license ci publish

A blazingly fast system fetch program to pair with onefetch


View the complete ascii art collection at punfetch.dev


Install from crates.io

cargo install punfetch

Build from source

git clone https://github.com/ozwaldorf/punfetch.git
cd punfetch
make install



$ punfetch -h
A blazingly fast system fetch program to pair with onefetch.

Usage: punfetch [OPTIONS]

      --distro <DISTRO>    Distribution to search art for (e.g. "Manjaro" or "Ubuntu")
  -i, --image <IMAGE>      Image to display in place of the distro art
      --show-logo <WHEN>   Show the logo [default: always] [possible values: always, never, auto]
      --color-mode <MODE>  Color mode to use [default: hex] [possible values: hex, ansi, none]
      --color <COLOR>      Text color to use. Accepts ansi or hex color codes
  -h, --help               Print help
  -V, --version            Print version


Punfetch is also a library to implement your own custom system fetchers! See the docs for more information and examples.


Developing on the crate:

make clean       # Clean the project
make build       # Build the project
make run         # Run the project
make install     # Install the project
make test        # Run tests
make lint        # Run linter
make fmt         # Run formatter
make ci          # Precommit CI checks

Developing on punfetch.dev:

make init-pages   # Initialize pages
make patch-pages  # Patch vercel pages
make save-pages   # Save the diff patch
make dev          # Run the pages locally


This project follows conventional commits

⚠️ Over 200 distributions are already supported, but many do not have colors defined. If your distro is not colored, please open a PR to update it!

Adding a new distribution

New distributions can easily be supported by adding a new entry to the distros.yaml file

"Examplo Linux":
  regex: "(examplo|examplo_old)" # Optional, regex to match against. Autogenerated if not provided.
  colors: # Optional, default fg will be used if not specified
      - white # The first color is used for the info text
      # - bright_green
      # - magenta
      # - etc,
    hex: # Optional, ansi colors will be used if not specified
      - "#ffffff"
  ascii: | # The ascii art to display!
    {0}         _nnnn_
    {0}        dGGGGMMb
    {0}       @p~qp~~qMb
    {0}       M|@||@) M|
    {0}       @,----.JM|
    {0}      JS^\__/  qKL
    {0}     dZP        qKRb
    {0}    dZP          qKKb
    {0}   fZP            SMMb
    {0}   HZM            MMMM
    {0}   FqM            MMMM
    {0} __| ".        |\dS"qML
    {0} |    `.       | `' \Zq
    {0}_)      \.___.,|     .'
    {0}\____   )MMMMMP|   .'
    {0}     `-'       `--'

If there are multiple patterns that could be used to identify the distribution, or the title of the distribution is lengthy, a regex should be provided. Patterns should be simple, lowercase, and A-z, 0-9 only.


~243K SLoC