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.

A Nomad's Command Line

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 Ayu Light and Ayu Dark as soon as macOS changes to dark mode in the evenings and back to light mode at daytime and a color scheme based on Tech49. More info on that in my dotfiles.
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 code-makefile

cropped-arduino-mk@2x

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
Website

asciinema code-python

cropped-asciinema@2x

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
Website

bandwhich code-rust

cropped-bandwhich@2x

Terminal bandwidth utilization tool.

Installation

brew install bandwhich
Website

bat code-rust

cropped-bat@2x

A cat(1) clone with wings.

Installation

brew install bat
Website

bettercap code-go

cropped-bettercap@2x

The Swiss Army knife for 802.11, BLE and Ethernet networks reconnaissance and MITM attacks.

Installation

brew install bettercap
Website

bingrep code-rust

cropped-bingrep@2x

Universal Command Line Interface for Amazon Web Services.

Installation

cargo install bingrep
Website

bottom code-rust

cropped-bottom@2x

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
Website

browsh code-nodejs code-go

cropped-browsh@2x

A fully-modern text-based browser, rendering to TTY and browsers.

Installation

brew tap browsh-org/homebrew-browsh && brew install browsh
Website

caddy code-go

cropped-caddy@2x

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
Website

caffeinate code-c

cropped-caffeinate@2x

Caffeinate prevents the system from sleeping on behalf of a utility.

Installation

Pre-installed on every macOS Mountain Lion or newer.

Website

dark-mode code-swift

cropped-dark-mode@2x

Control the macOS dark mode from the command-line.

Installation

brew install dark-mode
Website

dust code-rust

cropped-dust@2x

du + rust = dust. Like du but more intuitive.

Installation

cargo install du-dust
Website

eva code-rust

cropped-eva@2x

A calculator REPL, similar to bc(1).

Installation

cargo install eva
Website

exa code-rust

cropped-exa@2x

A modern version of ‘ls’.

Installation

brew install exa
Website

fd code-rust

cropped-fd@2x

A simple, fast and user-friendly alternative to ‘find’.

Installation

brew install fd
Website

fzf code-go

cropped-fzf@2x

A command-line fuzzy finder.

Installation

brew install fzf
Website

ghcal code-nodejs

cropped-ghcal@2x

See the GitHub contributions calendar of a user in the command line.

Installation

npm install -g ghcal
Website

gifgen code-shell

cropped-gifgen@2x

Simple high quality GIF encoding.

Installation

brew install lukechilds/tap/gifgen
Website

git-crypt code-c++

cropped-git-crypt@2x

Transparent file encryption in git.

Installation

brew install git-crypt
Website

git-flow code-shell

cropped-git-flow@2x

Git extensions to provide high-level repository operations for Vincent Driessen’s branching model.

Installation

brew install git-flow
Website

git-journal code-rust

cropped-git-journal@2x

The Git Commit Message and Changelog Generation Framework.

Installation

cargo install git-journal
Website

git-lfs code-go

cropped-git-lfs@2x

Git extension for versioning large files.

Installation

brew install git-lfs
Website

gitui code-rust

cropped-gitui@2x

Blazing fast terminal-ui for Git written in Rust.

Installation

brew install extrawurst/tap/gitui
Website

gotty code-go

cropped-gotty@2x

Share your terminal as a web application.

Installation

brew install yudai/gotty/gotty
Website

gron code-go

cropped-gron@2x

Make JSON greppable!

Installation

brew install gron
Website

hexyl code-rust

cropped-hexyl@2x

A command-line hex viewer.

Installation

brew install hexyl
Website

httpie code-python

cropped-httpie@2x

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
Website

hyperfine code-rust

cropped-hyperfine@2x

A command-line benchmarking tool.

Installation

brew install hyperfine
Website

icdiff code-python

cropped-icdiff@2x

Improved coloured diff.

Installation

brew install icdiff
Website

imager code-rust

cropped-imager@2x

Automated image compression for efficiently distributing images on the web.

Installation

cargo install imager
Website

irssi code-c

cropped-irssi@2x

The client of the future.

I use this IRC client in combination with ZNC.

Installation

brew install irssi
Website
cropped-lnav@2x

Log file navigator.

Installation

brew install lnav
Website

mc code-c

cropped-mc@2x

GNU Midnight Commander (also referred to as MC) is a user shell with text-mode full-screen interface.

Installation

brew install midnight-commander
Website

mdcat code-rust

cropped-mdcat@2x

cat for markdown.

Installation

brew install mdcat
Website

mosh code-c++

Mobile Shell.

Here is a good post on why Mosh makes sense.

Installation

brew install mosh
Website

ncdu code-c

cropped-ncdu@2x

Ncdu is a disk usage analyzer with an ncurses interface.

Installation

brew install ncdu
Website

neomutt code-c

cropped-neomutt@2x

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
Website

neovim code-c

cropped-neovim@2x

Vim-fork focused on extensibility and usability.

Installation

brew install neovim
Website

picocom code-c

cropped-picocom@2x

Minimal dumb-terminal emulation program.

Installation

brew install picocom
Website

procs code-rust

cropped-procs@2x

A modern replacement for ps written in Rust.

Installation

brew install procs
Website

rainbowstream code-python

cropped-rainbowstream@2x

A smart and nice Twitter client on terminal written in Python.

Installation

pip3 install rainbowstream
Website

restic code-go

cropped-restic@2x

Fast, secure, efficient backup program.

Installation

brew install restic
Website

ripgrep code-rust

cropped-ripgrep@2x

ripgrep recursively searches directories for a regex pattern.

Installation

brew install ripgrep
Website

rsnapshot code-perl

cropped-rsnapshot@2x

A tool for backing up your data using rsync.

Installation

brew install rsnapshot
Website

so code-rust

cropped-so@2x

A terminal interface for StackOverflow written in Rust.

Installation

brew install so
Website

socat code-c

cropped-socat@2x

“netcat++” (extended design, new implementation).

Installation

brew install socat
Website

speed-test code-nodejs

cropped-speed-test@2x

Test your internet connection speed and ping using speedtest.net from the CLI.

Installation

npm install -g speed-test
Website

syncthing code-go

cropped-syncthing@2x

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
Website

tealdeer code-rust

cropped-tealdeer@2x

A very fast implementation of tldr in Rust.

Installation

brew install tealdeer
Website

terminalizer code-nodejs

cropped-terminalizer@2x

Record your terminal and generate animated gif images or share a web player.

Installation

npm install -g terminalizer
Website

terraform code-go

cropped-terraform@2x

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
Website

tig code-c

cropped-tig@2x

Text-mode interface for git.

Installation

brew install tig
Website

tor code-c

cropped-tor@2x

Defend yourself against tracking and surveillance. Circumvent censorship.

Installation

brew install tor
Website

transmission-cli code-python

cropped-transmission-cli@2x

A Fast, Easy and Free BitTorrent Client.

Installation

brew install transmission-cli
Website

tuir code-python

cropped-tuir@2x

Browse Reddit from your terminal.

Installation

pip3 install tuir
Website

wikit code-nodejs

cropped-wikit@2x

Wikipedia summaries from the command line.

Installation

npm install -g wikit
Website

ytop code-rust

cropped-ytop@2x

Another TUI based system monitor, this time in Rust.

Installation

brew tap cjbassi/ytop && brew install ytop
Website

zenith code-rust

cropped-zenith@2x

Sort of like top or htop but with zoom-able charts, network, and disk usage.

Installation

brew tap bvaisvil/zenith && brew install zenith
Website