Command Line
An ever-chaning collection of command line tools that I find useful on a daily basis or just fun to play with from time to time.

Introduction
While I do have a strong preference for single
a.out
binaries without large
dependency trees that do not require additional runtimes, I’m also a strong
believer of using the right technology for the right job. Hence, I obviously
prefer C/C++ and Rust programs, but I also don’t mind using Python-, Node.js-,
Ruby- or Elixir/Erlang-based helpers to get a job done. For an example, I would
definitely want a C/C++ or Rust alternative to ls
– glad you’re asking,
have exa please and thank you – over a Node.js
version, simply because I want it to be instantly available and chew up as
little CPU and memory as possible. Especially CPU usage is an important metric
to me, as I’m heavily reliant on my MacBook’s battery life. That’s also one of
the reasons I try to stay at least 6 feet apart from everything Electron-based
and why I consistently keep anything that requires the JVM out of my life.
The Environment
As for the overall environment, I’m using
Alacritty with a
minimalist config,
the Z shell with
Oh My Zsh and a
rather large .zshrc
.
I sometimes use tmux and my terminal font is the
Nerd Fonts patched Fira Code.
My color schemes change from time to time, but you can check my dotfiles to see what I’m currently using.
The Collection
arduino-makefile 

Makefile for Arduino sketches. It defines the workflows for compiling code, flashing it to Arduino and even communicating through Serial.
Installation
brew install arduino-mk
Websiteasciinema 

asciinema [as-kee-nuh-muh] is a free and open source solution for recording terminal sessions and sharing them on the web.
Installation
brew install asciinema
Websitebandwhich 

Terminal bandwidth utilization tool.
Installation
brew install bandwhich
Websitebat 

A cat(1) clone with wings.
Installation
brew install bat
Websitebattop 

battop is an interactive viewer, similar to top, htop and other top utilities, but about the batteries installed in your notebook.
Installation
cargo install battop
Websitebettercap 

The Swiss Army knife for 802.11, BLE and Ethernet networks reconnaissance and MITM attacks.
Installation
brew install bettercap
Websitebingrep 

Universal Command Line Interface for Amazon Web Services.
Installation
cargo install bingrep
Websitebottom 

A cross-platform graphical process/system monitor with a customizable interface and a multitude of features. Supports Linux, macOS, and Windows.
Installation
brew install clementtsang/bottom/bottom
Websitebrowsh


A fully-modern text-based browser, rendering to TTY and browsers.
Installation
brew tap browsh-org/homebrew-browsh && brew install browsh
Websitecaddy 

Fast, multi-platform web server with automatic HTTPS.
I found Caddy to be perfect for local development setups and test-purposes.
Installation
brew install caddy
Websitecaffeinate 

Caffeinate prevents the system from sleeping on behalf of a utility.
Installation
Pre-installed on every macOS Mountain Lion or newer.
Websitechafa 

Chafa is a command-line utility that converts all kinds of images, including animated GIFs, into sixel or ANSI/Unicode character output that can be displayed in a terminal.
Installation
Gentoo
emerge media-gfx/chafa
OpenBSD
pkg_add chafa
macOS
brew install chafa
Websitecode-minimap 

This tool is for generating text minimaps at speed.
Installation
cargo install --locked code-minimap
Websiteconclusive 

Conclusive. A command line client for Plausible Analytics.
Installation
Manually from https://github.com/mrusme/conclusive/releases/latest
Websitecsview 

A high performance csv viewer with cjk/emoji support.
Installation
cargo install --locked csview
Websitectop 

Top-like interface for container metrics
Installation
brew install ctop
Websitedark-mode 

Control the macOS dark mode from the command-line.
Installation
brew install dark-mode
Websitedelta 

A viewer for git and diff output.
Installation
cargo install git-delta
Websitedijo 

dijo is a habit tracker. It is curses-based, it runs in your terminal.
Installation
cargo install dijo
Websitedust 

du + rust = dust. Like du but more intuitive.
Installation
cargo install du-dust
Websiteendlessh 

SSH tarpit that slowly sends an endless banner.
Installation
Gentoo
emerge net-misc/endlessh
Websiteeva 

A calculator REPL, similar to bc(1).
Installation
cargo install eva
Websiteexa 

A modern version of ‘ls’.
Installation
brew install exa
Websitefd 

A simple, fast and user-friendly alternative to ‘find’.
Installation
brew install fd
Websitefzf 

