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.
Search, bookmarks, multiplexing, and other tools that make your terminal experience more productive.
- ag - Super fast string search through a directory hierarchy
- autoenv - Directory-based environments
- autojump - A cd command that learns - easily navigate directories from the command line
- bash-slugify - Command that converts filenames and directories to a web friendly format
- bashmarks - Directory bookmarks for the shell
- bd - Quickly go back to a parent directory
- boilr - A blazingly fast CLI tool for creating projects from boilerplate templates.
- boom - Store links and snippets in the commandline
- byobu - Text-based window manager and terminal multiplexer
- commacd - A faster way to move around in Bash
- desk - A lightweight workspace manager for the shell
- enhancd - ๐ A next-generation cd command with an interactive filter
- fasd - Command-line productivity booster, offers quick access to files and directories
- fzf - A command-line fuzzy finder
- hhighlighter - Colorize words in a command output
- hr -
<hr />
for your terminal - 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
- marker - Bookmark your shell commands
- parallel - Build and execute shell command lines from standard input in parallel
- pathpicker - Accepts inputs like grep, searches, git etc; allows selecting files from the result of the input, which you can then open or provide as argument to a command.
- percol - Adds flavor of interactive filtering to the traditional pipe concept of UNIX shell
- qfc - File-completion widget for Bash and Zsh
- SHML - Style framework for the terminal (Shell Markup Language)
- spark - โโโโ โโ in your shell
- spot - Tiny file search utility
- snips - Commandline tool to manage snippets of code.
- sshfs - A tool for mounting remote file systems over SSH
- sshrc - Bring your .bashrc, .vimrc, etc. with you when you SSH
- thefuck - Fix common shell mistakes by using an easy to remember command
- tmux - Amazing terminal multiplexer
- v - z for vim.
- wemux - Multi-User Tmux Made Easy
- z - z is the new j, yo
Custom prompts, color themes, etc.
- base16-shell - Base16 for Shells
- bash-git-prompt - An informative and fancy Bash prompt for Git users
- bash-powerline - Powerline-style Bash prompt in pure Bash script
- bashstrap - A quick way to spruce up OSX terminal
- bullet-train-oh-my-zsh-theme - ๐ An oh-my-zsh shell theme based on the Powerline Vim plugin
- emojify Emoji on the command line ๐ฑ
- flatui-terminal-theme - Nicer colors for terminal
- git-prompt - Bash prompt with Git, SVN and HG modules
- gittify - A colorful Bash prompt + customized Git aliases
- Gogh - Color Scheme - Color Scheme for Gnome Terminal
- liquidprompt - A full-featured & carefully designed adaptive prompt for Bash & Zsh
- mysql-colorize - Colorization for mysql comand-line client
- oh-my-git - An opinionated git prompt for bash and zsh
- sexy-bash-prompt - Bash prompt with colors, Git statuses, and Git branches
Command-line development, version control, and deployment.
- bocker - Docker implemented in 100 lines of bash
- cloc - Count Lines of Code
- dokku - Docker powered mini-Heroku in around 100 lines of Bash.
- dokku-alt - It's a fork of the original dokku. The idea behind this fork is to provide complete solution with plugins covering most use-cases which are stable and well tested.
- 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-semver - Git plugin for easing semantic versioning and changelog validation
- git-sh - A customized Bash environment suitable for Git work
- git-up - Automatically rebase incoming changes instead of merging. Be polite!
- hub - hub helps you win at git.
- 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
- 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
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
- cv - Linux tool to show progress for cp, rm, dd, ...
- 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.
- htop - A ncurses based interactive process viewer which aims to be a better
top
- lnav - An advanced log file viewer for the small-scale
- lsp - An improved
ls
, with file descriptions in plain language and intelligent file grouping - mtr - The functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool.
- ncdu - NCurses Disk Usage
- powertop - Battery/Power usage and device stats monitoring command-line tool, with tune-up options.
- procdog - Lightweight command-line control of long-lived processes like servers
- quick-secure - Quickly secure and harden UNIX/Linux systems
Self-hosted, lightweight servers and networking tools written in shell scripts.
- aria2 - aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, BitTorrent and Metalink
- balls - Bash on Balls
- bashttpd - A web server written in Bash
- bitpocket - "DIY Dropbox" or "2-way directory (r)sync with proper deletion"
- Dropbox-Uploader - Dropbox Uploader is a Bash script which can be used to upload, download, list or delete files from Dropbox
- httpie - HTTPie is a command line HTTP client, a user-friendly cURL replacement
- ngincat - Tiny Bash HTTP server using netcat
- resty - Little command line REST client that you can use in pipelines
- 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.
- image-scraper - A cool command line image scraper with a lot of features.
- jq - Sed for json data. You can use it to slice and filter and map and transform structured data
- mplayer - Lets you play most audio and video formats (using ASCII characters) in the shell as well as in a GUI.
- 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)
- xmlstarlet - Old but powerful tool for command-line XML formatting, filtering, and manipulation.
Command line-based applications or command line access to existing services.
- ansiweather - Weather in your terminal, with ANSI colors and Unicode symbols
- bashblog - A Bash script that handles blog posting
- choosealicense-cli - Bring http://choosealicense.com to your terminal
- facy - Command line power tool for facebook
- geeknote - Command line evernote client
- iponmap - Draw point on world map using ip address
- isitup - Check whether a website is up or down
- jrnl - A simple command line journal application that stores your journal in a plain text file
- ledger - Command line accounting
- licen - Generate your license. Yet another lice, but implement with Jinja2 and docopt
- pushblast - Get PushBullet notifications when a shell program exits
- pushbullet-bash - Bash interface to the PushBullet API
- SAWS - A Supercharged AWS CLI
- transfer.sh โ Quickly upload and share files from your shell
- wego - Weather app for the terminal
- fanyi - Translate English to Chinese in terminal
All work and no play is a cruddy way to spend your day.
- bash2048 - Bash implementation of 2048 game
- minesweeper - Bash implementation of minesweeper
- sedtris - Tetris in sed
- sed-scripts - Arkanoid and Sokoban written using sed
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
- bpkg - JavaScript has npm, Ruby has Gems, Python has pip and now Shell has bpkg
- dotfiler โ Shell agnostic git based dotfiles package manager, written in Python.
- fresh - Keep your dotfiles fresh
- Fisherman - Fish Shell Plugin Manager
- homeshick - Git dotfile synchronizer written in Bash
- oh-my-fish - Framework for managing your Fish shell configuration inspired by Oh My Zsh
- Wahoo - All-purpose framework and decentralized package manager for the fishshell.
- vcsh - Config manager based on Git
Tools for writing, improving, or organizing Bash or other shell scripts
- ansi - ANSI escape codes in pure bash - change text color, position the cursor, much more
- assert.sh - Bash unit testing framework
- bashful - A collection of libraries to simplify writing Bash scripts
- bashmanager - mini bash framework for creating command line tools
- bats - Bash Automated Testing System
- 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.
- mo - Mustache templates in pure bash
- rerun - A modular shell automation framework to organize your keeper scripts
- semver_bash - Semantic Versioning in Bash
- shellcheck - Static analysis tool for shell scripts
- shpec - A shell testing framework
- sub - A delicious way to organize programs
- ts - A shell test script
- shunit2 - A unit test framework for Bash scripts with a flavour of JUnit/PyUnit.
Tools and customizations specifically for Zsh.
- antigen-hs - A replacement for antigen optimized for a low overhead when starting up the shell.
- antibody - A faster and simpler replacement for antigen written in Go.
- awesome-zsh-plugins - A list of Zsh plugins usable with antigen, dotzsh, oh-my-zsh & prezto.
- antigen - A plugin manager for Zsh, inspired by oh-my-zsh and vundle
- dotzsh - dotzsh strives to be platform and version independent, some functionality may be lost when running under older versions of Zsh, but it should degrade cleanly and allow you to use the same setup on multiple machines of differing OS's without problems.
- oh-my-zsh - A community-driven framework for managing your Zsh configuration
- pretty-time-zsh - Convert seconds to a human readable string:
165392
โ1d 21h 56m 32s
- powerline-zsh - Powerline for Zsh
- prezto - The configuration framework for Zsh
- pure - Pretty, minimal and fast Zsh prompt
- zgen - A lightweight plugin manager for Zsh inspired by antigen, but optimized for speed when starting a new shell. Can load oh-my-zsh compatible plugins and themes.
- zplug - ๐บ A next-generation plugin manager for zsh
- zsh-autosuggestions - Fish-like autosuggestions for Zsh
- zsh-dwim - Zsh do what I mean.
- zsh-git-prompt - Informative Git prompt for Zsh
- zsh-history-substring-search - An implementation of the Fish shell's history search feature for Zsh.
- zshmarks - A port of Bashmarks (simple bookmarking plugin by Todd Werth) for oh-my-zsh
- zsh-notify - Desktop notifications for long running commands in Zsh
- zsh-prompt-powerline - A Zsh prompt based on the powerline font from the popular vim plugin
- zsh-syntax-highlighting - Fish shell like syntax highlighting for Zsh
Tools and customizations specifically for Fish.
- fish-tmpdir - Fresh, one-time temporary directories for Fish.
- 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
Other amazingly awesome lists can be found in awesome-awesome and awesome-awesomeness.