Awesome Shell Overview
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
🏠 Home · 🔥 Feed · 📮 Subscribe · ❤️ Sponsor · 😺 alebcay/awesome-shell · ⭐ 30K · 🏷️ Development Environment
█████╗ ██╗ ██╗███████╗███████╗ ██████╗ ███╗ ███╗███████╗
██╔══██╗██║ ██║██╔════╝██╔════╝██╔═══██╗████╗ ████║██╔════╝
███████║██║ █╗ ██║█████╗ ███████╗██║ ██║██╔████╔██║█████╗
██╔══██║██║███╗██║██╔══╝ ╚════██║██║ ██║██║╚██╔╝██║██╔══╝
██║ ██║╚███╔███╔╝███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
███████╗██╗ ██╗███████╗██╗ ██╗
██╔════╝██║ ██║██╔════╝██║ ██║
███████╗███████║█████╗ ██║ ██║
╚════██║██╔══██║██╔══╝ ██║ ██║
███████║██║ ██║███████╗███████╗███████╗
╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
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
- 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
- Awesome Bash
- 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 (⭐235) shell
- fish - Smart and user-friendly command line shell
- ion (⭐1.4k) - A modern system shell that features a simple, yet powerful, syntax. It is written entirely in Rust.
- ksh93 (⭐520) - Korn Shell
- mksh (⭐190) - MirBSD Korn Shell
- murex (⭐1.3k) - A smarter shell and scripting environment with advanced features designed for usability, safety and productivity (eg smarter DevOps tooling)
- ngs (⭐1.3k) - Fully featured scripting language created specifically for Ops. REPL is being developed.
- nushell (⭐29k) - A modern shell written in Rust
- oksh (⭐330) - 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++ (⭐141) - Friendly and modern functional and object oriented shell script language
- shenv (⭐37) - 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 (⭐265) - 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 (⭐243) - Fast creation of files and directories in a recursive way. Inspired by the Vim plugin.
- ag (⭐26k) - Super fast string search through a directory hierarchy
- aliases (⭐509) - Contextual, dynamic, organized aliases for bash
- arttime (⭐757) - Beauty of text art meets functionality of clock, timer, pomodoro++ time manager
- autoenv (⭐5.5k) - Directory-based environments.
- await (⭐108) - single binary that run list of commands in parallel and waits for their termination
- bartib (⭐542) - 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 (⭐1.2k) - ☁️ Bash history in the cloud. Indexed and searchable.
- boilr (⭐1.7k) - A blazingly fast CLI tool for creating projects from boilerplate templates.
- boom (⭐1.3k) - Store links and snippets in the command line
- borg (⭐1.6k) - A terminal based search engine for bash commands
- broot (⭐9.8k) - A better way to navigate directories
- browsh (⭐16k) - The modern text-based browser
- Buku (⭐6k) - Powerful command-line bookmark manager
- byobu - Text-based window manager and terminal multiplexer
- cod (⭐508) — A completion daemon for shell that learns when you invoke
--help
commands - CloudClip (⭐76) - Your own clipboard in the cloud, copy and paste text with gist between different systems
- ddgr (⭐2.8k) - DuckDuckGo from the terminal
- desk (⭐2.5k) - A lightweight workspace manager for the shell
- direnv (⭐11k) - An environment switcher for the shell, compare with autoenv
- dnote (⭐2.6k) - A simple command line notebook with multi-device sync and web interface
- eureka (⭐723) - 💡 CLI tool to input and store your ideas without leaving the terminal
- fasd (⭐5.9k) - Command-line productivity booster, offers quick access to files and directories
- fd (⭐31k) - A simple, fast and user-friendly alternative to find.
- foxy (⭐39) - Plain text bookmarks for Firefox and surf browsers.
- fselect (⭐3.7k) - Find files with SQL-like queries.
- funky (⭐634) - Extends functionality of shell functions making them more powerful and flexible.
- fz (⭐496) - Seamless fuzzy tab completion for z
- fzf (⭐58k) - A command-line fuzzy finder
- gitmux (⭐512) - Show Git status in Tmux status bar
- googler (⭐6k) - Google Search, Google Site Search, Google News from the terminal
- googlr (⭐42) - Command line tool that lets you search Google from your terminal.
- has (⭐594) -
has
helps you check presence of various command line tools and their versions on path - how2 (⭐5.7k) -
how2
finds the simplest way to do something in a unix shell. It's likeman
, but you can query it in natural language. - navi (⭐14k) - An interactive cheatsheet tool for the command-line
- hhighlighter (⭐447) - Colorize words in a command output
- hr (⭐1.3k) -
<hr />
for your terminal - hss (⭐338) - An interactive parallel ssh client featuring autocomplete and asynchronous execution
- hstr (⭐3.8k) - Bash History Suggest Box
- k (⭐1.8k) - k is a Zsh script to make directory listings more readable, adding Git status, fileweight colors and rotting dates
- k alias (⭐19) - get kool aliases (and more) working with a simple one-liner
- lf (⭐6.9k) - Terminal file manager written in Go, inspired by ranger
- lf.sh (⭐41) - Quickly search files with fewer typings and do many more (grepping, copying path to clipboard, etc)
- lowcharts (⭐165) - Draw low-resolution graphs in terminal
- Lmod - Lua-based Environment Modules that enhances Tcl-based modules while being backward compatible (compare to modules)
- loop (⭐659) - Write and control complex loops with as one-liners
- marker (⭐2k) - Bookmark your shell commands
- mackup (⭐14k) - Keep your application settings in sync (OS X/Linux)
- mcfly (⭐6.4k) - Fly through your shell history. Great Scot!
- modules - Classical Tcl-based Environment Modules managing the shell environment (compare to Lmod, direnv, and autoenv)
- nnn (⭐18k) - File browser and disk usage analyzer with excellent desktop integration
- ok-sh (⭐79) - 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 (⭐5k) - 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 (⭐368) - Tiny date, time diff calculator with timers
- percol (⭐3.2k) - Adds flavor of interactive filtering to the traditional pipe concept of UNIX shell
- q (⭐67) - Vim like macro registers for your Bash and Zsh Shell
- qfc (⭐569) - File-completion widget for Bash and Zsh
- resh (⭐954) - Contextual shell history for Zsh and Bash
- rg (⭐43k) - 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 (⭐107) - Visualize your shell usage with Highcharts
- SHML (⭐437) - Style framework for the terminal (Shell Markup Language)
- slugify (⭐298) - Command that converts filenames and directories to a web friendly format
- sman (⭐287) - 🐛 A command-line snippet manager
- spark (⭐6k) - ▁▂▃▅▂▇ in your shell
- spark.fish (⭐322) - ▁▂▃▅ Sparkline Generator
- sheet (⭐257) - Text snippets for the command line
- spot (⭐919) - Tiny file search utility
- snips (⭐74) - Command line tool to manage snippets of code.
- sqlline (⭐598) - Shell for issuing SQL to relational databases via JDBC (multiline, completion, highlighting, dialect support)
- sshfs (⭐1.1k) - A tool for mounting remote file systems over SSH
- sudocabulary (⭐160) - Learn English Vocabulary from your terminal
- surfraw - browse specific site and search the web from your terminal without browser.
- task-manager (⭐18) - Execute all your scripts with just two or three keystrokes.
- td-cli (⭐182) - A todo command line manager to organize and manage your todos across multiple projects.
- tere (⭐1.6k) - A faster alternative to cd + ls
- thefuck (⭐81k) - Fix common shell mistakes by using an easy to remember command
- tldr (⭐697) - A fully-functional bash client for tldr, simplified and community-driven man pages
- tmux - Amazing terminal multiplexer
- undollar (⭐156) - undollar bites the dollar sign off the tip of the command you just pasted into your terminal
- usql (⭐8.4k) - Universal command-line interface for SQL databases.
- v (⭐440) - z for vim.
- wemux (⭐3.6k) - Multi-User Tmux Made Easy
- xiki (⭐3.8k) - Makes the shell console more friendly and powerful
- xplr (⭐3.8k) - A hackable, minimal, fast TUI file explorer
- xsv (⭐9.9k) - a fast CSV command line toolkit written in Rust
- xxh (⭐4.8k) - Bring your favorite shell wherever you go through the SSH.
Directory Navigation
- aliasme (⭐111) - alias helper to change directory quickly
- autojump (⭐16k) - A cd command that learns - easily navigate directories from the command line
- bashmarks (⭐1.8k) - Directory bookmarks for the shell
- bd (⭐918) - Quickly go back to a parent directory
- commacd (⭐357) - A faster way to move around in Bash
- enhancd (⭐2.5k) - 🚀 A next-generation cd command with an interactive filter
- goto (⭐856) - A shell utility for navigation to aliased directories supporting auto-completion
- jump (⭐1.7k) - Jump helps you navigate your file system faster by learning your habits.
- lazy-cd (⭐20) - Simple bash commands for bookmarked navigation of the file system, complete with bash-completion.
- up (⭐164) - Ascend directories by name or count; for bash, zsh, and fish.
- z (⭐16k) - z is the new j, yo
- z.lua (⭐2.9k) - A new cd command that helps you navigate faster by learning your habits
- zoxide (⭐13k) - A faster way to navigate your filesystem, written in Rust
- zpyi (⭐101) - Python in Zsh - Easy python scripting in shell
Customization
Custom prompts, color themes, etc.
- aphrodite-terminal-theme (⭐113) — Minimalistic Aphrodite theme (prompt) for sexy terminals that works in bash, fish and zsh
- base16-builder (⭐427) - Base16-Builder
- bash-full-of-colors (⭐175) - Powerful prompt with screen, tmux, git support and many more
- bash-git-prompt (⭐6.6k) - An informative and fancy Bash prompt for Git users
- bash-powerline (⭐874) - Powerline-style Bash prompt in pure Bash script
- bashstrap (⭐1.6k) - A quick way to spruce up OSX terminal
- bullet-train-oh-my-zsh-theme (⭐2.8k) - :bullettrain_side: An oh-my-zsh shell theme based on the Powerline Vim plugin
- emojify (⭐1.5k) Emoji on the command line 😱
- flatui-terminal-theme - Nicer colors for terminal
- geometry (⭐907) - A minimal ZSH theme where any function can be added to the left prompt or (async) right prompt on the fly.
- git-prompt (⭐326) - Bash prompt with Git, SVN and HG modules
- gittify (⭐69) - A colorful Bash prompt + customized Git aliases
- Gogh - Color Scheme (⭐8.5k) - Color Scheme for Gnome Terminal
- liquidprompt (⭐4.4k) - A full-featured & carefully designed adaptive prompt for Bash & Zsh
- mysql-colorize (⭐98) - Colorization for mysql comand-line client
- oh-my-git (⭐3.6k) - An opinionated git prompt for bash and zsh
- oh-my-posh - Prompt theme engine for any shell and platform written in go.
- polyglot (⭐165) - An informative Git prompt that works in bash, zsh, ksh, mksh, pdksh, oksh, dash, yash, busybox sh, and osh
- powerlevel10k (⭐42k) - Super flexible awesome powerline ZSH theme
- sexy-bash-prompt (⭐1.1k) - Bash prompt with colors, Git statuses, and Git branches
- starship - Fast, customisable, cross-shell prompt written in rust
- synth-shell (⭐856) - Greeter with a customizable status report and a fancy bash prompt
For Developers
Command-line development, version control, and deployment.
- 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 (⭐628) - Interactive CLI that generates a .gitignore for your project based on your needs.
- bcal (⭐615) - Byte CALculator for storage conversions and calculations
- bitwise (⭐600) - Terminal based interactive bit manipulator in curses.
- bocker (⭐11k) - Docker implemented in 100 lines of bash
- cloc (⭐18k) - Count Lines of Code
- doclt (⭐44) - A command line interface to Digital Ocean
- dokku (⭐26k) - Docker powered mini-Heroku. The smallest PaaS implementation you've ever seen.
- forgit (⭐4.2k) - Utility tool for
git
taking advantage of fuzzy finder fzf. - git-extra-commands (⭐947) - Many Git extra utilities. Churn, cut-branch, improved-merge and many more.
- git-extras (⭐17k) - Git utilities -- repo summary, repl, changelog population, author commit percentages and more
- git-open (⭐3.2k) - Type
git open
to open the GitHub page or website for a repository in your browser - git-quick-stats (⭐6.1k) - Git quick statistics is a simple and efficient way to access various statistics in git repository.
- git-semver (⭐372) - Git plugin for easing semantic versioning and changelog validation
- git-sh (⭐732) - A customized Bash environment suitable for Git work
- gita (⭐1.6k) - A command-line tool to manage multiple git repos.
- hub (⭐23k) - hub helps you win at git.
- just (⭐16k) - Task runner for saving and running project-specific commands.
- licins (⭐23) - Insert commented software licenses into source code.
- mkdkr (⭐352) - Makefile + Docker = CI Pipeline
- mr - Multiple Repository management tool
- nve (⭐688) - Run any command on specific Node.js versions.
- overcommit (⭐3.9k) - A fully configurable and extendable Git hook manager
- pre-commit - A framework for managing and maintaining multi-language pre-commit hooks
- rebound (⭐4.1k) - Instantly browse Stack Overflow results in your terminal when you get a compiler error
- repren (⭐337) - Command-line search-and-replace and file-renaming swiss army knife
- slap (⭐6.1k) - Sublime-like terminal-based text editor that runs on Node.js
- shipit (⭐561) - Minimalistic SSH deployment
- starring (⭐155) - Automatically star the npm-packages that you are using on GitHub.
- tag (⭐593) - Instantly jump to your ag matches.
- trunk - Blazingly fast meta code checker and formatter
- vmn (⭐58) - git-based automatic versioning and state recovery solution agnostic to language or architecture
- wipe-modules (⭐341) - 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 (⭐45k) - A
cat
clone with wings - bmon (⭐1.1k) - Real-time network bandwidth monitor and rate estimator with human-friendly visual output
- btop (⭐15k) - Linux/OSX/FreeBSD resource monitor
- catcli (⭐191) - The command line catalog tool for your offline data
- ccat (⭐3.1k) - ccat is the colorizing cat. It works similar to cat but displays content with syntax highlighting.
- exa (⭐23k) - A modern version of
ls
. - progress (⭐8.1k) - Linux tool to show progress for
cp
,rm
,dd
, and more... - stronghold (⭐1k) - Easily configure MacOS security settings from the terminal.
- glances (⭐24k) - Glances an Eye on your system
- goaccess (⭐17k) - GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems.
- hblock (⭐1.4k) - Hosts-file based adblocker
- histstat (⭐93) - History for netstat
- htop (⭐5.8k) - A ncurses based interactive process viewer which aims to be a better
top
- lnav - An advanced log file viewer for the small-scale
- logdissect (⭐133) - CLI utility and Python API for analyzing log files and other data.
- ls++ (⭐500) - Colorized ls on steroids
- lsd (⭐12k) - LSDeluxe, rewrite of GNU ls with lot of added features like colors, icons, tree-view and more formatting options.
- lsp (⭐521) - An improved
ls
, with file descriptions in plain language and intelligent file grouping - maza (⭐1.7k) - Local ad blocker. Like Pi-hole but local and using your operating system.
- mtr (⭐2.5k) - The functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool.
- ncdu - NCurses Disk Usage
- nmtui (⭐334) - Text User Interface for controlling NetworkManager
- powertop (⭐906) - Battery/Power usage and device stats monitoring command-line tool, with tune-up options.
- prettyping (⭐1.2k) - Making the output of
ping
prettier, more colorful, more compact, and easier to read. - procdog (⭐75) - Lightweight command-line control of long-lived processes like servers
- quick-secure (⭐405) - Quickly secure and harden UNIX/Linux systems
- rng (⭐31) - Copy range of lines from file or stdin to stdout.
- tiptop (⭐1.6k) - Graphical command-line system monitor.
- wifi-wand (⭐60) - a Ruby command line application for managing WiFi on MacOS (install by
gem install wifi-wand
) - xiringuito (⭐1.1k) - SSH-based "VPN for poors"
Downloading and Serving
Self-hosted, lightweight servers and networking tools written in shell scripts.
- aria2 (⭐33k) - 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 (⭐853) - Bash on Balls
- bashttpd (⭐1.5k) - A web server written in Bash
- bashhub-server (⭐294) - Private cloud shell history. Open source server for bashhub
- bitpocket (⭐1k) - "DIY Dropbox" or "2-way directory (r)sync with proper deletion"
- Dropbox-Uploader (⭐6.5k) - Dropbox Uploader is a Bash script which can be used to upload, download, list or delete files from Dropbox
- httpie (⭐31k) - HTTPie is a command line HTTP client, a user-friendly cURL replacement
- HTTPLab (⭐4k) - The interactive web server, let you inspect HTTP requests and forge responses.
- Kapow! (⭐585) - If you can script it, you can HTTP it.
- ngincat (⭐171) - Tiny Bash HTTP server using netcat
- resty (⭐2.6k) - Little command line REST client that you can use in pipelines
- shell2http (⭐1.2k) - HTTP-server to execute shell commands. Designed for development, prototyping or remote control
- tshare (⭐93) - File sharing from commandline.
- vesper (⭐203) - 🍸Vesper is a HTTP framework for Bash/Unix Shell
- xh (⭐4.5k) - Friendly and fast tool for sending HTTP requests
- yt-dlp (⭐66k) - 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 (⭐101) - Export Android content providers to CSV format
- Android-Kitchen (⭐1k) - A text-based kitchen for Android ROM customization. Uses shell scripts and works with Cygwin/OS X/Linux
- Beets (⭐12k) - Music library manager and MusicBrainz tagger
- cmus (⭐5.2k) - Cross-platform cli audio player.
- dasel (⭐4.7k) - Query and update data structures using selectors from the command line. Comparable to jq (⭐28k) / yq (⭐2.4k) but supports JSON, YAML, TOML and XML with zero runtime dependencies.
- dzr (⭐161) - Cross-platform Deezer.com audio player.
- fx (⭐18k) - Command-line JSON processing tool by anononymus JavaScript functions
- gifgen (⭐536) - Simple high quality GIF encoding
- image-scraper (⭐742) - A cool command line image scraper with a lot of features.
- imgp (⭐998) - Blazing fast batch image resizer and rotator
- jc (⭐7.4k) - Convert command output, file-types, and common strings to JSON or YAML for easier use in scripts.
- jo (⭐4.6k) - A small utility to create JSON objects from command-line arguments.
- jq (⭐28k) - Sed for json data. You can use it to slice and filter and map and transform structured data
- korkut (⭐362) - Quick and simple image processing at the command line.
- library (⭐145) - 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 (⭐85) - Console tool, which downloads, sets IDv3 tags and adds to your iTunes (if you use it) your SoundCloud likes in convenient way
- PiCAST (⭐1.7k) - PiCAST turns your $35 Raspberry Pi in to a Chromecast like Device
- sejda (⭐468) - Command line manipulation of PDF documents (split, merge, rotate, convert to jpg, extract text, etc)
- visidata (⭐7.3k) - A terminal spreadsheet multitool for exploring and arranging data (csv/json/xml/xls/yaml/etc)
- xidel (⭐633) - 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 (⭐10k) - yq is a portable command-line YAML processor
Applications
Command line-based applications or command line access to existing services.
- ansiweather (⭐1.8k) - Weather in your terminal, with ANSI colors and Unicode symbols
- awless (⭐5k) - A powerful, innovative and small surface CLI to manage AWS.
- bashblog (⭐1.6k) - A Bash script that handles blog posting
- carbon-now-cli (⭐5.6k) - 🎨 Beautiful images of your code — from right inside your terminal.
- choosealicense-cli (⭐68) - Choose an OSS license from the comfort of your terminal
- cointop (⭐3.8k) - The fastest and most interactive terminal based UI application for tracking cryptocurrencies
- dstask (⭐754) - Single binary terminal-based TODO manager with git-based sync + markdown notes per task
- editly (⭐4.5k) - Command line video editor
- facebook-cli (⭐394) - Facebook command line tool
- fanyi (⭐1.3k) - Translate English to Chinese in terminal
- gcalcli (⭐3.2k) - Google Calendar command line interface
- geeknote (⭐2.1k) - Command line evernote client
- haxor-news (⭐3.9k) - Browse Hacker News like a haxor
- hn-cli (⭐459) - Browse Hacker News from the comfort of your Terminal
- iponmap (⭐303) - Draw point on world map using ip address
- isitup (⭐61) - Check whether a website is up or down
- jrnl (⭐6.2k) - A simple command line journal application that stores your journal in a plain text file
- kanban.bash (⭐869) - commandline asciii kanban board for minimalist productivity bash hackers (csv-based)
- ledger (⭐5k) - Command line accounting
- licen (⭐37) - Generate your license. Yet another lice, but implement with Jinja2 and docopt
- md2png (⭐30) - Convert markdown to PNG image
- moviemon (⭐198) - Everything about your movies within the command line.
- nomino (⭐534) - Batch rename utility using regex, sort and map file options.
- pcalc (⭐520) - Calculator made for programmers working with multiple number representations, sizes, and overall close to the bits.
- pockyt (⭐490) - Read, Manage, and Automate your Pocket collection.
- pushblast (⭐97) - Get PushBullet notifications when a shell program exits
- pushbullet-bash (⭐228) - Bash interface to the PushBullet API
- ranger (⭐15k) - A console file manager with VI key bindings.
- Reddit Terminal Viewer (⭐4.6k) - Browse Reddit from your terminal
- SAWS (⭐5.2k) - A Supercharged AWS CLI
- taskbook (⭐8.9k) - Tasks, boards & notes for the command-line habitat
- taskwarrior - A command-line TODO list manager
- terjira (⭐858) - Command line power tool for Jira
- ticker (⭐4.8k) — Terminal stock ticker with live updates and position tracking
- vl (⭐26) - URL link checker on text documents
- wego (⭐7.6k) - Weather app for the terminal
- whales (⭐370) - A tool to automatically dockerize your applications
- whereami (⭐162) - Get your geolocation information from the CLI
- wttr.in (⭐23k) - :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 (⭐885) - Bash implementation of 2048 game
- minesweeper (⭐54) - Bash implementation of minesweeper
- nudoku (⭐303) - ncurses based sudoku game written in C
- piu-piu (⭐721) - Horizontal scroller game in bash with multiplayer mode!
- sedtris (⭐504) - Tetris in sed
- sed-scripts (⭐43) - Arkanoid and Sokoban written using sed
- SHTAP - Reusable text adventure engine for Bash 4
- tty-solitaire (⭐263) - Play solitaire in your terminal!
Shell Package Management
Tools for managing multiple shell configurations. For zsh-specific tools, see the Zsh section.
- bash-it (⭐14k) - A community Bash framework
- basher (⭐1.1k) - A package manager for shell scripts
- bashing (⭐73) - Smashing Bash into Pieces
- bpkg - JavaScript has npm, Ruby has Gems, Python has pip and now Shell has bpkg
- dotdrop (⭐1.7k) - Save your dotfiles once, deploy them everywhere
- dotfiler (⭐238) – Shell agnostic git based dotfiles package manager, written in Python.
- fresh (⭐1.2k) - Keep your dotfiles fresh
- homeshick (⭐2k) - Git dotfile synchronizer written in Bash
- shallow-backup (⭐1.2k) - Easily create lightweight documentation of installed packages, dotfiles, and more
- shundle (⭐81) - Plugin manager for shell scripts
- vcsh (⭐2.1k) - 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 (⭐554) - ANSI escape codes in pure bash - change text color, position the cursor, much more
- assert.sh (⭐479) - Bash unit testing framework
- bashew (⭐234) - bash script creator - from small stand-alone script to complex projects with CI/CD and testing
- bashful (⭐591) - A collection of libraries to simplify writing Bash scripts
- Bashlets (⭐70) - A modular extensible toolbox for Bash
- bashly - Bash command line framework and CLI generator
- bashmanager (⭐90) - mini bash framework for creating command line tools
- bashwithnails (⭐33) - a Bash framework written just for fun with testing, dependency management & packaging
- bash-language-server (⭐1.9k) - LSP-based Bash language server
- bash-modules (⭐118) - functions for developing with unofficial strict mode enabled.
- bats (⭐4.5k) - Bash Automated Testing System
- composure (⭐318) - Compose, document, version and organize your shell functions
- crash (⭐60) - Proper error handling, exceptions and try/catch for ZSH
- critic.sh (⭐451) - Dead simple testing framework for Bash with coverage reporting
- dispatch (⭐90) - A command line argument parser in 50 lines of portable shell script.
- esh (⭐198) - A simple templating engine based on shell, implemented in ~290 lines of POSIX shell and awk.
- Fishtape (⭐339) - TAP producer and test harness for fish
- getoptions (⭐352) - An elegant option parser for shell scripts (sh, bash and all POSIX shells)
- getopts.fish (⭐215) - CLI parser for fish
- is.sh (⭐156) - An alternative for builtin test command, it will make your "if" statements pretty
- lumberjack (⭐40) - A logging interface for shell scripts
- mo (⭐531) - Mustache templates in pure bash
- optparse (⭐152) - A BASH wrapper for getopts, for simple command line arguments.
- rerun (⭐448) - A modular shell automation framework to organize your keeper scripts
- revolver (⭐139) - A reusable progress spinner for shell scripts
- phases (⭐13) - Minimally invasive bash preprocessor, select sections of your script to run
- powscript (⭐149) - bash transpiler written in bash (coffeescript for bash)
- semver_bash (⭐240) - Semantic Versioning in Bash
- sh-semver (⭐30) - Semver tool for bash - finds versions matching to specified rules
- shellcheck (⭐34k) - Static analysis tool for shell scripts
- shellfire (⭐1.2k) - A repository of namespaced, composable shell (bash, sh and dash) function libraries
- shellspec (⭐1k) - A full-featured BDD unit testing framework for dash, bash, ksh, zsh and all POSIX shells
- shfmt (⭐6.5k) - A shell parser, formatter, and interpreter with bash support; includes shfmt
- shpec (⭐375) - A shell testing framework
- shutit - Automation framework based on bash and pexpect
- sub (⭐1.7k) - A delicious way to organize programs
- ts (⭐58) - A shell test script
- urchin (⭐211) - An idiomatic shell testing framework that uses only shell commands
- shunit2 (⭐1.5k) - A unit test framework for Bash scripts with a flavour of JUnit/PyUnit.
- rebash (⭐73) - Scripting library/framework. Features: imports, exceptions, doc-tests ...
- zunit (⭐196) - A powerful unit testing framework for ZSH
Guides
- Bash Official Reference Manual
- Bash Hackers Wiki
- Greg Wooledge's (aka "greycat") wiki. Specifically Bash Guide, Bash FAQ and Bash Pitfalls
- Google's Shell Style Guide
- The Linux Documentation Project: Bash Programming - Intro/How-to
- The Linux Documentation Project: Advanced Bash Scripting Guide
- WikiBooks: Bash Shell Scripting
- Use the Unofficial Bash Strict Mode (Unless You Looove Debugging)
- The Art of Command Line (⭐144k)
- Learn Enough Command Line to Be Dangerous
- A guide to learn bash (⭐12k)
- Shell Field Guide
Other Awesome Lists
Other amazingly awesome lists can be found in awesome-awesome (⭐2.6k) and awesome-awesomeness (⭐31k).