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.
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 command line tool.
Websiteasciinema
[python]asciinema [as-kee-nuh-muh] is a free and open source solution for recording terminal sessions and sharing them on the web.
Websitebandwhich
[rust]Terminal bandwidth utilization tool.
Websitebat
[rust]A cat(1) clone with wings.
Websitebattop
[rust]battop is an interactive viewer, similar to top, htop and other top utilities, but about the batteries installed in your notebook.
Websitebingrep
[rust]Universal Command Line Interface for Amazon Web Services.
Websitebluetui
[rust]TUI for managing bluetooth devices.
Websitebottom
[rust]A cross-platform graphical process/system monitor with a customizable interface and a multitude of features. Supports Linux, macOS, and Windows.
Websitebrowsh
nodejs ![code-go]A fully-modern text-based browser, rendering to TTY and browsers.
Websitechafa
[c]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.
Websitecode-minimap
[rust]This tool is for generating text minimaps at speed.
Websitecointop
[go]A fast and lightweight interactive terminal based UI application for tracking cryptocurrencies.
Websiteconclusive
[rust]Conclusive. A command line client for Plausible Analytics.
Websitecsview
[rust]A high performance csv viewer with cjk/emoji support.
Websitectop
[go]Top-like interface for container metrics
Websitedasel
[go]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.
Websitedelta
[rust]A viewer for git and diff output.
Websitedijo
[rust]dijo is a habit tracker. It is curses-based, it runs in your terminal.
Websitedust
[rust]du + rust = dust. Like du but more intuitive.
Websiteendlessh
[c]SSH tarpit that slowly sends an endless banner.
Websiteeva
[rust]A calculator REPL, similar to bc(1).
Websiteeza
[rust]A modern version of ‘ls’.
Websitefzf
[go]A command-line fuzzy finder.
Websitegfold
[rust]gfold is a CLI-driven application that helps you keep track of multiple Git repositories.
Websitegit-crypt
[c++]Transparent file encryption in git.
Websitegit-journal
[rust]The Git Commit Message and Changelog Generation Framework.
Websitegitui
[rust]Blazing fast terminal-ui for Git written in Rust.
Websiteglow
[go]Render markdown on the CLI, with pizzazz!
Websitegomphotherium
[go]Gomphotherium (/ˌɡɒmfəˈθɪəriəm/; “welded beast”), a command line Mastodon client.
Websitegotty
[go]Share your terminal as a web application.
Websitegpg-tui
[rust]Manage your GnuPG keys with ease!
Websitegping
[rust]Ping, but with a graph.
Websitegron
[go]Make JSON greppable!
Websitehexyl
[rust]A command-line hex viewer.
Websitehtmlq
[rust]Like jq, but for HTML.
Websitehugo
[go]Hugo is a static HTML and CSS website generator written in Go.
Websitehyperfine
[rust]A command-line benchmarking tool.
Websiteimager
[rust]Automated image compression for efficiently distributing images on the web.
Websiteirssi
[c]The client of the future.
I use this IRC client in combination with ZNC.
Websitejless
[rust]jless is a command-line JSON viewer designed for reading, exploring, and searching through JSON data.
Websitejwt-cli
[rust]A super fast CLI tool to decode and encode JWTs built in Rust.
Websitekmon
[rust]Linux Kernel Manager and Activity Monitor.
Websitelemmeknow
[rust]The fastest way to identify anything!
Websitelf
[go]Terminal file manager.
Websitelnav
[c++]Log file navigator.
Websitematterhorn
[haskell]Matterhorn is a terminal client for the Mattermost chat system.
Websitemc
[c]GNU Midnight Commander (also referred to as MC) is a user shell with text-mode full-screen interface.
Websitemdcat
[rust]cat for markdown.
Websitemosh
[c++]Mobile Shell.
Here is a good post on why Mosh makes sense.
Websitencdu
[c]Ncdu is a disk usage analyzer with an ncurses interface.
Websiteneomutt
[c]NeoMutt was created when Richard Russon took all the old Mutt patches, sorted through them, fixed them up and documented them.
Websiteneovim
[c]Vim-fork focused on extensibility and usability.
Websiteoxipng
[rust]Multithreaded PNG optimizer written in Rust.
Websitepastel
[rust]pastel is a command-line tool to generate, analyze, convert and manipulate colors.
Websitepipe-rename
[rust]pipe-rename takes a list of files as input, opens your $EDITOR of choice, then renames those files accordingly.
Websiteprocs
[rust]A modern replacement for ps written in Rust.
Websiteradicle-cli
[rust]Radicle CLI.
Websiterates
[rust]Rates is a scriptable CLI tool that brings currency exchange rates right into your terminal and supports 30+ fiat and 10K+ crypto currencies.
Websitereader
[go]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.
Websiterestic
[go]Fast, secure, efficient backup program.
Websiteresto
[go]A CLI app that can send pretty HTTP & API requests with TUI.
Websiteripgrep
[rust]ripgrep recursively searches directories for a regex pattern.
Websitersnapshot
[perl]A tool for backing up your data using rsync.
Websiterustscan
[rust]The Modern Port Scanner.
Websiteshellcaster
[rust]Shellcaster is a terminal-based podcast manager, built in Rust.
Websitesilicon
[rust]Create beautiful image of your source code.
Websiteso
[rust]A terminal interface for StackOverflow written in Rust.
Websitesocat
[c]“netcat++” (extended design, new implementation).
Websitesuperhighway84
[go]USENET-inspired, uncensorable, decentralized internet discussion system running on IPFS & OrbitDB
Websitesyncthing
[go]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.
Websitetaskwarrior-tui
[rust]A Terminal User Interface for Taskwarrior.
Websitetealdeer
[rust]A very fast implementation of tldr in Rust.
Websiteticker
[go]Terminal stock ticker with live updates and position tracking.
Websitetickrs
[rust]Realtime ticker data in your terminal.
Websitetmpmail
[rust]A temporary email right from your terminal written in POSIX sh.
Websitetre
[rust]Tree command, improved.
Websitetz
[go]A time zone helper.
Websiteviu
[rust]A small command-line application to view images from the terminal written in Rust.
Websitevocage
[rust]Vocage is a minimalistic terminal-based vocabulary-learning tool.
Websitewebsocat
[rust]Netcat, curl and socat for WebSockets.
Websitewikit
[nodejs]Wikipedia summaries from the command line.
Websitexplr
[rust]A hackable, minimal, fast TUI file explorer.
Websiteyj
[go]CLI - Convert between YAML, TOML, JSON, and HCL. Preserves map order.
Websitezeit
[go]Zeit, erfassen. A command line tool for tracking time spent on activities.
Websitezenith
[rust]Sort of like top or htop but with zoom-able charts, network, and disk usage.
Websitezoxide
[rust]A smarter cd command. Supports all major shells.
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.
- 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.