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.

Command Line

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++, Rust, and Go programs, but I also don’t mind using Python-, Node.js-, Ruby- or Elixir/Erlang-based helpers to get a job done. For example, I would definitely want a C/C++ or Rust alternative to ls – glad you’re asking, have eza 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. That’s also one of the reasons I try to stay at least 6 feet apart from everything Electron-based, and why I don’t touch anything that requires the JVM even with a 10 foot pole.

The 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.

My color schemes change from time to time, but you can check my dotfiles to see what I’m currently using.

The Collection

arduino-cli

[go]
arduino-cli

Arduino command line tool.

Website

asciinema

[python]
asciinema

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

Website

bandwhich

[rust]
bandwhich

Terminal bandwidth utilization tool.

Website

bat

[rust]
bat

A cat(1) clone with wings.

Website

battop

[rust]
battop

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

Website

bingrep

[rust]
bingrep

Universal Command Line Interface for Amazon Web Services.

Website

bluetui

[rust]
bluetui

TUI for managing bluetooth devices.

Website

bottom

[rust]
bottom

A cross-platform graphical process/system monitor with a customizable interface and a multitude of features. Supports Linux, macOS, and Windows.

Website

browsh

nodejs ![code-go]
browsh

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

Website

chafa

[c]
chafa

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.

Website

code-minimap

[rust]
code-minimap

This tool is for generating text minimaps at speed.

Website

cointop

[go]
cointop

A fast and lightweight interactive terminal based UI application for tracking cryptocurrencies.

Website

conclusive

[rust]
conclusive

Conclusive. A command line client for Plausible Analytics.

Website

csview

[rust]
csview

A high performance csv viewer with cjk/emoji support.

Website

ctop

[go]
ctop

Top-like interface for container metrics

Website

dasel

[go]
dasel

Select, put and delete data from JSON, TOML, YAML, XML and CSV files with a single tool. Supports conversion between formats and can be used as a Go package.

Website

delta

[rust]
delta

A viewer for git and diff output.

Website

dijo

[rust]
dijo

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

Website

dust

[rust]
dust

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

Website

endlessh

[c]
endlessh

SSH tarpit that slowly sends an endless banner.

Website

eva

[rust]
eva

A calculator REPL, similar to bc(1).

Website

eza

[rust]
eza

A modern version of ‘ls’.

Website

fzf

[go]
fzf

A command-line fuzzy finder.

Website

gfold

[rust]
gfold

gfold is a CLI-driven application that helps you keep track of multiple Git repositories.

Website

git-crypt

[c++]
git-crypt

Transparent file encryption in git.

Website

git-journal

[rust]
git-journal

The Git Commit Message and Changelog Generation Framework.

Website

gitui

[rust]
gitui

Blazing fast terminal-ui for Git written in Rust.

Website

glow

[go]
glow

Render markdown on the CLI, with pizzazz!

Website

gomphotherium

[go]
gomphotherium

Gomphotherium (/ˌɡɒmfəˈθɪəriəm/; “welded beast”), a command line Mastodon client.

Website

gotty

[go]
gotty

Share your terminal as a web application.

Website

gpg-tui

[rust]
gpg-tui

Manage your GnuPG keys with ease!

Website

gping

[rust]
gping

Ping, but with a graph.

Website

gron

[go]
gron

Make JSON greppable!

Website

hexyl

[rust]
hexyl

A command-line hex viewer.

Website

htmlq

[rust]
htmlq

Like jq, but for HTML.

Website

hugo

[go]
hugo

Hugo is a static HTML and CSS website generator written in Go.

Website

hyperfine

[rust]
hyperfine

A command-line benchmarking tool.

Website

imager

[rust]
imager

Automated image compression for efficiently distributing images on the web.

Website

irssi

[c]
irssi

The client of the future.

I use this IRC client in combination with ZNC.

Website

jless

[rust]
jless

jless is a command-line JSON viewer designed for reading, exploring, and searching through JSON data.

Website

jwt-cli

[rust]
jwt-cli

A super fast CLI tool to decode and encode JWTs built in Rust.

Website

kmon

[rust]
kmon

Linux Kernel Manager and Activity Monitor.

Website

lemmeknow

