Awesome
Command line tools
Please read contribution guidelines before contributing.
- CSV
- File system
- Fun
- Games
- Git
- Go
- Java
- Lua
- macOS
- Networking
- Nix
- Package managers
- Productivity
- Python
- Ruby
- Rust
- Static website engines
- Text editors
- Web
- Logging
- Other
- Related
CSV
- xsv - Fast CSV command line toolkit written in Rust.
- csvdiff - Fast diff tool for comparing csv files.
- sc-im - ncurses spreadsheet program for terminal.
File system
- RecoverPy - Recover overwritten or deleted data.
- modd - Flexible tool for responding to filesystem changes.
- reflex - Run a command when files change.
Fun
- primitive - reproducing images with geometric primitives.
Games
- love - Framework to make 2D games in Lua.
Git
- fac - Easy-to-use CUI for fixing git conflicts.
- git - The stupid content tracker.
- hub - Wrapper around Git to extend it with features.
- tig - Text-mode interface for git.
Go
- dep - Go dependency management tool.
- go - Manage go source code.
- playgo - Send .go file to the Go Playground.
- richgo - Enrich
go test
outputs with text decorations.
Java
Lua
macOS
- asr - Apple Software Restore; copy volumes (e.g. from disk images).
- defaults - Access user's defaults.
- do-not-disturb - Control the macOS
Do Not Disturb
feature. - kexstat - Display status of loaded kernel extensions.
- m-cli - Swiss Army Knife for macOS.
- PlistBuddy - Read and write values to plists.
- softwareupdate - System software update tool.
- iStats - Mac stats.
- mas - Command line interface for the Mac App Store.
- time
- switchaudio-osx - Change the audio source for Mac OS X from the command line.
- displayplacer - macOS command line utility to configure multi-display resolutions and arrangements. Essentially XRandR for macOS.
Networking
- neoss - Socket statistics visualization and explanation tool for Unix systems.
- Catflap - Creates a listening TCP socket and passes its FD to a child process.
- curlie - Power of curl, the ease of use of httpie.
- sshfs - Network filesystem client to connect to SSH servers.
- sshuttle - Transparent proxy server that works as a poor man's VPN. Forwards over ssh. Doesn't require admin. Works with Linux and MacOS. Supports DNS tunneling.
- telnet - User interface to the TELNET protocol.
- bandwhich - CLI utility for displaying current network utilization by process, connection and remote IP/hostname.
- httpie - Modern, user-friendly command-line HTTP client for the API era.
- http-prompt - Interactive command-line HTTP and API testing tool built on top of HTTPie with autocomplete, syntax highlighting, and more.
Nix
- nix-env - Manipulate or query Nix user environments.
- nix-shell - Start an interactive shell based on a Nix expression.
- nox - Tools to make nix nicer to use.
Package managers
- brew - Package manager for macOS.
- npm - Package manager for javascript.
- yarn - Package manager for javascript.
Productivity
- eureka - CLI tool to input and store your ideas without leaving the terminal.
- cb - Powerful clipboard manager for all platforms.
Python
- livepython - Visually trace python code in real-time.
- rq - Simple job queues for Python.
- tg - Telegram terminal client.
- visa-cli - Visa Requirements terminal interface.
Ruby
- rbenv - Groom your app’s Ruby environment.
- ruby-build - Compile and install Ruby.
Rust
- project init - Project templates in rust.
- rustup - Rust toolchain installer.
Static website engines
Text editors
- kakoune - Modal editor with multi selections.
- helix - A Kakoune / Neovim inspired editor, written in Rust.
- micro - Modern and intuitive terminal-based text editor.
- emacs - Extendable/customizable text editor.
- neovim - Vim-fork focused on extensibility and usability.
- vim - Modal text editor.
Web
- create-react-app - Create React apps with no build configuration.
- preact - Create preact app.
- up - Deploy infinitely scalable serverless apps, apis, and sites in seconds to AWS.
- urlsup - CLI to validate URLs in files.
Logging
- lnav - Advanced log file viewer for the small-scale; Watch and analyze your log files from a terminal.
- red - Terminal log analysis tools.
- goaccess - Real-time web log analyzer and interactive viewer that runs in a terminal in nix systems or through your browser.
- angle-grinder - Slice and dice logs on the command line.
- drep - Grep with dynamic reloadable filter expressions. This allows filtering stream of logs/lines, while changing filters on the fly.
Other
- zenith - Sort of like top or htop but with zoom-able charts, network, and disk usage.
- grcov - Collects and aggregates code coverage information for multiple source files.
- wtf - Personal information dashboard for your terminal.
- navi - Interactive cheatsheet tool for the command-line.
- zoxide - cd command that learns your habits.
- pastefile - Create a file that contains the contents from the clipboard.
- ran - Simple static web server written in Go.
- watchexec - Executes commands in response to file modifications.
- procs - Modern replacement for ps written in Rust.
- termdash - Terminal based dashboard.
- yq - Portable command-line YAML processor.
- squeeze - Enables to extract rich information from any text (raw, JSON, HTML, YAML, etc).
- amber - Code search / replace tool.
- Pueue - Daemon for managing long running shell commands.
- mmv - Rename multiple files using your $EDITOR.
- jq - Command-line JSON processor. (Mastering JQ)
- jq in Go - Pure Go implementation of jq.
- faq - Format Agnostic jQ.
- gomi - Trash can in CLI.
- jql - Easy JSON Query Processor with a Lispy syntax in Go.
- linkchecker - Check links in web documents or full websites.
- brok - Find broken links in text documents. (HN)
- broot - New way to see and navigate directory trees.
- chars - Display names and codes for various ASCII (and unicode) characters / code points.
- diskus - Minimal, fast alternative to du -sh.
- glow - Render markdown on the CLI, with pizzazz.
- dtool - Collection of development tools.
- uni - Query the Unicode database from the commandline, with good support for emojis.
- viu - Command-line application to view images from the terminal written in Rust.
- tealdeer - Very fast implementation of tldr in Rust.
- xcp - Extended cp.
- pazi - Fast autojump helper.
- cbf - Build custom CLI apps with only a json or yaml file.
- rga - Ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, etc.
- hunter - Ranger-like file browser written in rust.
- ytop - TUI system monitor written in Rust.
- noti - Monitor a process and trigger a notification.
- ffsend - Easily and securely share files from the command line. A fully featured Firefox Send client.
- adns - Advanced, easy to use, asynchronous-capable DNS client library and utilities.
- advancecomp - Collection of recompression utilities for your .ZIP archives, .PNG snapshots, .MNG video clips and .GZ files.
- ag - Recursively search for pattern.
- Antibody - Fastest shell plugin manager.
- aria2A - Lightweight multi-protocol & multi-source, cross platform download utility.
- asciinema - Terminal session recorder.
- asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more.
- aspcud - Solver for package dependencies.
- automake - Automatically create Makefile.in's from Makefile.am's.
- basename - Strip directory and suffix from filenames.
- bash - GNU Bourne-Again SHell.
- camlp4 - Software system for writing extensible parsers for programming languages.
- ccat - Colorizing
cat
. - chroma - General purpose syntax highlighter in pure Go.
- chrome-cli - Control Google Chrome from the command line.
- cmake - Cross-platform makefile generator.
- cowyo - Feature rich wiki webserver for minimalists.
- croc - Easily get things from one computer to another.
- ctop - Container metric viewer.
- curl - Transfer a URL.
- direnv - Unclutter your .profile.
- dirname - Strip last component from file name.
- docker - Self-sufficient runtime for containers.
- entr - Run arbitrary commands when files change. (Article) (Code)
- eisd - Execute your favorite command in SubDirectories.
- fasd - Quick access to files and directories.
- fd - Simple, fast and user-friendly alternative to 'find'.
- ffmpeg - Video converter.
- fkill - Kill processes.
- friendly-find - Usable replacement for find.
- fzf - Command-line fuzzy finder.
- fzy - Better fuzzy finder.
- gdbm - Library of database functions that use extensible hashing and work similar to the standard UNIX dbm.
- gifski - GIF encoder. Squeezes maximum possible quality from the awful GIF format.
- gotty - Share your terminal as a web application.
- GraphicsMagick - Swiss army knife of image processing.
- hask-replace - Command-line tool to rename modules in Haskell projects.
- hexyl - Command-line hex viewer.
- htttpie - HTTP client.
- hyperfine - Command-line benchmarking tool.
- temci - Advanced benchmarking tool written in Python 3 that supports setting up an environment for benchmarking and the generation of visually appealing reports.
- imgur-screenshot - Take screenshot selection, upload to Imgur. + more cool things.
- jq - Lightweight and flexible command-line JSON processor.
- jump - Helps you navigate faster by learning your habits.
- just - Handy way to save and run project-specific commands.
- kubectl - Kubernetes cluster manager.
- less - Free, open-source file pager.
- license-up - Create a license quickly for a given name.
- LicGD - Open source code library for the dynamic creation of images by programmers.
- loc - Count lines of code quickly.
- mackup - Keep your application settings in sync (OS X/Linux).
- make - GNU make utility to maintain groups of programs.
- massren - Easily rename multiple files using your text editor.
- mediumexporter - Export medium.com articles to markdown.
- moreutils - Growing collection of the unix tools that nobody thought to write long ago when unix was young.
- mycli - Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.
- ncdu - Disk usage analyzer with an ncurses interface.
- neofetch - Displays information about your operating system, software and hardware in an aesthetic and visually pleasing way.
- ninja - Small build system with a focus on speed.
- nm - Display name list (symbol table).
- nmap - Network mapper.
- pgcli - Postgres CLI with autocompletion and syntax highlighting.
- pkg - Package your node.js project into an executable.
- pngquant - Command-line utility and a library for lossy compression of PNG images.
- pspg - Postgres Pager.
- pv - Pipe Viewer.
- rclone - Rsync for cloud storage.
- rename - Renames files according to modification rules specified on the command line.
- scipy - Open-source software for mathematics, science, and engineering.
- scons - Software construction tool.
- skim - Fuzzy Finder in rust.
- snallygaster - Tool to scan for secret files on HTTP servers.
- spark - Sparklines for your shell.
- spotify-ripper - Rip Spotify URIs to MP3 files.
- static-docs - General-purpose library, purpose-built commands for various domains.
- stow - Symlink farm manager program.
- svgcleaner - Clean up your SVG files from the unnecessary data.
- tar - Manipulate tape archives.
- tin-summer - Find build artifacts that are taking up disk space.
- tokei - Display statistics about your code. (Reddit)
- visidata - Terminal spreadsheet multitool for discovering and arranging data.
- vsce - Publish VS Code extensions.
- warp - Secure and simple terminal sharing.
- weather - Weather via the command line.
- wego - Weather app for the terminal.
- wifi-password - Get wifi pass.
- you-get - Dumb downloader that scrapes the web.
- dust - More intuitive version of du in rust.
- mdcat -
cat
for Markdown. - exa - Replacement for ls written in Rust.
- sd - Intuitive find & replace CLI.
- ack - Grep-like text finder.
- alias - Define or display aliases.
- apropos - Search the manual page names and descriptions.
- awk - Pattern-directed scanning and processing language.
- bc - Arbitrary precision calculator language.
- cat - Concatenate and print files.
- cd - Change Directory.
- chmod - Change file mode bits.
- cp - Copy files and directories.
- cron - Daemon to execute scheduled commands.
- cut - Cut out selected portions of each line of a file.
- diff - Compare files line by line.
- echo - Write arguments to the standard output.
- env - Set environment and execute command, or print environment.
- file - Determine file type.
- find - Walk a file hierarchy.
- gnuplot - Generate two and three dimensional plots of data.
- grep - File pattern searcher.
- head - Output the first part of files.
- jobs - Display status of jobs in the current session.
- join - Join lines of two files on a common field.
- kill - Send a signal to a process.
- killall - Kill processes by name.
- ln - Create symbolic links.
- ls - List directory contents.
- lsof - List open files.
- man - Open manual pages.
- mv - Move (rename) files.
- nice - Execute a utility with an altered scheduling priority.
- nohup - Run a command immune to hangups, with output to a non-tty.
- paste - Merge lines of files.
- rm - Remove directory entries.
- rmdir - Remove empty directories.
- scp - Secure copy (remote file copy program).
- screen - Screen manager.
- sed - Stream editor.
- set - Set or unset options and positional parameters.
- sort - Put the lines of a text file in alphanumeric order.
- split - Split a file into pieces.
- ssh - Remote login.
- strings - Print the strings of printable characters in files.
- tail - Output the last part of files.
- top - Display and update sorted information about processes.
- touch - Change file timestamps.
- tr - Translate or delete characters.
- tree - List contents of directories in a tree-like format.
- type - Describe a command.
- uniq - Report or omit repeated lines.
- uptime - Tell how long the system has been running.
- wc - Print newline, word, and byte counts for each file.
- whoami - Print effective userid.
- whois - Client for the whois directory service.
- habitctl - Minimalist command line tool you can use to track and examine your habits.
- jwt-cli - Super fast CLI tool to decode and encode JWTs built in Rust.
- rtss - Relative TimeStamps for Stuff.
- jc - Serializes the output of popular gnu linux command line tools and file types to structured JSON output. This allows piping of output to tools like jq.
- psrecord - Record the CPU and memory activity of a process.
- bottom - Cross-platform graphical process/system monitor with a customizable interface and a multitude of features.
- undent - Unindent text/code.
- misspell - Correct commonly misspelled English words in source files.
- rargs - Kind of xargs + awk with pattern-matching support.
- dupe-krill - Fast file deduplicator.
- fcat - Cat implementation in Rust. Only works on Linux.
- lorem - Python lorem ipsum generator.
- miller - Like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON.
- kickstart - Scaffolding tool to get new projects up and running quickly.
- scc - Very fast accurate code counter with complexity calculations and COCOMO estimates.
- gf - Wrapper around grep, to help you grep for things.
- godu - Simple golang utility helping to discover large files/folders.
- now - Develop. Preview. Ship.
- nomino - Batch rename utility for developers.
- hex - Futuristic take on hexdump, made in Rust.
- url-parser - Command-line URL parser, written in Go.
- luneta - Interactive filter that can be easily composed within any script.
- spin - Simple scaffolding tool.
- as-tree - Print a list of paths as a tree of paths.
- wifi-password - Quickly share Wi-Fi connection info.
- delta - Syntax-highlighter for git and diff output.
- fzz - Allows you to change the input of a single command interactively.
- github-stats - Command-line tool to get the total traffic statistics of your GitHub repositories.
- map - Map lines from stdin to commands.
- JQL - JSON Query Language CLI tool built with Rust.
- jiq - jid on jq - interactive JSON query tool using jq expressions.
- ijq - Interactive jq tool. Like jqplay for the command line.
- rex - Command line playground for regular expressions.
- PWatch - Process Watcher.
- Rdfind - Command line tool that finds duplicate files.
- bfs - Breadth-first search for your files.
- Choose - Human-friendly and fast alternative to awk and cut. (HN)
- yj - Convert YAML <=> TOML <=> JSON <=> HCL.
- buku - Browser-independent bookmark manager.
- twf - Standalone tree view file explorer, inspired by fzf.
- hostblock - Simple terminal interface for blocking websites via the /etc/hosts file.
- ugrep - Ultra fast grep with interactive query UI.
- sad - CLI search and replace. Show you a nice diff of proposed changes before you commit them.
- wfh - Continuously watches your local directories and rsync them against a remote host.
- teip - Select partial standard input and replace with the result of another command.
- Got - Simple and fast concurrent downloader.
- duf - Disk Usage/Free Utility.
- espanso - Cross-platform Text Expander written in Rust.
- huniq - Command line utility to remove duplicates from the given input. Note that huniq does not sort the input, it just removes duplicates.
- RustScan - Modern Port Scanner.
- nat - Complete replacement for the 'ls' command.
- csvq - SQL-like query language for csv.
- gping - Ping, but with a graph.
- FClones - Efficient Duplicate File Finder.
- googler - Google from the terminal.
- Proji - Powerful cross-platform CLI project templating tool.
- dasel - Allows you to query and modify data structures using selector strings.
- McFly - Fly through your shell history.
- pbgopy - Copy and paste between devices.
- prism - RTMP stream recaster / splitter.
- menyoki - Screen{shot,cast} and perform ImageOps on the command line. (Web)
- projen - Define and maintain complex project configuration through code.
- lsd - Next gen ls command.
- ls-lint - Extremely fast directory and filename linter - Bring some structure to your project directories. (Docs)
- lychee - Fast, async, resource-friendly link checker written in Rust.
- vgrep - User-friendly pager for grep.
- urlhunter - Recon tool that allows searching on URLs that are exposed via shortener services.
- rip - Safe and ergonomic alternative to rm.
- Orderly - Tool that provides ordered and controlled start, stop, restart and cleanup of a group of processes.
- Ruplacer - Find and replace text in source files.
- Graphtage - Semantic diff utility and library for tree-like files such as JSON, JSON5, XML, HTML, YAML, and CSV.
- sq - Command line tool that provides jq-style access to structured data sources such as SQL databases, or document formats like CSV or Excel. (Web)
- yank - Yank terminal output to clipboard. (HN)
- xplr - Hackable, minimal, fast TUI file explorer, stealing ideas from nnn and fzf.
- Freshfetch - Fresh take on Neofetch.
- rush - Cross-platform command-line tool for executing jobs in parallel.
- so - Terminal interface for Stack Overflow.
- gdu - Disk usage analyzer with console interface written in Go.
- kalk - Command line calculator that supports math-like syntax with user-defined variables, functions, derivation, integration, and complex numbers. (Web) (HN)
- fcp - Significantly faster alternative to the classic Unix cp command.
- Renamer - Command line utility to batch-rename files via your editor.
- Difftastic - Syntax-aware structured diff tool. (HN)
- hck - Drop in replacement for cut that can use a regex delimiter instead of a fixed string.
- calendarheatmap - Calendar heatmap inspired by GitHub contribution activity.
- rnr - Command-line tool to batch rename files and directories.
- Gaze - Runs a command, right after you save a file.
- Czkawka - Multi functional app to find duplicates, empty folders, similar images etc.
- Rustcat - Netcat Alternative in Rust.
- s - Web search from the terminal. Just opens in your browser.
- Sweep - Reduce the disk usage of your projects by removing dependencies & builds.
- Viddy - Modern watch command. Time machine and pager etc.
- tree-grepper - Like grep, but uses tree-sitter grammars to search.
- qq - Select stdin with query.
- todocheck - Static code analyzer for annotated TODO comments.
- TV - Cross-platform CSV pretty printer made to maximize viewer enjoyment. (HN)
- anew - Tool for adding new lines to files, skipping duplicates.
- hors - Instant coding answers via the command line.
- dua - View disk space usage and delete unwanted data, fast.
- conan - Find clue about the type of the file.
- alt - Find alternate files.
- fzwiki - Command with fzf-like UI to quickly search Wikipedia articles and open it in your browser.
- Untree - Converts tree diagrams produced by tree back into directory file structures.
- IDNT - Batch software uninstall.
Related
- Awesome CLI apps
- Awesome command line apps
- Awesome shell
- Structured text tools - List of text-based file formats and command line tools for manipulating each.