█████╗ ██╗ ██╗███████╗███████╗ ██████╗ ███╗ ███╗███████╗
██╔══██╗██║ ██║██╔════╝██╔════╝██╔═══██╗████╗ ████║██╔════╝
███████║██║ █╗ ██║█████╗ ███████╗██║ ██║██╔████╔██║█████╗
██╔══██║██║███╗██║██╔══╝ ╚════██║██║ ██║██║╚██╔╝██║██╔══╝
██║ ██║╚███╔███╔╝███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
███████╗██╗ ██╗███████╗██╗ ██╗
██╔════╝██║ ██║██╔════╝██║ ██║
███████╗███████║█████╗ ██║ ██║
╚════██║██╔══██║██╔══╝ ██║ ██║
███████║██║ ██║███████╗███████╗███████╗
╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
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)
-
elvish - Friendly, expressive shell features like anonymous functions and data structures
-
fish - Smart and user-friendly command line shell
-
osh - Bash compatible, with new/modern Unix shell language called Oil
-
shenv - Simple shell version management
-
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 - Fast creation of files and directories in a recursive way. Inspired by the Vim plugin.
-
ag - Super fast string search through a directory hierarchy
-
aliases - Contextual, dynamic, organized aliases for bash
-
aliasme - alias helper to change directory quickly
-
autoenv - Directory-based environments
-
autojump - A cd command that learns - easily navigate directories from the command line
-
bashhub - Bash history in the cloud. Indexed and searchable.
-
bashmarks - Directory bookmarks for the shell
-
bd - Quickly go back to a parent directory
-
boilr - A blazingly fast CLI tool for creating projects from boilerplate templates.
-
boom - Store links and snippets in the commandline
-
borg - A terminal based search engine for bash commands
-
Buku - Powerful command-line bookmark manager
-
byobu - Text-based window manager and terminal multiplexer
-
commacd - A faster way to move around in Bash
-
CloudClip - Your own clipboard in the cloud, copy and paste text with gist between different systems
-
ddgr - DuckDuckGo from the terminal
-
desk - A lightweight workspace manager for the shell
-
direnv - An environment switcher for the shell, compare with autoenv
-
enhancd - A next-generation cd command with an interactive filter
-
fasd - Command-line productivity booster, offers quick access to files and directories
-
fd - A simple, fast and user-friendly alternative to find.
-
foxy - Plain text bookmarks for firefox and surf browsers.
-
fselect - Find files with SQL-like queries.
-
fz - Seamless fuzzy tab completion for z
-
fzf - A command-line fuzzy finder
-
googler - Google Search, Google Site Search, Google News from the terminal
-
googlr - Command line tool that lets you search Google from your terminal.
-
goto - A shell utility for navigation to aliased directories supporting auto-completion
-
has -
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 - Colorize words in a command output
-
hr -
<hr />
for your terminal
-
hss - An interactive parallel ssh client featuring autocomplete and asynchronous execution
-
hstr - Bash History Suggest Box
-
jump - Jump helps you navigate your file system faster by learning your habits.
-
k - k is a Zsh script to make directory listings more readable, adding Git status, fileweight colors and rotting dates
-
k alias - get kool aliases (and more) working with a simple one-liner
-
lazy-cd - Simple bash commands for bookmarked navigation of the file system, complete with bash-completion.
-
lf.sh - Quickly search files with fewer typings and do many more (grepping, copying path to clipboard, etc)
-
Lmod - Lua-based Environment Modules that enhances Tcl-based modules while being backward compatible (compare to modules)
-
loop - Write and control complex loops with as one-liners
-
marker - Bookmark your shell commands
-
mackup - Keep your application settings in sync (OS X/Linux)
-
modules - Classical Tcl-based Environment Modules managing the shell environment (compare to Lmod, direnv, and autoenv)
-
nnn - File browser and disk usage analyzer with excellent desktop integration
-
parallel - Build and execute shell command lines from standard input in parallel
-
pathpicker - 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.
-
pdd - Tiny date, time diff calculator with timers
-
percol - Adds flavor of interactive filtering to the traditional pipe concept of UNIX shell
-
q - Vim like macro registers for your Bash and Zsh Shell
-
qfc - File-completion widget for Bash and Zsh
-
rg - ripgrep is a line oriented search tool that combines the usability of The Silver Searcher with the raw speed of GNU grep
-
shell-history - Visualize your shell usage with Highcharts
-
SHML - Style framework for the terminal (Shell Markup Language)
-
slugify - Command that converts filenames and directories to a web friendly format
-
sman - A command-line snippet manager
-
spark - ▁▂▃▅▂▇ in your shell
-
Shark - ▁▂▃▅ Sparkline Generator
-
sheet - Text snippets for the command line
-
spot - Tiny file search utility
-
snips - Commandline tool to manage snippets of code.
-
sshfs - A tool for mounting remote file systems over SSH
-
sshrc - Bring your .bashrc, .vimrc, etc. with you when you SSH
-
sudocabulary - Learn English Vocabulary from your terminal
-
surfraw - browse specific site and search the web from your terminal without browser.
-
task-manager - Execute all your scripts with just two or three keystrokes.
-
thefuck - Fix common shell mistakes by using an easy to remember command
-
tldr - A fully-functional bash client for tldr, simplified and community-driven man pages
-
tmux - Amazing terminal multiplexer
-
undollar - undollar bites the dollar sign off the tip of the command you just pasted into your terminal
-
up - Ascend directories by name or count; for bash, zsh, and fish.
-
v - z for vim.
-
wemux - Multi-User Tmux Made Easy
-
xsv - a fast CSV command line toolkit written in Rust
-
z - z is the new j, yo
Customization
Custom prompts, color themes, etc.
-
base16-builder - Base16-Builder
-
bash-full-of-colors - Powerful prompt with screen, tmux, git support and many more
-
bash-git-prompt - An informative and fancy Bash prompt for Git users
-
bash-powerline - Powerline-style Bash prompt in pure Bash script
-
bashstrap - A quick way to spruce up OSX terminal
-
bullet-train-oh-my-zsh-theme - An oh-my-zsh shell theme based on the Powerline Vim plugin
-
emojify Emoji on the command line
-
flatui-terminal-theme - Nicer colors for terminal
-
git-prompt - Bash prompt with Git, SVN and HG modules
-
gittify - A colorful Bash prompt + customized Git aliases
-
Gogh - Color Scheme - Color Scheme for Gnome Terminal
-
liquidprompt - A full-featured & carefully designed adaptive prompt for Bash & Zsh
-
mysql-colorize - Colorization for mysql comand-line client
-
oh-my-git - An opinionated git prompt for bash and zsh
-
polyglot - An informative Git prompt that works in bash, zsh, ksh, mksh, pdksh, dash, and busybox sh
-
sexy-bash-prompt - Bash prompt with colors, Git statuses, and Git branches
For Developers
Command-line development, version control, and deployment.
-
add-gitignore - Interactive CLI that generates a .gitignore for your project based on your needs.
-
bcal - Byte CALculator for storage conversions and calculations
-
bocker - Docker implemented in 100 lines of bash
-
cloc - Count Lines of Code
-
doclt - A command line interface to Digital Ocean
-
dokku - Docker powered mini-Heroku. The smallest PaaS implementation you've ever seen.
-
fishopts - CLI parser for fish
-
git-extra-commands - Many Git extra utilities. Churn, cut-branch, improved-merge and many more.
-
git-extras - Git utilities -- repo summary, repl, changelog population, author commit percentages and more
-
git-open - Type
git open
to open the GitHub page or website for a repository in your browser
-
git-quick-stats - Git quick statistics is a simple and efficient way to access various statistics in git repository.
-
git-semver - Git plugin for easing semantic versioning and changelog validation
-
git-sh - A customized Bash environment suitable for Git work
-
git-up - Automatically rebase incoming changes instead of merging. Be polite!
-
hub - hub helps you win at git.
-
licins - Insert commented software licenses into source code.
-
mr - Multiple Repository management tool
-
overcommit - A fully configurable and extendable Git hook manager
-
pre-commit - A framework for managing and maintaining multi-language pre-commit hooks
-
rebound - Instantly browse Stack Overflow results in your terminal when you get a compiler error
-
repren - Command-line search-and-replace and file-renaming swiss army knife
-
slap - Sublime-like terminal-based text editor that runs on Node.js
-
shipit - Minimalistic SSH deployment
-
starring - Automatically star the npm-packages that you are using on GitHub.
-
tag - Instantly jump to your ag matches.
-
xtm - Command line tool that helps you manage your Xcode project templates.
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
-
catcli - The command line catalog tool for your offline data
-
ccat - 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 - Linux tool to show progress for
cp
, rm
, dd
, and more...
-
stronghold - Easily configure MacOS security settings from the terminal.
-
glances - Glances an Eye on your system
-
goaccess - GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems.
-
hblock - Hosts-file based adblocker
-
histstat - History for netstat
-
htop - A ncurses based interactive process viewer which aims to be a better
top
-
lnav - An advanced log file viewer for the small-scale
-
logdissect - CLI utility and Python API for analyzing log files and other data.
-
ls++ - Colorized ls on steroids
-
lsp - An improved
ls
, with file descriptions in plain language and intelligent file grouping
-
mtr - The functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool.
-
ncdu - NCurses Disk Usage
-
powertop - Battery/Power usage and device stats monitoring command-line tool, with tune-up options.
-
procdog - Lightweight command-line control of long-lived processes like servers
-
quick-secure - Quickly secure and harden UNIX/Linux systems
-
rng - Copy range of lines from file or stdin to stdout.
-
wifi-wand - a Ruby command line application for managing WiFi on MacOS (install by
gem install wifi-wand
)
-
xiringuito - SSH-based "VPN for poors"
Downloading and Serving
Self-hosted, lightweight servers and networking tools written in shell scripts.
-
aria2 - 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 - Bash on Balls
-
bashttpd - A web server written in Bash
-
bitpocket - "DIY Dropbox" or "2-way directory (r)sync with proper deletion"
-
Dropbox-Uploader - Dropbox Uploader is a Bash script which can be used to upload, download, list or delete files from Dropbox
-
httpie - HTTPie is a command line HTTP client, a user-friendly cURL replacement
-
HTTPLab - The interactive web server, let you inspect HTTP requests and forge responses.
-
ngincat - Tiny Bash HTTP server using netcat
-
resty - Little command line REST client that you can use in pipelines
-
shell2http - HTTP-server to execute shell commands. Designed for development, prototyping or remote control
-
youtube-dl - 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 - A text-based kitchen for Android ROM customization. Uses shell scripts and works with Cygwin/OS X/Linux
-
Beets - Music library manager and MusicBrainz tagger
-
cmus - Cross-platform cli audio player.
-
gifgen - Simple high quality GIF encoding
-
image-scraper - A cool command line image scraper with a lot of features.
-
imgp - Blazing fast batch image resizer and rotator
-
jq - Sed for json data. You can use it to slice and filter and map and transform structured data
-
korkut - Quick and simple image processing at the command line.
-
mpv - Lets you play most audio and video formats (using ASCII characters) in the shell as well as in a GUI.
-
nehm - Console tool, which downloads, sets IDv3 tags and adds to your iTunes (if you use it) your SoundCloud likes in convenient way
-
PiCAST - PiCAST turns your $35 Raspberry Pi in to a Chromecast like Device
-
sejda - Command line manipulation of PDF documents (split, merge, rotate, convert to jpg, extract text, etc)
-
xidel - 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.
-
fx - Command-line JSON processing tool by anononymus JavaScript functions
Applications
Command line-based applications or command line access to existing services.
-
ansiweather - Weather in your terminal, with ANSI colors and Unicode symbols
-
awless - A powerful, innovative and small surface CLI to manage AWS.
-
bashblog - A Bash script that handles blog posting
-
carbon-now-cli - 🎨 Beautiful images of your code — from right inside your terminal.
-
choosealicense-cli - Choose an OSS license from the comfort of your terminal
-
cointop - The fastest and most interactive terminal based UI application for tracking cryptocurrencies
-
facebook-cli - Facebook command line tool
-
fanyi - Translate English to Chinese in terminal
-
gcalcli - Google Calendar command line interface
-
geeknote - Command line evernote client
-
haxor-news - Browse Hacker News like a haxor
-
hn-cli - Browse Hacker News from the comfort of your Terminal
-
iponmap - Draw point on world map using ip address
-
isitup - Check whether a website is up or down
-
jrnl - A simple command line journal application that stores your journal in a plain text file
-
ledger - Command line accounting
-
licen - Generate your license. Yet another lice, but implement with Jinja2 and docopt
-
md2png - Convert markdown to PNG image
-
moviemon - Everything about your movies within the command line.
-
pockyt - Read, Manage, and Automate your Pocket collection.
-
pushblast - Get PushBullet notifications when a shell program exits
-
pushbullet-bash - Bash interface to the PushBullet API
-
ranger - A console file manager with VI key bindings.
-
Reddit Terminal Viewer - Browse Reddit from your terminal
-
SAWS - A Supercharged AWS CLI
-
taskbook - Tasks, boards & notes for the command-line habitat
-
taskwarrior - A command-line TODO list manager
-
terjira - Command line power tool for Jira
-
transfer.sh — Quickly upload and share files from your shell
-
vl - URL link checker on text documents
-
wego - Weather app for the terminal
-
whales - A tool to automatically dockerize your applications
-
whereami - Get your geolocation information from the CLI
-
wttr.in - 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 - Bash implementation of 2048 game
-
minesweeper - Bash implementation of minesweeper
-
nudoku - ncurses based sudoku game written in C
-
piu-piu - Horizontal scroller game in bash with multiplayer mode!
-
sedtris - Tetris in sed
-
sed-scripts - Arkanoid and Sokoban written using sed
-
SHTAP - Reusable text adventure engine for Bash 4
-
tty-solitaire - Play solitaire in your terminal!
Shell Package Management
Tools for managing multiple shell configurations. For zsh-specific tools, see the Zsh section.
-
bash-it - A community Bash framework
-
basher - A package manager for shell scripts
-
bashing - Smashing Bash into Pieces
-
bpkg - JavaScript has npm, Ruby has Gems, Python has pip and now Shell has bpkg
-
dotdrop - Save your dotfiles once, deploy them everywhere
-
dotfiler – Shell agnostic git based dotfiles package manager, written in Python.
-
fresh - Keep your dotfiles fresh
-
homeshick - Git dotfile synchronizer written in Bash
-
shallow-backup - Easily create lightweight documentation of installed packages, dotfiles, and more
-
shundle - Plugin manager for shell scripts
-
vcsh - 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 - ANSI escape codes in pure bash - change text color, position the cursor, much more
-
assert.sh - Bash unit testing framework
-
bashful - A collection of libraries to simplify writing Bash scripts
-
Bashlets - A modular extensible toolbox for Bash
-
bashmanager - mini bash framework for creating command line tools
-
bashwithnails - a Bash framework written just for fun with testing, dependency management & packaging
-
bash-language-server - LSP-based Bash language server
-
bats - Bash Automated Testing System
-
crash - Proper error handling, exceptions and try/catch for ZSH
-
Fishtape - TAP producer and test harness for fish
-
composure - Compose, document, version and organize your shell functions
-
dispatch - 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 - Mustache templates in pure bash
-
optparse - A BASH wrapper for getopts, for simple command line arguments.
-
rerun - A modular shell automation framework to organize your keeper scripts
-
revolver - A reusable progress spinner for shell scripts
-
phases - Minimally invasive bash preprocessor, select sections of your script to run
-
semver_bash - Semantic Versioning in Bash
-
sh-semver - Semver tool for bash - finds versions matching to specified rules
-
shellcheck - Static analysis tool for shell scripts
-
shellfire - A repository of namespaced, composable shell (bash, sh and dash) function libraries
-
shpec - A shell testing framework
-
shutit - Automation framework based on bash and pexpect
-
sub - A delicious way to organize programs
-
ts - A shell test script
-
urchin - An idiomatic shell testing framework that uses only shell commands
-
shunit2 - A unit test framework for Bash scripts with a flavour of JUnit/PyUnit.
-
rebash - 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 and awesome-awesomeness.
See also