A Nomad's Command Line
A while ago I wrote about my computer and gave an overview of the software that I use on a daily basis, without going too much into the details of specific areas. With this follow-up I want to focus on the tools that I use and put together a collection that aren't typically part of a POSIX system.

Last updated: 10 Aug 2020
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 search for a C/C++ or Rust alternative to ls
– glad you’re asking, have exa please and thank you – over a Node.js version, 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.
As mentioned before I try to install everything I use through brew, although I’d love to be able to use nix on macOS without all the trouble. Anyway, brew
works reliably well for now and allows to install most of these tools.
The Environment
As for the overall environment, I’m using Alacritty with a rather minimalistic config and of course the Z shell with Oh My Zsh and a rather large .zshrc
. I always run tmux hence I don’t really mind Alacritty not supporting multiple windows (or tabs) – especially since I mapped the standard macOS shortcuts to create new windows/panes in tmux. My terminal font is Fira Code – unfortunately without ligatures, since Alacritty does not yet support that – and my color scheme is based on Ayu, a theme which I used on Sublime Text in combination with auto-dark, so that my Sublime theme automatically switches between and a color scheme based on Tech49. More info on that in my dotfiles.Ayu Light
and Ayu Dark
as soon as macOS changes to dark mode in the evenings and back to light mode at daytime
What I miss is Alacritty supporting multiple theme definitions for those modes as well. I’ll probably build something on my own there though.
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
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.
Websitedark-mode 

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

du + rust = dust. Like du but more intuitive.
Installation
cargo install du-dust
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
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
Websitegotty 

Share your terminal as a web application.
Installation
brew install yudai/gotty/gotty
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
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
Websitelnav 

Log file navigator.
Installation
brew install lnav
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
Websitepicocom 

Minimal dumb-terminal emulation program.
Installation
brew install picocom
Websiteprocs 

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

A smart and nice Twitter client on terminal written in Python.
Installation
pip3 install rainbowstream
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
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
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
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
Websitetuir 

Browse Reddit from your terminal.
Installation
pip3 install tuir
Websitewikit 

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

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

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