My List of CLI Gems
Recently I realize I've accumulated quite a few packages and wanted to do some cleaning and organizing.
These are the ones I kept and find useful.
Here goes!
Must Haves
(that I don't need to think about)
Utilities
- fzf - Command-line fuzzy finder written in Go
- atuin - Improved shell history for zsh, bash, fish and nushell
- bat - Clone of cat(1) with syntax highlighting and Git integration
- clipboard - Cut, copy, and paste anything, anywhere, all from the terminal
- The easiest way to move files around
- zoxide - shell extension to navigate your file-system faster
- yazi - Blazing fast terminal file manager written in Rust, based on async I/O
- eza - Modern, maintained replacement for ls
- gum - Tool for glamorous shell scripts
- direnv - Load/unload environment variables based on $PWD
- I use this at work to automatically switch between dev environments (correct node/go/python versions etc.)
- tldr - fast and interactive tldr client written with go
- serpl - a simple terminal UI for search and replace, ala VS Code.
- An easier way to find and replace. When I need more control I use ripgrep.
Git and GitHub
- lazygit - A simple terminal UI for git commands, written in Go
- gh - GitHub command-line tool
- diff-so-fancy - Good-lookin' diffs with diff-highlight and more
- tig - Text interface for Git repositories
- svu - Semantic Version Utility
- I use this when releasing my CLI tool to bump versions
Process Management
- tmux - terminal multiplexer
- sesh - Smart terminal session manager for tmux
- mprocs - Run multiple commands in parallel
- lazydocker - Lazier way to manage everything docker
- I use this when developing my TUI and find broken icons
- k9s - kubernetes CLI to manage your clusters in style!
- bpytop - Linux/OSX/FreeBSD resource monitor
I Always Forget about
Utilities
- artprint - I use this to switch artworks in neovim's start screen
artprint --random -t "dlvhdr" --tc 5 --ac 4
- curlie - better curl
- entr - run arbitrary commands when files change
- procs - Modern replacement for
ps
procs "$1" --no-header | awk -F '│' '{printf $1}{printf "│"}{print $3}' | gum choose --no-limit | awk '{print $1}' | xargs kill -9
- sd - intuitive find & replace (better
sed
) - mult - run a command multiple times and glance at the outputs
- Usually for flaky tests
- charmbracelet/tap/freeze - Generate images of code and terminal output.
- charmbracelet/tap/vhs - A tool for recording terminal GIFs
- markscribe - your personal markdown scribe with template-engine and Git(Hub) & RSS powers
- fd - Simple, fast and user-friendly alternative to find
- hyperfine - Command-line benchmarking tool
- timg - terminal image and video viewe
- glow - Render markdown on the CLI
- nerdfix - Find/fix obsolete Nerd Font icons
Disk Management
- dua-cli - view disk space usage and delete unwanted data, fast
- Run
dua i
for interactive mode
- Run
- dust - more intuitive version of du in rust
- kondo - save disk space by cleaning non-essential files from software projects
JSON
- jnv - JSON navigator and interactive filter leveraging jq
- Probably the best of the bunch 👑
- gojq - Pure go implementation of jq
- fx - terminal JSON viewer
- jless - command-line pager for JSON data
- jqp - a TUI playground to experiment and play with jq
Logs
- humanlog - pretty print and tail logs
- tl (toolong) - a TUI to view, tail, merge, and search log files
Network
- openapi-tui - terminal UI to list, browse and run APIs defined with OpenAPI
LLM
- mods - AI on the command line
- I have an alias bound to
?
to ask it CLI questions
- I have an alias bound to
- tlm - terminal copilot, powered by CodeLLaMa.