Command-line System Information Tool

Overview

logo

crate downloads license ci publish

A blazingly fast system fetch program to pair with onefetch


preview

View the complete ascii art collection at punfetch.dev


Installation

Install from crates.io

cargo install punfetch

Build from source

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

Usage

CLI

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

Usage: punfetch [OPTIONS]

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

Library

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

Makefile

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

Contributing

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
    ansi:
      - 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.

Honorable mentions

@o2sh @spenserblack for creating onefetch

Contributors ❤️

contrib.rocks

(contrib.rocks)

You might also like...
A system clipboard command line tools which inspired by pbcopy & pbpaste but better to use.

rclip A command line tool which supports copy a file contents to the system clipboard or copy the contents of the system clipboard to a file. Install

Command-line HTTP client for sending a POST request to specified URI on each stdin line.

line2httppost Simple tool to read lines from stdin and post each line as separate POST request to a specified URL (TCP connection is reused though). G

Sniffer - a tool to quickly inspect csv and flat-file files for basic information
Sniffer - a tool to quickly inspect csv and flat-file files for basic information

sniffer sniffer is a tool to quickly inspect csv and flat-file files for basic information. Need to see how many rows are in a csv file? Want to see t

Web-based tool that allows browsing and comparing symbol and type information of Microsoft Windows binaries across different versions of the OS.
Web-based tool that allows browsing and comparing symbol and type information of Microsoft Windows binaries across different versions of the OS.

WinDiff About WinDiff is an open-source web-based tool that allows browsing and comparing symbol and type information of Microsoft Windows binaries ac

rip is a command-line deletion tool focused on safety, ergonomics, and performance

rip (Rm ImProved) rip is a command-line deletion tool focused on safety, ergonomics, and performance. It favors a simple interface, and does not imple

A command-line benchmarking tool
A command-line benchmarking tool

hyperfine 中文 A command-line benchmarking tool. Demo: Benchmarking fd and find: Features Statistical analysis across multiple runs. Support for arbitra

An interactive cheatsheet tool for the command-line
An interactive cheatsheet tool for the command-line

navi An interactive cheatsheet tool for the command-line. navi allows you to browse through cheatsheets (that you may write yourself or download from

Coinlive is an interactive command line tool that displays live cryptocurrency prices.
Coinlive is an interactive command line tool that displays live cryptocurrency prices.

Coinlive is an interactive command line tool that displays live cryptocurrency prices. It can also display simple historical price charts.

verilot (verifiable lottery) is a command line tool for running and verifying one-time lotteries.

verilot verilot (verifiable lottery) is a command line tool for running and verifying one-time lotteries. Install Install Rust and Cargo with Rustup.

Comments
  • feat: generic lib, onefetch_ascii + colors, clap_derive, rust docs

    feat: generic lib, onefetch_ascii + colors, clap_derive, rust docs

    • Kickoff the colors!
    • Integrate onefetch_ascii
    • Separate bin+info dependencies
    • Generic library for custom fetch bins
      • Printer accepting anything implementing
      • Render trait and derive macro
      • Example custom fetch
    • Docs docs docs
    • Expand tests
    opened by ozwaldorf 0
  • Make punfetch work on MacOS

    Make punfetch work on MacOS

    Dear Maintainer,

    It is with great pleasure to write to you about this project. I am sure you are already aware of the changes contained within this humble pull request as we discussed on Discord.

    May this useful tool find its place in /usr/bin of every kind machine.

    Sincerely,

    opened by qti3e 0
  • task: get onefetch recognition or start a convo on migrating features

    task: get onefetch recognition or start a convo on migrating features

    The goal is to become at least an honorable mention on onefetch, or even better; to start a conversation on adding a system info feature-set to onefetch itself!

    cc @o2sh

    opened by ozwaldorf 0
Releases(0.3.5)
  • 0.3.5(Jan 21, 2023)

  • 0.3.4(Jan 20, 2023)

    logo

    What's Changed

    • feat: patch for onefetch/docs/vercel + github pages by @ozwaldorf in https://github.com/ozwaldorf/punfetch/pull/11
    • feat: https://punfetch.dev

    Full Changelog: https://github.com/ozwaldorf/punfetch/compare/0.3.3...0.3.4

    Source code(tar.gz)
    Source code(zip)
  • 0.3.3(Jan 20, 2023)

    logo
    • chore: update screenshot, minor ColorBar fix
    • chore: rename renderer -> printer for bin.rs and example.rs

    Full Changelog: https://github.com/ozwaldorf/punfetch/compare/0.3.0...0.3.3

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Jan 20, 2023)

    logo

    What's Changed

    • docs: contributing a new distro by @ozwaldorf in https://github.com/ozwaldorf/punfetch/pull/9
    • feat: generic lib, onefetch_ascii + colors, clap_derive, rust docs by @ozwaldorf in https://github.com/ozwaldorf/punfetch/pull/10
      • Kickoff the colors!
      • Integrate onefetch_ascii
      • Separate bin+info dependencies
      • Generic library for custom fetch bins
        • Printer accepting anything implementing
        • Render trait and derive macro
        • Example custom fetch
      • Docs docs docs
      • Expand tests

    Full Changelog: https://github.com/ozwaldorf/punfetch/compare/0.2.0...0.3.0

    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Jan 15, 2023)

  • 0.1.11(Jan 9, 2023)

  • 0.1.10(Jan 9, 2023)

  • 0.1.7(Jan 8, 2023)

  • 0.1.6(Jan 8, 2023)

  • 0.1.5(Jan 8, 2023)

  • 0.1.4(Jan 8, 2023)

  • 0.1.1(Jan 8, 2023)

