Shell
General
3_ENTRIESShells
20_ENTRIESChoose 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
- 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
89_ENTRIESSearch, 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
- 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
--helpcommands - 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
- 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
hashelps you check presence of various command line tools and their versions on path - how2
how2finds the simplest way to do something in a unix shell. It's likeman, 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
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.
Customization
22_ENTRIESCustom prompts, color themes, etc.
- 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
34_ENTRIESCommand-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
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
gittaking 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 opento 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
31_ENTRIESOS-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
catclone with wings - 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
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
- lsd
LSDeluxe, rewrite of GNU ls with lot of added features like colors, icons, tree-view and more formatting options.
- 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
pingprettier, 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
gem install wifi-wand) - xiringuito
SSH-based "VPN for poors"
Downloading and Serving
16_ENTRIESSelf-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.
- 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
- tshare
File sharing from commandline.
- 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
23_ENTRIESTools 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.
- 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
39_ENTRIESCommand 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.
- 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
8_ENTRIESAll 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
12_ENTRIESTools 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
53_ENTRIESTools 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
- 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
LSP-based Bash language server
- bash-modules
functions for developing with unofficial strict mode 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
- Greg Wooledge's (aka "greycat") wiki
. Specifically Bash Guide, Bash FAQ and Bash Pitfalls
- Shell Field Guide
Other amazingly awesome lists can be found in awesome-awesome and awesome-awesomeness.