Command Line Tools
cheat.sh & eg are useful tools. Command Line Interface Guidelines are great.
nap & circumflex are nicely made CLIs written in Go & Bubble Tea (my preferred CLI stack).
There is also a nice curated CLI list
fzf is great tool.
Use
- ripgrep to search for text.
- fzf to fuzzy search through inputs.
- watchexec to rerun command when files of certain type change. Essential for fast feedback workflows. I usually have code on the left and terminal on right in VSCode. Use some fish functions for common commands.
- exa to replace ls as it has prettier output.
- bat to show contents of the file.
- jq to process/modify JSON.
- git for all version control.
- curl to do HTTP requests in terminal.
- yt-dlp to download videos.
Interesting
- rga - Ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc. (Article) (HN)
- fd - Simple, fast and user-friendly alternative to 'find'.
- up - Deploy infinitely scalable serverless apps, APIs, and sites in seconds to AWS.
- tmux - Terminal multiplexer.
- direnv - Environment switcher for the shell.
- htop - Interactive text-mode process viewer for Unix systems.
- httpie - HTTP client.
- rq - Tool for doing record analysis and transformation.
- pandoc - Universal markup converter.
- trash - Move files and folders to the trash.
- vtop - Graphical activity monitor.
- gotop - Terminal based graphical activity monitor inspired by gtop and vtop.
- howdoi - Instant coding answers.
- asciinema - Terminal session recorder.
- tldr - Simplified and community-driven man pages.
- imgcat - Like cat but for images.
- screenfetch - Fetches system/theme information in terminal.
- hugo - Fast and flexible static site generator.
- reflex - Run a command when files change.
- modd - Flexible tool for responding to file system changes.
- now - Real time global deployments served over HTTP/2.
- yarn - Fast, reliable, and secure dependency management.
- hub - GitHub wrapper.
- xsv - Fast CSV command line toolkit written in Rust.
- pv - Pipe Viewer.
- m-cli - Useful utils for macOS.
- pgcli - Postgres CLI with autocompletion and syntax highlighting.
- mas - CLI for mac app store.
- loc - Count lines of code quickly.
- alfred - Manage Go-based Alfred workflows.
- neofetch - System information tool.
- license-up - Create a license quickly for your project.
- piknik - Copy/paste anything over the network.
- bench - Command-line benchmark tool.
- ghq - Manage remote repository clones.
- npx - Execute npm package binaries.
- devd - Local webserver for developers.
- wifi-password - Get the password of the WiFi you're on.
- fkill - Fabulously kill processes.
- ran - Simple static web server written in Go.
- mcfly - Fast visual command history search.
- hyperfine - Excellent command-line benchmarking tool.
Notes
- Look into gh cli for example of a well designed CLI. The
-h
is amazing.
Links
- Awesome command line tools
- Ask HN: What are your favorite terminal programs?
- What's an awesome Linux/Unix command that you wish someone had told you about earlier?
- Awesome Console Services
- tldr - Collection of simplified and community-driven man pages. (Web)
- Awesome jq - Curated list of awesome things built with the JSON processor and turing-complete functional language jq.
- cli.fan blog - Introduction.
- One Things Well blog - Weblog about simple, useful software.
- Terminals Are Sexy - Curated list of Terminal frameworks, plugins & resources for CLI lovers.
- Inconsolation - Adventures with lightweight and minimalist software for Linux.
- Arabesque - Systems, Tools, and Terminal Science.
- The Art of Command Line (HN)
- cheat - Allows you to create and view interactive cheatsheets on the command-line. (HN)
- hyperfine - Command-line benchmarking tool.
- An Illustrated Guide to Useful Command Line Tools (2019) (Lobsters) (HN)
- uutils coreutils - Coreutils Rewritten in Rust. (HN)
- The Language Agnostic, All-Purpose, Incredible, Makefile (2019) (Lobsters) (HN)
- CLI: improved (2018)
- Awesome CLI apps
- Fast Searching with ripgrep (2020)
- Awk in 20 Minutes (HN)
- Grep for System Admins: Using Grep to Automate Daily Tasks (2020)
- Command line interfaces are reified UIs (2017) (HN) (Lobsters)
- My Favorite CLI Tools (2020) (HN)
- wttr.in - Console-oriented weather forecast service. (HN)
- Structured text tools - List of text-based file formats and command line tools for manipulating each.
- Conventions for Command Line Options (2020) (HN)
- Rewritten in Rust: Modern Alternatives of Command-Line Tools (2020) (Lobsters)
- Search and replace tricks with ripgrep (2020) (Lobsters)
- What are your favorite non-standard CLI utils/applications (2020)
- cheat.sh - Unified access to the best community driven cheat sheets. Available via CLI. (Web)
- My growing list of Rust programs to use (Lobsters)
- dasel - Allows you to query and modify data structures using selector strings.
- You Don't Need GUI - CLI commands as alternatives to GUI. (HN)
- CLI Guidelines - Guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day. (Code) (HN) (Lobsters)
- nq - Utils for creating lightweight job queue systems. (HN)
- Building Rich Terminal Dashboards (2021) (HN)
- frawk - JITted and SIMD-optimized AWK written in Rust. (Lobsters) (HN)
- How to Handle Secrets on the Command Line (2021) (HN)
- Modern Unix - Collection of modern/faster/saner alternatives to common unix commands.
- Awesome TUIs - List of projects that provide terminal user interfaces.
- Lobsters: What interesting command line tools do you use? (2021)
- binenv - One binary to rule them all. Manage all those pesky binaries (kubectl, helm, terraform, ...) easily.
- Command line tools for productive programmers (2021) (HN)
- Writing Programs with Ncurses (HN)
- Awk: The Power and Promise of a 40-Year-Old Language (2021) (HN)
- buke - Full text search man pages.
- Renamer - Rename files in bulk.
- CLI Testing Tool - Testing library that allows you to test input and outputs of your CLI command.
- bvm - Binary Version Manager.
- command-not-found.com - Install any command on any operating system.
- mdbook-man - Generate man pages from mdBooks.
- Powerful Terminal And Command-Line (CLI) Tools For Modern Web Development (2021)
- GoAWK - AWK interpreter written in Go. (Article)
- htop - Cross-platform interactive process viewer. (Web)
- hgrep - Grep with human-friendly search results.
- Ask HN: What are the best and worst command-line interfaces you have used? (2021)
- Command Line Magic Twitter (Web)
- Tips on adding JSON output to your CLI app (2021) (HN)
- Why and How to add changelog in your next CLI (2021)
- A practical overview of most useful Unix tools (2021) (HN)
- fq - jq for binary formats. (HN) (HN)
- termshot - Creates screenshots based on terminal command output.
- aqua - CLI tool to install CLI tools with declarative YAML configuration. (Docs)
- Supreme - Add configurations, GitHub actions and get started quickly with new projects.
- Bina - Installer for self-contained, single-file binaries, no additional CLI needed. (Code)
- Nice CLIs
- Charm - Tools to make the command line glamorous. (HN)
- Quick reference on command line tools and techniques
- Grep flags – the good stuff (HN)
- SnipKit - Snippet CLI manager for quickly accessing code snippets without leaving the terminal.
- pz - Easily handle CLI operation via Python instead of regular Bash programs. (HN)
- Scaffolder - Increasing dev velocity and standardizing file conventions.
- crispr - CLI tool allowing to scaffold a project from a template with a .crispr.{toml,json} configuration file.
- envy - Sets environment variables when you enter a directory.
- timer - sleep with progress.
- hwatch - Modern alternative to the watch command, records the differences in execution results and can check this differences at after.
- lets-run - Run a command when a certain file exists, and/or watch files to rerun on changes.
- eg - Useful examples at the command line.
- zf - Command line fuzzy finder that prioritizes matches on filenames.
- NO_COLOR - Disabling ANSI color output in various Unix commands. (HN)
- igrep - Interactive Grep.
- Argc - Handy way to handle sh/bash cli parameters.
- qsv - Ultra-fast CSV data-wrangling CLI toolkit.
- More Than a Dozen Command Line Tools I've Written—and So Can You (2018)
- Track changes to CLI tools by recording their help output (HN)
- Scout - Friendly fuzzy finder made in rust.
- fzf - Fommand-line fuzzy finder. (HN)
- Making the command line glamorous with Toby Padilla (2022)
- septum - Context-based code search tool.
- has - Checks presence of various command line tools and their versions on the path.
- Fig Manual Pages - Beautiful, community-driven documentation for 300+ CLI tools.
- csvlens - CSV file viewer in the command line.
- Difftastic - Diff tool that compares files based on their syntax. (HN) (Article) (HN) (Lobsters)
- Goreman - Manage Procfile-based applications.
- Testing your CLI - Go package simplifies testing of command-line interfaces.
- Periscope - Gives you "duplicate vision" to help you organize and de-duplicate your files without losing data.
- Wiki CLI - View Wikipedia articles through the CLI.
- tush - Literate testing for command-line programs.
- -h --help -help help --? -? ???? (2022) (Lobsters) (HN)
- New(ish) command line tools (2022) (HN)
- ff - Find files by name, fast.
- cexec - Run commands and cache their output for a specific amount of time.
- Hoard - CLI command organizer written in rust.
- A Simple Ejectable CLI Pattern (2022)
- rush - Command-line utility that lets you run one command on many files using a simple command template syntax.
- mprocs - Runs multiple commands in parallel and shows output of each command separately.
- CLET - Command Line E2E Testing.
- climod - Modular generated command line interfaces using the same technology as the NixOS module system.
- The sort --key Trick
- UX patterns for CLI tools (2022) (Lobsters)
- forever - Simple CLI tool for ensuring that a given script runs continuously (i.e. forever).
- Best practices for inclusive CLIs (2022) (Lobsters) (HN)
- tuc - When cut doesn’t cut it. (HN)
- linebyline - Command line text processor.
- Viddy - Modern watch command. Time machine and pager etc. (HN)
- cronlocker - Command line tool to allow running cronjobs on multiple hosts while ensuring that it only runs once at a time.
- pipe-rename - Rename your files using your favorite text editor.
- Backpack - Use template and starter projects easily.
- tere - Faster Alternative to cd+ls. (HN)
- bin - Manages binary files downloaded from different sources.
- catp - Print the output of a running process.
- lurk - Simple and pretty alternative to strace. Allows the user to trace system calls of a process or of a command.
- wrappe - Packer to create self-contained single-binary applications from executables and directory trees.
- Gum - Tool for glamorous shell scripts. Leverage the power of Bubbles and Lip Gloss in your scripts and aliases without writing any Go code. (Lobsters) (HN)
- Things I've learned building a modern TUI framework (2022) (HN)
- trashy - Simple, fast, and featureful alternative to rm and trash-cli written in rust.
- procmon - Simple utility for checking if processes are running.
- Marian Montagnino - Reinventing the CLI with Go (2022)
- Awesome list of CLI/TUI programs
- goldplate - Cute and simple golden test runner for CLI applications.
- CLI Testing Library - Simple and complete CLI testing utilities that encourage good testing practices.
- run-pty - Run several commands concurrently. Show output for one command at a time. Kill all at once.
- headtail - Head and tail simultaneously.
- enquirer - Command Line Utility for Stylish Interactive Prompts.
- Your favorite Rust CLI utilities this year (2022)
- pipebuffer - Simple command line program for buffering stdin/stdout between piped processes.
- zig-dwarfdump - dwarfdump utility but in Zig.
- Bevel - Command line history in an SQLite database for effective re-use.
- alt - Simple version manager. Tool for switching between different versions of commands.
- Charm VHS - Write terminal GIFs as code for integration testing and demoing your CLI tools.
- JC - JSONifies the output of many CLI tools. (HN)
- Command-line data analytics made easy (2022)
- CLI Tools Are Not Inherently User-Hostile - Mindy Preston (2022)
- How stdbuf works (2022) (HN)
- keyb - Create and view your custom hotkey cheat sheet with TUI.
- GPT3 Powered CLI - Get answers for CLI commands from GPT3 right from your terminal.
- Nap - Code snippets in your terminal.
- chimp - Tooling that helps you do quality, faster.
- llama - Terminal file manager.
- moar - Pager. It reads and displays UTF-8 encoded text from files or pipelines.
- Terminal CoPilot - Smart terminal assistant that helps you find the right command.
- Copilot, for your terminal - CLI tool that generates shell scripts from a human readable description.
- How we improved productivity with an internal CLI (2022)
- Awesome CLI - Curated list of things related with Command Line Interfaces.
- DidYouMean - CLI spelling corrector for when you're unsure.
- fre - Command line frecency tracking.
- rsms-utils - Collection of CLI programs to help with everyday computer life. (HN)
- shelltestrunner - Easy, repeatable testing of CLI programs/commands.
- Catimg - Renders images in the terminal.
- Just - Command Runner. (HN)
- felix - TUI file manager with Vim-like key mapping, written in Rust.
- Rmt - Similar to the rm command but saves the deleted elements in the trash and restores them.
- Commands.dev - Find commands at the speed of thought. (Code)
- sudo at home (HN)
- CSView - Simple CSV viewer/editor.
- Flagon - Feature Flags from your CLI.
- Solitaire TUI - Klondike solitaire for the terminal. Built with Bubble Tea Go.
- gotop - Terminal based graphical activity monitor inspired by gtop and vtop.
- Erdtree - Multi-threaded file-tree visualizer and disk usage analyzer.
- clipboard - Better command line clipboard.
- xdg-ninja - Shell script which checks your $HOME for unwanted files and directories.
- greple - Extensible grep with lexical expression and region handling.
- WIKI-TUI - Simple and easy to use Wikipedia Text User Interface.
- GTop - Alternative to top or htop made in Go.
- Teleport - Lightning-fast tool to quickly switch between repositories.
- Building CLI with Bubble Tea and Lip Gloss
- halp - CLI tool to get help with CLI tools.
- WIK - Terminal Based Wikipedia. (HN)
- teip - Masking tape to help commands "do one thing well".
- gotrash - rm alternative written in Go.
- JSCodemod - Codemod runner.
- textra - Command-line application to convert images, PDFs, and audio files to text using Apple's APIs.
- Curated list of command-line utilities written in Rust
- gat - cat alternative written in Go.
- sttr - Cross-platform, cli app to perform various operations on string.
- demo - Framework for performing live pre-recorded command line demos.
- killport - Command-line tool to easily kill processes running on a specified port. (HN)
- sudo-rs - Memory safe implementation of sudo and su. (Article) (HN)
- hunt - Simplified Find command made with Rust.
- script-runner - Simple threaded CLI script runner.
- jr - Quality Random Data from the Command line.
- re - Command Line Tool to execute commands in readme.
- gret - Command line tool that searches a directory or file for a matching regex expression and displays matches in a tree structure.
- spacer - CLI tool to insert spacers in command output to provide visual markers of when things happened.
- pic - Preview Image in CLI.
- repgrep - Interactive replacer for ripgrep that makes it easy to find and replace across files on the command line.
- macOS command-line tools you might not know about (2023) (HN)
- The Awk Programming Language, Second Edition (HN)
- gping - Ping, but with a graph.
- projectable - TUI file manager built for projects.
- stdrename - Rename all files in a folder according to a specified naming convention.
- renamer - Rename files with patterns.
- What helps people get comfortable on the command line? (2023) (Tweet) (Lobsters)
- pick - Fuzzy search tool for the command-line.
- walk - Terminal file manager. (HN)
- eza - Modern, maintained replacement for ls.
- What Makes A Good Cli Tool | Prime Explains (2023)
- Rust-Traverse - Terminal based file explorer.
- Replicate CLI
- pi - Project templates in rust.
- Pingrep - Command-line tool designed to quickly and easily search through your Pinboard bookmarks locally.