Small command-line tool to switch monitor inputs from command line

swmon Small command-line tool to switch monitor inputs from command line Installation git clone https://github.com/cr1901/swmon cargo install --path .

William D. Jones 5 Aug 20, 2022
⚡ An extremely fast cross-compatible system information tool.

Lightfetch A extremely fast command-line system information tool written in Rust ⚡ . Gallery Sadly there isn't much to showcase right now. Download Av

bwtecode 2 Sep 12, 2022
⚡ An extremely fast cross-compatible system information tool.

Lightfetch A extremely fast command-line system information tool written in Rust ⚡ . Gallery Sadly there isn't much to showcase right now. Download Av

bwtecode 2 Sep 12, 2022
Command-line tool designed to simplify the process of managing multiple .NET SDK versions on your system

.NET Version Manager (dver) Overview dver is a command-line tool designed to simplify the process of managing multiple .NET SDK versions on your syste

Sergio Triana Escobedo 5 Aug 23, 2024
Pink is a command-line tool inspired by the Unix man command.

Pink is a command-line tool inspired by the Unix man command. It displays custom-formatted text pages in the terminal using a subset of HTML-like tags.

null 3 Nov 2, 2023
Macchina - A system information frontend, with an (unhealthy) emphasis on performance.

macchina Fast, minimal and customizable system information frontend. Linux • macOS • Windows • NetBSD • FreeBSD • OpenWrt • Android About macchina let

Macchina CLI 682 Jan 5, 2023
skyfetch ☁️ a system information fetch written in rust

skyfetch ☁️ a system information fetch written in rust requirements cargo install with curl

leo. 31 Dec 15, 2022
Cross-platform GameMaker extension for getting system information and resource usage

GM Sysinfo Cross-platform GameMaker extension for getting system information and resource usage Table of Contents Table of Contents Examples Display m

SpikeHD 3 Dec 1, 2023
A command line tool written in Rust and designed to be a modern build tool + package manager for C/C++ projects.

CCake CCake is a command line tool written in Rust and designed to be a modern build tool + package manager for C/C++ projects. Goals To be easily und

Boston Vanseghi 4 Oct 24, 2022
Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're working with files or directories, this tool simplifies common file operations with ease.

Rust FileOps Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're w

Harikesh Ranjan Sinha 5 May 2, 2024