█████╗ ██╗ ██╗███████╗███████╗ ██████╗ ███╗ ███╗███████╗
██╔══██╗██║ ██║██╔════╝██╔════╝██╔═══██╗████╗ ████║██╔════╝
███████║██║ █╗ ██║█████╗ ███████╗██║ ██║██╔████╔██║█████╗
██╔══██║██║███╗██║██╔══╝ ╚════██║██║ ██║██║╚██╔╝██║██╔══╝
██║ ██║╚███╔███╔╝███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
███████╗██╗ ██╗███████╗██╗ ██╗
██╔════╝██║ ██║██╔════╝██║ ██║
███████╗███████║█████╗ ██║ ██║
╚════██║██╔══██║██╔══╝ ██║ ██║
███████║██║ ██║███████╗███████╗███████╗
╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
Awesome Shell
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php. This awesome collection is also available on Unix-Shell.ZEEF.com .
Shells
Choose your base shell.
bash - GNU Project's shell (Bourne Again SHell)
fish - Smart and user-friendly command line shell
xiki - Makes the shell console more friendly and powerful
xonsh - Python-ish, BASHwards-looking shell language and command prompt
zsh - Powerful shell with scripting language
Command-Line Productivity
Search, bookmarks, multiplexing, and other tools that make your terminal experience more productive.
AdvancedNewFile 3 1 - Fast creation of files and directories in a recursive way. Inspired by the Vim plugin.
ag 14k 1k - Super fast string search through a directory hierarchy
aliases 63 8 - Contextual, dynamic, organized aliases for bash
aliasme 25 1 - alias helper to change directory quickly
autoenv 4k 208 - Directory-based environments
autojump 3k 179 - A cd command that learns - easily navigate directories from the command line
bashhub 385 27 - ☁️ Bash history in the cloud. Indexed and searchable.
bashmarks 687 138 - Directory bookmarks for the shell
bd 683 51 - Quickly go back to a parent directory
boilr 504 27 - A blazingly fast CLI tool for creating projects from boilerplate templates.
boom 1k 124 - Store links and snippets in the commandline
borg 437 21 - A terminal based search engine for bash commands
Buku 2k 168 - Powerful command-line bookmark manager
byobu - Text-based window manager and terminal multiplexer
commacd 198 11 - A faster way to move around in Bash
desk 2k 84 - A lightweight workspace manager for the shell
direnv 2k 89 - An environment switcher for the shell, compare with autoenv
enhancd 666 53 - 🚀 A next-generation cd command with an interactive filter
fasd 1k 44 - Command-line productivity booster, offers quick access to files and directories
foxy 2 0 - Plain text bookmarks for firefox and surf browsers.
fz 79 3 - Seamless fuzzy tab completion for z
fzf 12k 621 - A command-line fuzzy finder
googler 3k 349 - Google Search, Google Site Search, Google News from the terminal
has 6 2 - has
helps you check presence of various command line tools and their versions on path
how2 - how2
finds the simplest way to do something in a unix shell. It's like man
, but you can query it in natural language.
hhighlighter 40 4 - Colorize words in a command output
hr 1k 70 -
for your terminal
hss 85 5 - An interactive parallel ssh client featuring autocomplete and asynchronous execution
hstr 772 61 - Bash History Suggest Box
jump 333 25 - Jump helps you navigate your file system faster by learning your habits.
k 558 51 - k is a Zsh script to make directory listings more readable, adding Git status, fileweight colors and rotting dates
k alias 6 1 - get kool aliases (and more) working with a simple one-liner
lf.sh - Quickly search files with fewer typings and do many more (grepping, copying path to clipboard, etc)
marker 654 26 - Bookmark your shell commands
modules - Environment manager for the shell (compare to direnv and autoenv)
nnn 963 53 - File browser and disk usage analyzer with excellent desktop integration
parallel - Build and execute shell command lines from standard input in parallel
pathpicker 4k 252 - Accepts inputs like grep, searches, git etc; allows selecting files from the result of the input, which you can then open or provide as argument to a command.
percol 2k 131 - Adds flavor of interactive filtering to the traditional pipe concept of UNIX shell
qfc 467 15 - File-completion widget for Bash and Zsh
rg 7k 325 - ripgrep is a line oriented search tool that combines the usability of The Silver Searcher with the raw speed of GNU grep
SHML 105 8 - Style framework for the terminal (Shell Markup Language)
slugify 48 7 - Command that converts filenames and directories to a web friendly format
sman 127 12 - 🐛 A command-line snippet manager
spark 4k 192 - ▁▂▃▅▂▇ in your shell
Shark - ▁▂▃▅ Sparkline Generator
sheet 202 12 - Text snippets for the command line
spot - Tiny file search utility
snips 21 4 - Commandline tool to manage snippets of code.
sshfs 153 20 - A tool for mounting remote file systems over SSH
sshrc 4k 152 - Bring your .bashrc, .vimrc, etc. with you when you SSH
sudocabulary 83 20 - Learn English Vocabulary from your terminal
surfraw - browse specific site and search the web from your terminal without browser.
thefuck 36k 2k - Fix common shell mistakes by using an easy to remember command
tldr 117 16 - A fully-functional bash client for tldr, simplified and community-driven man pages
tmux - Amazing terminal multiplexer
up 31 1 - Ascend directories by name or count; for bash, zsh, and fish.
v 307 29 - z for vim.
wemux 2k 67 - Multi-User Tmux Made Easy
z 7k 708 - z is the new j, yo
Customization
Custom prompts, color themes, etc.
For Developers
Command-line development, version control, and deployment.
bcal 34 11 - Byte CALculator for storage conversions and calculations
bocker 4k 358 - Docker implemented in 100 lines of bash
cloc 3k 233 - Count Lines of Code
doclt - A command line interface to Digital Ocean
dokku 5k 601 - Docker powered mini-Heroku. The smallest PaaS implementation you've ever seen.
getopts - CLI parser for fish
git-extra-commands 218 20 - Many Git extra utilities. Churn, cut-branch, improved-merge and many more.
11k 913 - Git utilities -- repo summary, repl, changelog population, author commit percentages and more
git-open 1k 130 - Type git open
to open the GitHub page or website for a repository in your browser
git-semver 111 13 - Git plugin for easing semantic versioning and changelog validation
git-sh 592 43 - A customized Bash environment suitable for Git work
git-up 2k 98 - Automatically rebase incoming changes instead of merging. Be polite!
hub 12k 1k - hub helps you win at git.
mr 539 107 - Multiple Repository management tool
overcommit 2k 178 - A fully configurable and extendable Git hook manager
pre-commit - A framework for managing and maintaining multi-language pre-commit hooks
repren 141 12 - Command-line search-and-replace and file-renaming swiss army knife
slap 4k 185 - Sublime-like terminal-based text editor that runs on Node.js
shipit 376 41 - Minimalistic SSH deployment
starring 174 4 - Automatically star the npm-packages that you are using on GitHub.
tag 434 20 - Instantly jump to your ag matches.
System Utilities
OS-related tools, including system administration, system debugging, and file and process management.
atop - ASCII full-screen performance monitor that is capable of reporting the activity of all processes
ccat 2k 58 - ccat is the colorizing cat. It works similar to cat but displays content with syntax highlighting.
colorex - Displays files or sdtin with pretty colors for matched patterns.
progress 909 84 - Linux tool to show progress for cp, rm, dd, ...
glances 9k 752 - Glances an Eye on your system
goaccess 5k 432 - GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems.
histstat 30 13 - History for netstat
htop 3k 343 - A ncurses based interactive process viewer which aims to be a better top
lnav - An advanced log file viewer for the small-scale
ls++ 243 28 - Colorized ls on steroids
lsp 457 18 - An improved ls
, with file descriptions in plain language and intelligent file grouping
mtr 678 177 - The functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool.
ncdu - NCurses Disk Usage
powertop 276 76 - Battery/Power usage and device stats monitoring command-line tool, with tune-up options.
procdog 47 4 - Lightweight command-line control of long-lived processes like servers
quick-secure 119 5 - Quickly secure and harden UNIX/Linux systems
Downloading and Serving
Self-hosted, lightweight servers and networking tools written in shell scripts.
aria2 5k 655 - aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, BitTorrent and Metalink
balls 490 21 - Bash on Balls
bashttpd 458 53 - A web server written in Bash
bitpocket 632 46 - "DIY Dropbox" or "2-way directory (r)sync with proper deletion"
Dropbox-Uploader 5k 863 - Dropbox Uploader is a Bash script which can be used to upload, download, list or delete files from Dropbox
httpie 17k 1k - HTTPie is a command line HTTP client, a user-friendly cURL replacement
ngincat 63 4 - Tiny Bash HTTP server using netcat
resty 2k 146 - Little command line REST client that you can use in pipelines
youtube-dl 38k 8k - Small command-line program to download videos from YouTube.com and other video sites
Multimedia and File Formats
Tools for handling video and audio files.
adb-export - Export Android content providers to CSV format
Android-Kitchen 556 429 - A text-based kitchen for Android ROM customization. Uses shell scripts and works with Cygwin/OS X/Linux
Beets 3k 589 - Music library manager and MusicBrainz tagger
cmus 4k 511 - Cross-platform cli audio player.
gifgen 104 4 - Simple high quality GIF encoding
image-scraper 392 65 - A cool command line image scraper with a lot of features.
imgp 133 9 - Blazing fast batch image resizer and rotator
jq 9k 617 - Sed for json data. You can use it to slice and filter and map and transform structured data
mpv - Lets you play most audio and video formats (using ASCII characters) in the shell as well as in a GUI.
nehm 25 4 - Console tool, which downloads, sets IDv3 tags and adds to your iTunes (if you use it) your SoundCloud likes in convenient way
PiCAST 1k 279 - PiCAST turns your $35 Raspberry Pi in to a Chromecast like Device
sejda 288 42 - Command line manipulation of PDF documents (split, merge, rotate, convert to jpg, extract text, etc)
xidel 61 10 - Cli tool to filter, map and create HTML/XML/JSON data with (Turing-complete) XPath and XQuery.
xmlstarlet - Old but powerful tool for command-line XML formatting, filtering, and manipulation.
Applications
Command line-based applications or command line access to existing services.
ansiweather 1k 133 - Weather in your terminal, with ANSI colors and Unicode symbols
bashblog 629 123 - A Bash script that handles blog posting
choosealicense-cli 32 3 - Choose an OSS license from the comfort of your terminal
facebook-cli 124 11 - Facebook command line tool
fanyi 88 17 - Translate English to Chinese in terminal
geeknote 899 152 - Command line evernote client
haxor-news 2k 112 - Browse Hacker News like a haxor
hn-cli 422 25 - Browse Hacker News from the comfort of your Terminal
iponmap 115 6 - Draw point on world map using ip address
isitup 24 2 - Check whether a website is up or down
jrnl 2k 303 - A simple command line journal application that stores your journal in a plain text file
ledger 2k 329 - Command line accounting
licen 26 4 - Generate your license. Yet another lice, but implement with Jinja2 and docopt
moviemon - Everything about your movies within the command line.
pockyt 177 10 - Read, Manage, and Automate your Pocket collection.
pushblast 9 0 - Get PushBullet notifications when a shell program exits
pushbullet-bash 199 55 - Bash interface to the PushBullet API
Reddit Terminal Viewer 3k 188 - Browse Reddit from your terminal
SAWS 4k 167 - A Supercharged AWS CLI
taskwarrior - A command-line TODO list manager
terjira 310 12 - Command line power tool for Jira
transfer.sh — Quickly upload and share files from your shell
vl 27 3 - URL link checker on text documents
wego 5k 352 - Weather app for the terminal
whereami 46 4 - Get your geolocation information from the CLI
wttr.in 4k 229 - ⛅️ The right way to check the weather (curl wttr.in)
Games
All work and no play is a cruddy way to spend your day.
bash2048 409 104 - Bash implementation of 2048 game
minesweeper 4 1 - Bash implementation of minesweeper
nudoku 60 8 - ncurses based sudoku game written in C
sedtris 14 3 - Tetris in sed
sed-scripts 8 1 - Arkanoid and Sokoban written using sed
tty-solitaire 80 11 - Play solitaire in your terminal!
Shell Package Management
Tools for managing multiple shell configurations. For zsh-specific tools, see the Zsh section.
bash-it 4k 1k - A community Bash framework
basher 296 23 - A package manager for shell scripts
bpkg - JavaScript has npm, Ruby has Gems, Python has pip and now Shell has bpkg
dotdrop 63 6 - Save your dotfiles once, deploy them everywhere
dotfiler 134 33 – Shell agnostic git based dotfiles package manager, written in Python.
fresh 841 99 - Keep your dotfiles fresh
homeshick 1k 125 - Git dotfile synchronizer written in Bash
shundle - Plugin manager for shell scripts
vcsh 1k 118 - Config manager based on Git
yadm - Git-based dotfiles manager supporting encryption, alternates, and bootstrapping
Shell Script Development
Tools for writing, improving, or organizing Bash or other shell scripts
ansi 100 8 - ANSI escape codes in pure bash - change text color, position the cursor, much more
assert.sh 311 49 - Bash unit testing framework
bashful - A collection of libraries to simplify writing Bash scripts
bashmanager 37 7 - mini bash framework for creating command line tools
bashwithnails 3 2 - a Bash framework written just for fun with testing, dependency management & packaging
bats 56 15 - Bash Automated Testing System
crash - Proper error handling, exceptions and try/catch for ZSH
Fishtape 215 5 - TAP producer and test harness for fish
composure 215 22 - Compose, document, version and organize your shell functions
dispatch 34 2 - A command line argument parser in 50 lines of portable shell script.
is.sh - An alternative for builtin test command, it will make your "if" statements pretty
lumberjack - A logging interface for shell scripts
mo 131 25 - Mustache templates in pure bash
optparse 87 23 - A BASH wrapper for getopts, for simple command line arguments.
rerun 184 20 - A modular shell automation framework to organize your keeper scripts
revolver 24 4 - A reusable progress spinner for shell scripts
semver_bash 37 11 - Semantic Versioning in Bash
sh-semver 8 1 - Semver tool for bash - finds versions matching to specified rules
shellcheck 8k 472 - Static analysis tool for shell scripts
shellfire 1k 48 - A repository of namespaced, composable shell (bash, sh and dash) function libraries
shpec 308 32 - A shell testing framework
shutit - Automation framework based on bash and pexpect
sub 1k 87 - A delicious way to organize programs
ts 32 4 - A shell test script
urchin 151 14 - An idiomatic shell testing framework that uses only shell commands
shunit2 309 56 - A unit test framework for Bash scripts with a flavour of JUnit/PyUnit.
rebash 20 1 - Scripting library/framework. Features: imports, exceptions, doc-tests ...
zunit - A powerful unit testing framework for ZSH
Guides
Other Awesome Lists
Other amazingly awesome lists can be found in awesome-awesome 177 13 and awesome-awesomeness 20k 3k .
See also