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

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

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
    

published [ ] · updated [ ]