awesome-shell
by alebcay
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
AI summary
CLI toolbox
A curated list of command-line frameworks and tools for improving productivity and efficiency
- stars
- 33.4K
- forks
- 2.4K
- watching
- 778
- awesome lists
- 22
- entries
- 369
What's in the list
369 links in 15 sections, with live GitHub stats.activeno commit in 2y
Links
Shells
- 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 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
murex
A smarter shell and scripting environment with advanced features designed for usability, safety and productivity (eg smarter DevOps tooling)
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
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
arttime
Beauty of text art meets functionality of clock, timer, pomodoro++ time manager
autoenv
Directory-based environments
await
single binary that run list of commands in parallel and waits for their termination
bartib
A simple timetracker for the command line. It saves a log of all tracked activities as a plaintext file and allows you to create flexible reports
bashhub
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
broot
A better way to navigate directories
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 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
CLI tool to input and store your ideas without leaving the terminal
fasd
Command-line productivity booster, offers quick access to files and directories
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
helps you check presence of various command line tools and their versions on path
how2
finds the simplest way to do something in a unix shell. It's like , but you can query it in natural language
hhighlighter
Colorize words in a command output
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
Terminal file manager written in Go, inspired by ranger
lf.sh
Quickly search files with fewer typings and do many more (grepping, copying path to clipboard, etc)
lowcharts
Draw low-resolution graphs in terminal
- 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
ok-sh
Do you work on many different projects? And in each project, are there commands you use that are specific to that project? You need a .ok file
- 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
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
tere
A faster alternative to cd + ls
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
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
Command-Line Productivity / 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
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
aphrodite-terminal-theme
— Minimalistic Aphrodite theme (prompt) for sexy terminals that works in bash, fish and zsh
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
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
- oh-my-posh
Prompt theme engine for any shell and platform written in go
polyglot
An informative Git prompt that works in bash, zsh, ksh, mksh, pdksh, oksh, dash, yash, busybox sh, and osh
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
- 1Password SSH Agent
Authenticate Git and SSH workflows with biometric unlock using 1Password
- 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
forgit
Utility tool for 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 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
gita
A command-line tool to manage multiple git repos
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
nve
Run any command on specific Node.js versions
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
- trunk
Blazingly fast meta code checker and formatter
vmn
git-based automatic versioning and state recovery solution agnostic to language or architecture
wipe-modules
A little agent that removes the node_modules folder of non-active projects
System Utilities
- atop
ASCII full-screen performance monitor that is capable of reporting the activity of all processes
bmon
Real-time network bandwidth monitor and rate estimator with human-friendly visual output
btop
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
progress
Linux tool to show progress for , , , 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
- 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
lsd
LSDeluxe, rewrite of GNU ls with lot of added features like colors, icons, tree-view and more formatting options
lsp
An improved , 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 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
tiptop
Graphical command-line system monitor
wifi-wand
a Ruby command line application for managing WiFi on MacOS (install by )
xiringuito
SSH-based "VPN for poors"
Downloading and Serving
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
Kapow!
If you can script it, you can HTTP it
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
xh
Friendly and fast tool for sending HTTP requests
yt-dlp
Command-line program to download videos from YouTube.com and other video sites
Multimedia and File Formats
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 / but supports JSON, YAML, TOML and XML with zero runtime dependencies
dzr
Cross-platform Deezer.com audio player
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
jc
Convert command output, file-types, and common strings to JSON or YAML for easier use in scripts
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
library
Create SQLITE databases for folders of music, video, images, or online media. Play and track media like Plex but a CLI-only interface with many sorting options
- 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
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 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
ticker
— Terminal stock ticker with live updates and position tracking
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
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
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
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
- bashly
Bash command line framework and CLI generator
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
-based Bash language server
bash-modules
functions for developing with enabled
bats
Bash Automated Testing System
composure
Compose, document, version and organize your shell functions
crash
Proper error handling, exceptions and try/catch for ZSH
critic.sh
Dead simple testing framework for Bash with coverage reporting
dispatch
A command line argument parser in 50 lines of portable shell script
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
getoptions
An elegant option parser for shell scripts (sh, bash and all POSIX shells)
getopts.fish
CLI parser for fish
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
- Greg Wooledge's (aka "greycat") wiki
. Specifically , and
Other Awesome Lists / See also
Nothing in this list matches your filter.
Featured in 22 awesome lists
Each link jumps to the spot where the list mentions awesome-shell.
sindresorhus/awesome
hack-with-github/awesome-hacking
bayandin/awesome-awesomeness
enaqx/awesome-pentest
agarrharr/awesome-cli-apps
jnv/lists
webpro/awesome-dotfiles
detailyang/awesome-cheatsheet
sirredbeard/awesome-wsl
jdorfman/awesome-json-datasets
emijrp/awesome-awesome
fleveque/awesome-awesomes
learn-anything/command-line-tools
erichs/awesome-awesome
itech001/awesome-linux-resources
bradoyler/awesome-all
flyhigher139/awesome-collection
szabgab/awesome-lists
coopermaa/awesome-awesome
0ex/more-awesome
ruby-vietnam/awesome-rails
netanmangal/awesome-hacking