A command-line fuzzy finder.
Installation
brew install fzf
Websitegeld 

Geld, zählen. A command line tool for tracking money and budgets.
Installation
Manually from https://github.com/mrusme/geld/releases/latest
Websitegfold 

gfold is a CLI-driven application that helps you keep track of multiple Git repositories.
Installation
cargo install gfold
cargo install gfld
Websiteghcal 

See the GitHub contributions calendar of a user in the command line.
Installation
npm install -g ghcal
Websitegifgen 

Simple high quality GIF encoding.
Installation
brew install lukechilds/tap/gifgen
Websitegit-crypt 

Transparent file encryption in git.
Installation
brew install git-crypt
Websitegit-flow 

Git extensions to provide high-level repository operations for Vincent Driessen’s branching model.
Installation
brew install git-flow
Websitegit-journal 

The Git Commit Message and Changelog Generation Framework.
Installation
cargo install git-journal
Websitegit-lfs 

Git extension for versioning large files.
Installation
brew install git-lfs
Websitegitui 

Blazing fast terminal-ui for Git written in Rust.
Installation
brew install extrawurst/tap/gitui
Websiteglow 

Render markdown on the CLI, with pizzazz!
Installation
brew install glow
Websitegomphotherium 

Gomphotherium (/ˌɡɒmfəˈθɪəriəm/; “welded beast”), a command line Mastodon client.
Installation
Manually from https://github.com/mrusme/gomphotherium/releases/latest
Websitegotty 

Share your terminal as a web application.
Installation
brew install yudai/gotty/gotty
Websitegpg-tui 

Manage your GnuPG keys with ease!
Installation
cargo install gpg-tui
Websitegping 

Ping, but with a graph.
Installation
brew install gping
Websitegron 

Make JSON greppable!
Installation
brew install gron
Websitehexyl 

A command-line hex viewer.
Installation
brew install hexyl
Websitehttpie 

Modern command line HTTP client – user-friendly curl alternative with intuitive UI, JSON support, syntax highlighting, wget-like downloads, extensions, etc.
Installation
brew install httpie
Websitehugo 

Hugo is a static HTML and CSS website generator written in Go.
Installation
brew install hugo
Websitehyperfine 

A command-line benchmarking tool.
Installation
brew install hyperfine
Websiteicdiff 

Improved coloured diff.
Installation
brew install icdiff
Websiteimager 

Automated image compression for efficiently distributing images on the web.
Installation
cargo install imager
Websiteirssi 

The client of the future.
I use this IRC client in combination with ZNC.
Installation
brew install irssi
Websitekmon 

Create beautiful image of your source code.
Installation
cargo install --locked kmon
Websitelnav 

Log file navigator.
Installation
brew install lnav
Websitematterhorn 

Matterhorn is a terminal client for the Mattermost chat system.
Installation
brew cask install matterhorn
Websitemc 

GNU Midnight Commander (also referred to as MC) is a user shell with text-mode full-screen interface.
Installation
brew install midnight-commander
Websitemdcat 

cat for markdown.
Installation
brew install mdcat
Websitemosh 

Mobile Shell.
Here is a good post on why Mosh makes sense.
Installation
brew install mosh
Websitencdu 

Ncdu is a disk usage analyzer with an ncurses interface.
Installation
brew install ncdu
Websiteneomutt 

NeoMutt was created when Richard Russon took all the old Mutt patches, sorted through them, fixed them up and documented them.
Installation
brew install neomutt
Websiteneovim 

Vim-fork focused on extensibility and usability.
Installation
brew install neovim
Websitepastel 

pastel is a command-line tool to generate, analyze, convert and manipulate colors.
Installation
cargo install pastel
Websitepicocom 

Minimal dumb-terminal emulation program.
Installation
brew install picocom
Websitepipe-rename 

pipe-rename takes a list of files as input, opens your $EDITOR of choice, then renames those files accordingly.
Installation
cargo install pipe-rename
Websiteprocs 

A modern replacement for ps written in Rust.
Installation
brew install procs
Websiterates 

Rates is a scriptable CLI tool that brings currency exchange rates right into your terminal and supports 30+ fiat and 10K+ crypto currencies.
Installation
cargo install rates
Websiterestic 

Fast, secure, efficient backup program.
Installation
brew install restic
Websiteripgrep 

