█████╗ ██╗ ██╗███████╗███████╗ ██████╗ ███╗ ███╗███████╗
██╔══██╗██║ ██║██╔════╝██╔════╝██╔═══██╗████╗ ████║██╔════╝
███████║██║ █╗ ██║█████╗ ███████╗██║ ██║██╔████╔██║█████╗
██╔══██║██║███╗██║██╔══╝ ╚════██║██║ ██║██║╚██╔╝██║██╔══╝
██║ ██║╚███╔███╔╝███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
███████╗██╗ ██╗███████╗██╗ ██╗
██╔════╝██║ ██║██╔════╝██║ ██║
███████╗███████║█████╗ ██║ ██║
╚════██║██╔══██║██╔══╝ ██║ ██║
███████║██║ ██║███████╗███████╗███████╗
╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
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 -
Command-Line Productivity -
Directory Navigation -
Customization -
For Developers -
System Utilities -
Downloading and Serving -
Multimedia and File Formats -
Applications - Games -
Shell Package Management -
Shell Script Development -
Guides -
Awesome Zsh
-
Awesome Fish
- Other Awesome Lists
Shells
Choose your base shell.
-
bash - GNU Project’s
shell (Bourne Again SHell)
-
elvish - Friendly, expressive shell
features like anonymous functions and data structures
-
es - The extensible
shell, based on Plan 9’s
rc shell
-
fish - Smart and user-friendly
command line shell
-
ion - A modern system
shell that features a simple, yet powerful, syntax. It is written
entirely in Rust.
- ksh93 - Korn Shell
-
mksh - MirBSD Korn Shell
-
ngs - Fully featured
scripting language created specifically for Ops. REPL is being
developed.
-
nushell - A modern
shell written in Rust
-
oksh - Portable OpenBSD ksh
-
osh - Bash compatible, with
new/modern Unix shell language called Oil
-
pdksh
- Public domain Korn shell
-
powershell
a cross-platform task automation and configuration management framework,
consisting of a command-line shell and scripting language
-
shell++ -
Friendly and modern functional and object oriented shell script language
-
shenv - Simple shell
version management
-
tcsh - C shell with file name
completion and command line editing
-
xonsh - Python-ish, BASHwards-looking shell
language and command prompt
-
yash - A POSIX-compliant command
line shell with built-in support for completion and prediction based on
command history
-
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
-
autoenv -
Directory-based environments
-
bashhub -
:cloud: Bash history in the cloud. Indexed and searchable.
-
boilr - A blazingly fast
CLI tool for creating projects from boilerplate templates.
-
boom - Store links and
snippets in the command line
-
borg - A terminal based
search engine for bash commands
-
browsh - The modern
text-based browser
-
Buku - Powerful command-line
bookmark manager
-
byobu - Text-based window manager
and terminal multiplexer
-
cod — A completion daemon
for shell that learns when you invoke
--help
commands
-
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
-
dnote - A simple command
line notebook with multi-device sync and web interface
-
eureka - :bulb: CLI tool
to input and store your ideas without leaving the terminal
-
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.
-
funky - Extends
functionality of shell functions making them more powerful and flexible.
-
fz - Seamless fuzzy tab
completion for z
-
fzf - A command-line fuzzy
finder
-
gitmux - Show Git status in
Tmux status bar
-
googler - Google Search,
Google Site Search, Google News from the terminal
-
googlr - Command line
tool that lets you search Google from your terminal.
-
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.
-
navi - An interactive
cheatsheet tool for the command-line
-
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
-
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
-
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)
-
mcfly - Fly through your
shell history. Great Scot!
-
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
-
pass - Manage passwords
from the command line with GPG encryption and optional git integration.
-
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
-
resh - Contextual shell
history for Zsh and Bash
-
rg - ripgrep is a
line oriented search tool that combines the usability of The Silver
Searcher with the raw speed of GNU grep
-
screen - GNU terminal
multiplexer
-
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 - :bug: A
command-line snippet manager
-
spark - ▁▂▃▅▂▇ in your
shell
-
spark.fish -
▁▂▃▅ Sparkline Generator
-
sheet - Text snippets
for the command line
-
spot - Tiny file search
utility
-
snips - Command line
tool to manage snippets of code.
-
sqlline - Shell for
issuing SQL to relational databases via JDBC (multiline, completion,
highlighting, dialect support)
-
sshfs - A tool for
mounting remote file systems over 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.
-
td-cli - A todo
command line manager to organize and manage your todos across multiple
projects.
-
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
-
topalias - bash/zsh
aliases generator from command history with shell statistic
-
undollar - undollar
bites the dollar sign off the tip of the command you just pasted into
your terminal
-
usql - Universal command-line
interface for SQL databases.
- v - z for vim.
-
wemux - Multi-User Tmux
Made Easy
-
xiki - Makes the shell console more
friendly and powerful
-
xplr - A hackable,
minimal, fast TUI file explorer
-
xsv - a fast CSV command
line toolkit written in Rust
-
xxh - Bring your favorite shell
wherever you go through the SSH.
Directory Navigation
-
aliasme - alias helper
to change directory quickly
-
autojump - A cd command
that learns - easily navigate directories from the command line
-
bashmarks - Directory
bookmarks for the shell
-
bd - Quickly go back
to a parent directory
-
commacd - A faster way
to move around in Bash
-
enhancd - :rocket: A
next-generation cd command with an interactive filter
-
goto - A shell utility
for navigation to aliased directories supporting auto-completion
-
jump - Jump helps you
navigate your file system faster by learning your habits.
-
lazy-cd - Simple
bash commands for bookmarked navigation of the file system, complete
with bash-completion.
-
up - Ascend
directories by name or count; for bash, zsh, and fish.
- z - z is the new j, yo
-
z.lua - A new cd
command that helps you navigate faster by learning your habits
-
zoxide - A faster
way to navigate your filesystem, written in Rust
-
zpyi - Python in Zsh
- Easy python scripting in shell
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
- :bullettrain_side: An oh-my-zsh shell theme based on the Powerline Vim
plugin
-
emojify Emoji on the
command line :scream:
-
flatui-terminal-theme
- Nicer colors for terminal
-
geometry - A
minimal ZSH theme where any function can be added to the left prompt or
(async) right prompt on the fly.
-
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
-
powerlevel10k -
Super flexible awesome powerline ZSH theme
-
sexy-bash-prompt
- Bash prompt with colors, Git statuses, and Git branches
-
starship - Fast, customisable,
cross-shell prompt written in rust
-
synth-shell -
Greeter with a customizable status report and a fancy bash prompt
For Developers
Command-line development, version control, and deployment.
-
ack - A grep-like search tool
optimized for source code.
-
add-gitignore -
Interactive CLI that generates a .gitignore for your project based on
your needs.
-
bcal - Byte CALculator for
storage conversions and calculations
-
bitwise - Terminal
based interactive bit manipulator in curses.
-
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.
-
getopts.fish
- CLI parser for fish
-
forgit - Utility tool for
git
taking advantage of fuzzy finder fzf.
-
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
-
hub - hub helps you win at
git.
-
just - Task runner for
saving and running project-specific commands.
-
licins - Insert
commented software licenses into source code.
-
mkdkr - Makefile +
Docker = CI Pipeline
-
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.
-
wipe-modules - A
little agent that removes the node_modules folder of non-active projects
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
-
bat - A
cat
clone with wings
-
bmon - Real-time network
bandwidth monitor and rate estimator with human-friendly visual output
-
bpytop -
Linux/OSX/FreeBSD resource monitor
-
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.
-
exa - A modern version of
ls
.
-
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
-
maza - Local ad
blocker. Like Pi-hole but local and using your operating system.
-
mtr - The functionality
of the ‘traceroute’ and ‘ping’ programs in a single network diagnostic
tool.
-
ncdu - NCurses Disk Usage
-
nmtui -
Text User Interface for controlling NetworkManager
-
powertop -
Battery/Power usage and device stats monitoring command-line tool, with
tune-up options.
-
prettyping -
Making the output of
ping
prettier, more colorful, more
compact, and easier to read.
-
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
-
bashhub-server
- Private cloud shell history. Open source server for bashhub
-
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
-
vesper - 🍸Vesper is
a HTTP framework for Bash/Unix Shell
-
youtube-dl - Small command-line program
to download videos from YouTube.com and other video sites
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.
-
dasel - Query and
update data structures using selectors from the command line. Comparable
to jq /
yq but supports JSON, YAML,
TOML and XML with zero runtime dependencies.
-
fx - Command-line JSON
processing tool by anononymus JavaScript functions
-
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
-
jo - A small utility to
create JSON objects from command-line arguments.
-
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)
-
visidata - A terminal
spreadsheet multitool for exploring and arranging data
(csv/json/xml/xls/yaml/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.
-
yq - yq is a portable
command-line YAML processor
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
-
dstask - Single binary
terminal-based TODO manager with git-based sync + markdown notes per
task
-
editly - Command line video
editor
-
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
-
kanban.bash
- commandline asciii kanban board for minimalist productivity bash
hackers (csv-based)
-
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.
-
nomino - Batch rename
utility using regex, sort and map file options.
-
pcalc -
Calculator made for programmers working with multiple number
representations, sizes, and overall close to the bits.
-
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 - :partly_sunny:
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
-
bashew - bash script
creator - from small stand-alone script to complex projects with CI/CD
and testing
-
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
-
critic.sh - Dead
simple testing framework for Bash with coverage reporting
-
esh - A simple templating
engine based on shell, implemented in ~290 lines of POSIX shell and awk.
-
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.
-
getoptions - An
elegant option parser for shell scripts (sh, bash and all POSIX shells)
-
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
-
powscript -
bash transpiler written in bash (coffeescript for bash)
-
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
-
shellspec - A
full-featured BDD unit testing framework for dash, bash, ksh, zsh and
all POSIX shells
-
shfmt - A shell parser,
formatter, and interpreter with bash support; includes shfmt
-
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