Macchina

Fast, minimal and customizable system information frontend. Linux • macOS • Windows • NetBSD • OpenWrt • Android Preview Version Downloads

Table of Contents


About

macchina lets you view system information, like your kernel version, uptime, memory usage, processor load and much more.

If you're interested in the library macchina uses to fetch system information, have a look at libmacchina; fetching-related issues should be filed on that repository.


Performance

macchina is lightning fast, see for yourself:

🐧 Linux

This benchmark was performed using an Intel® Core™ i5-3350P CPU @ 3.10GHz

| Command | Mean [ms] | Min [ms] | Max [ms] | |:--- | --------: | --------:| --------:| | macchina | 4.8 ± 0.4 | 4.5 | 8.1 |

👩🏽‍💻 macOS

| Command | Mean [ms] | Min [ms] | Max [ms] | | :--------- | --------: | -------: | -------: | | macchina | 5.0 ± 0.2 | 4.7 | 5.9 |

🚩 NetBSD

This benchmark was performed inside a virtual machine using an Intel® Core™ i5-8265U CPU @ 1.60GHz

| Command | Mean [ms] | Min [ms] | Max [ms] | | :--------- | ---------: | -------: | -------: | | macchina | 17.7 ± 1.6 | 16.8 | 27.2 |

💻 Windows

| Command | Mean [ms] | Min [ms] | Max [ms] | | :--------- | --------: | -------: | -------: | | macchina | 9.0 ± 0.4 | 8.2 | 11.7 |


Features

Themes

macchina comes equipped with built-in themes that style their readouts, bars and separators differently. No extra configuration required.

Bars

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

Preview of the bar flag

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

Preview of the doctor flag


Configuration

macchina can be configured through a dotfile, macchina.toml is an example dotfile that you can use and build on top of to make it your own.

You can also create custom themes in JSON format and use them instead of the built-in themes that we provide.

json { "name": "Carbon", "bar": { "Custom": { "glyph": "ߋ", "symbol_open": "[", "symbol_close": "]" } }, "color": { "Rgb": [231, 198, 100] }, "separator": "⇉", "separator_color": { "Rgb": [158, 208, 114] }, "spacing": 2, "padding": 0, "block_title": "┤ Carbon ├", "abbreviation": "Classic" }


Dependencies

These runtime dependencies are not required, but they extend what macchina can do.

Linux:

NetBSD:


Installation

🦀 Cargo

cargo install macchina

📦 Pkgsrc

pkgin install macchina

🍻 Homebrew

brew install macchina

Termux

pkg install macchina

Arch Linux

```bash

Install it using the AUR package that downloads the latest release

git clone https://aur.archlinux.org/macchina.git cd macchina makepkg -si

Or you can use the AUR package that pulls straight from the main branch

git clone https://aur.archlinux.org/macchina-git.git macchina cd macchina makepkg -si ```

Nix

Where <channel> is probably nixpkgs or nixos:

bash nix-env -iA <channel>.macchina

The installation wiki page lists some 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 | ✓ | | NetBSD | ✓ | | macOS | ✓ | | Windows | 80% | | OpenWrt | ✓ | | Android | ✓ |

🌍 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!