ripgrep recursively searches directories for a regex pattern.
Installation
brew install ripgrep
Websitersnapshot 

A tool for backing up your data using rsync.
Installation
brew install rsnapshot
Websiterustscan 

The Modern Port Scanner.
Installation
cargo install --locked rustscan
Websiteshellcaster 

Shellcaster is a terminal-based podcast manager, built in Rust.
Installation
cargo install shellcaster
Websitesilicon 

Create beautiful image of your source code.
Installation
cargo install --locked silicon
Websiteso 

A terminal interface for StackOverflow written in Rust.
Installation
brew install so
Websitesocat 

“netcat++” (extended design, new implementation).
Installation
brew install socat
Websitespeed-test 

Test your internet connection speed and ping using speedtest.net from the CLI.
Installation
npm install -g speed-test
Websitesyncthing 

Open Source Continuous File Synchronization.
I use this as an open source alternative to Resilio Sync in cases in which I only require system-to-system sync and hence don’t need mobile (iOS) support.
Installation
brew install syncthing
Websitetaskwarrior-ui 

A Terminal User Interface for Taskwarrior.
Installation
brew install taskwarrior-ui
Websitetealdeer 

A very fast implementation of tldr in Rust.
Installation
brew install tealdeer
Websiteterminalizer 

Record your terminal and generate animated gif images or share a web player.
Installation
npm install -g terminalizer
Websiteterraform 

Terraform enables you to safely and predictably create, change, and improve infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.
Installation
brew install terraform
Websitetickrs 

Realtime ticker data in your terminal.
Installation
cargo install tickrs
Websitetig 

Text-mode interface for git.
Installation
brew install tig
Websitetor 

Defend yourself against tracking and surveillance. Circumvent censorship.
Installation
brew install tor
Websitetransmission-cli 

A Fast, Easy and Free BitTorrent Client.
Installation
brew install transmission-cli
Websitetre 

Tree command, improved.
Installation
cargo install --locked tre-command
Websitetuir 

Browse Reddit from your terminal.
Installation
pip3 install tuir
Websiteviu 

A small command-line application to view images from the terminal written in Rust.
Installation
cargo install viu
Websitevocage 

Vocage is a minimalistic terminal-based vocabulary-learning tool.
Installation
cargo install vocage
Websitewebsocat 

Netcat, curl and socat for WebSockets.
Installation
cargo install --features=ssl websocat
Websitewikit 

Wikipedia summaries from the command line.
Installation
npm install -g wikit
Websitexplr 

Create beautiful image of your source code.
Installation
cargo install --locked xplr
Websiteytop 

Another TUI based system monitor, this time in Rust.
Installation
brew tap cjbassi/ytop && brew install ytop
Websitezeit 

Zeit, erfassen. A command line tool for tracking time spent on activities.
Installation
Manually from https://github.com/mrusme/zeit/releases/latest
Websitezenith 

Sort of like top or htop but with zoom-able charts, network, and disk usage.
Installation
brew tap bvaisvil/zenith && brew install zenith
Websitezola 

A fast static site generator in a single binary with everything built-in.
Installation
brew install zola
WebsiteSnippets
This is a list of command snippets that I regularly need/use. I’m putting them here in order to persist them in case my zsh history should be gone one day.
gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1
gsettings set org.gnome.desktop.interface gtk-theme "$GTK_THEME" && gsettings set org.gnome.desktop.wm.preferences theme "$GTK_THEME"
youtube-dl -f bestaudio --extract-audio --audio-format mp3 --audio-quality 0 --yes-playlist --add-metadata $URL
arduino-cli compile --fqbn esp32:esp32:esp32s2 --clean -e ./ && arduino-cli upload -p /dev/ttyUSB0 --fqbn esp32:esp32:esp32s2 -i ./build/esp32.esp32.esp32s2/*.ino.elf
fc-list | rg $FONT
make modules_prepare && make -j16 && make modules_install && make install && emerge --ask @module-rebuild && genkernel initramfs --firmware --kernel-config=/usr/src/linux/.config --keymap --makeopts=-j16 --mountboot --no-clean --zfs
grub-mkconfig -o /boot/grub/grub.cfg && grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Gentoo --recheck --no-floppy
mount /dev/nvme1n1p2 /mnt/mirror && rsync -avH /boot/* /mnt/mirror/. && ls -la /mnt/mirror && umount /mnt/mirror
published [ ] · updated [ ]