#system #fetch #cli

app macchina

A system information fetcher, with an emphasis on performance and minimalism

55 releases (6 breaking)

new 0.7.0 Apr 20, 2021
0.6.2 Mar 23, 2021

#185 in Command line utilities

Download history 80/week @ 2021-02-02 139/week @ 2021-02-09 285/week @ 2021-02-16 132/week @ 2021-02-23 214/week @ 2021-03-02 235/week @ 2021-03-09 137/week @ 2021-03-16 211/week @ 2021-03-23 170/week @ 2021-03-30 248/week @ 2021-04-06 285/week @ 2021-04-13

712 downloads per month

MIT license

88KB
2K SLoC

Macchina preview image

Crates.io Crates.io Say Thanks


About Macchina

Macchina is a fetching program. If you're interested in the library, check out libmacchina.

It lets you view basic system information, like your hostname, kernel, uptime, memory usage, and much more. It provides you with convenient features and extensive customization options but doesn't lose sight of its two main priorities, minimalism and performance.

If you're ricing your desktop and would like a program to display your system information, or you want it to load as soon as you open your terminal, like I do, then Macchina has you covered.


Minimalism

Macchina first started as a barebones fetcher, but has evolved to incorporate the many aspects people love to see in their fetcher. This evolution however did not discard the minimalistic look that I envisioned for Macchina.

Here's what you can make it look like using the various supported flags.

macchina -c white --no-box --no-ascii --no-separator --no-bar-delimiter --bar

Minimal Output Preview


Performance

Macchina is pretty fast, see for yourself!

🐧 Linux

Command Mean [ms] Min [ms] Max [ms] Relative
macchina 10.0 ± 0.5 7.0 10.8 1.00
neofetch 214.9 ± 1.4 213.0 216.6 21.39 ± 1.01

macchina runs 21.39 ± 1.01 times faster than neofetch

👩🏽‍💻 macOS

Command Mean [ms] Min [ms] Max [ms] Relative
macchina 5.0 ± 0.2 4.7 5.9 1.00
neofetch 484.5 ± 4.3 477.2 492.3 97.10 ± 3.84

macchina runs 97.10 ± 3.84 times faster than neofetch

🚩 NetBSD

Command Mean [ms] Min [ms] Max [ms] Relative
macchina 23.0 ± 2.5 21.2 32.0 1.00
neofetch 275.9 ± 11.3 267.4 296.0 12.00 ± 1.38

macchina runs 12.00 ± 1.38 times faster than neofetch

💻 Windows

Command Mean [ms] Min [ms] Max [ms] Relative
macchina 9.0 ± 0.4 8.2 11.7 1.00
neofetch 2207.7 ± 53.8 2127.1 2325.9 244.38 ± 13.43

macchina runs 244.38 ± 13.43 times faster than neofetch


Features

Themes

The themes wiki page contains a list of all the built-in themes that you can switch between using the --theme flag.

Theme preview

Bars

Bars provide a way to visualize data, and each theme styles them differently. They can be enabled using the --bar flag.

Preview of bar argument

What it fetches

  • Host
    • Username
    • Hostname
  • Product
  • Kernel
  • Distribution
  • Operating System
  • Desktop Environment
  • Window Manager
  • Package Count [1]
  • Terminal
  • Shell
  • Uptime
  • Processor
    • Model
    • Logical Cores
  • Local IP Address
  • Processor Usage
  • Memory Usage
  • Battery
    • Percentage
    • Status
  • Palette

Meet Doctor

Macchina comes with a very special flag, allowing you analyze which elements failed to fetch, and why. It can differentiate between errors, and warnings, and its comprehensive output should help you understand where the issue is coming from.

macchina --doctor

Doctor flag preview


Usage

Macchina comes packed with arguments that let you customize its behavior and styling.

The usage wiki page can tell you all about them and how they work.


Dependencies

🐧 Linux:

  • wmctrl
  • Gentoo Only: portage-utils

🚩 NetBSD:

  • wmctrl

The dependencies wiki page explains why these dependencies exist.


Installation

  • Install it using cargo:
cargo install macchina

Macchina's installation wiki page lists other ways you can install the program. You might also prefer running the prebuilt binary that corresponds with your operating system.


Platform Support

Platform Support
GNU/Linux Yes
NetBSD Yes
macOS Yes
Windows 80%
OpenWrt Yes
Android Yes

🌍 Contributors

Crates.io

Macchina, like many other open-source projects, would not be where it is right now without the help of its contributors, thank you all so much!

  • Support for NetBSD would not have been possible without the help and testing of NetBSD/pkgsrc package maintainer pin
  • Support for macOS and Windows would not have been possible without the help, testing and major contributions of 123marvin123
  • Support for OpenWrt and Android was made possible through the contributions of uttarayan21

Dependencies

~3–6MB
~96K SLoC