[rust]
lemmeknow

The fastest way to identify anything!

Website

lf

[go]
lf

Terminal file manager.

Website
[c++]
lnav

Log file navigator.

Website

matterhorn

[haskell]
matterhorn

Matterhorn is a terminal client for the Mattermost chat system.

Website

mc

[c]
mc

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

Website

mdcat

[rust]
mdcat

cat for markdown.

Website

mosh

[c++]
mosh

Mobile Shell.

Here is a good post on why Mosh makes sense.

Website

ncdu

[c]
ncdu

Ncdu is a disk usage analyzer with an ncurses interface.

Website

neomutt

[c]
neomutt

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

Website

neovim

[c]
neovim

Vim-fork focused on extensibility and usability.

Website

oxipng

[rust]
oxipng

Multithreaded PNG optimizer written in Rust.

Website

pastel

[rust]
pastel

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

Website

pipe-rename

[rust]
pipe-rename

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

Website

procs

[rust]
procs

A modern replacement for ps written in Rust.

Website

radicle-cli

[rust]
radicle-cli

Radicle CLI.

Website

rates

[rust]
rates

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

Website

reader

[go]
reader

reader is for your command line what the “readability” view is for modern browsers: A lightweight tool offering better readability of web pages on the CLI.

Website

restic

[go]
restic

Fast, secure, efficient backup program.

Website

resto

[go]
resto

A CLI app that can send pretty HTTP & API requests with TUI.

Website

ripgrep

[rust]
ripgrep

ripgrep recursively searches directories for a regex pattern.

Website

rsnapshot

[perl]
rsnapshot

A tool for backing up your data using rsync.

Website

rustscan

[rust]
rustscan

The Modern Port Scanner.

Website

shellcaster

[rust]
shellcaster

Shellcaster is a terminal-based podcast manager, built in Rust.

Website

silicon

[rust]
silicon

Create beautiful image of your source code.

Website

so

[rust]
so

A terminal interface for StackOverflow written in Rust.

Website

socat

[c]
socat

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

Website

superhighway84

[go]
superhighway84

USENET-inspired, uncensorable, decentralized internet discussion system running on IPFS & OrbitDB

Website

syncthing

[go]
syncthing

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.

Website

taskwarrior-tui

[rust]
taskwarrior-tui

A Terminal User Interface for Taskwarrior.

Website

tealdeer

[rust]
tealdeer

A very fast implementation of tldr in Rust.

Website

ticker

[go]
ticker

Terminal stock ticker with live updates and position tracking.

Website

tickrs

[rust]
tickrs

Realtime ticker data in your terminal.

Website

tmpmail

[rust]
tmpmail

A temporary email right from your terminal written in POSIX sh.

Website

tre

[rust]
tre

Tree command, improved.

Website

tz

[go]
tz

A time zone helper.

Website

viu

[rust]
viu

A small command-line application to view images from the terminal written in Rust.

Website

vocage

[rust]
vocage

Vocage is a minimalistic terminal-based vocabulary-learning tool.

Website

websocat

[rust]
websocat

Netcat, curl and socat for WebSockets.

Website

wikit

[nodejs]
wikit

Wikipedia summaries from the command line.

Website

xplr

[rust]
xplr

A hackable, minimal, fast TUI file explorer.

Website

yj

[go]
yj

CLI - Convert between YAML, TOML, JSON, and HCL. Preserves map order.

Website

zeit

[go]
zeit

Zeit, erfassen. A command line tool for tracking time spent on activities.

Website

zenith

[rust]
zenith

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

Website

zoxide

[rust]
zoxide

A smarter cd command. Supports all major shells.

Website

Snippets

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.

  • Stream DSLR viewfinder via USB-C to /dev/video0:
    gphoto2 --stdout --capture-movie \
    | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0
    
  • Set GTK theme:
    gsettings set org.gnome.desktop.interface gtk-theme "$GTK_THEME" \
    && gsettings set org.gnome.desktop.wm.preferences theme "$GTK_THEME"
    
  • Arduino compiling & uploading:
    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
    
  • Search font:
    fc-list | rg $FONT
    

Enjoyed this? Support me via Monero, Bitcoin, Lightning, or Ethereum!  More info.