On Github project Awesome Zsh plugins you can find 800+ links to plugins, themes and Zsh plugin managers/frameworks. Even though it is a collection of awesome stuff the number is a bit high get orientation which plugins gained already good reputation from Zsh users community. This post aims at identifying most popular plugins where popularity is measured with the number of stars that GitHub users added to given plugin. For clarity, I will focus here only on plugins excluding frameworks and themes that are also listed on “Awesome Zsh plugins” website.
What are Github stars?
Stars is the way how users can ‘bookmark’ projects - this can serve as indication for others that project successfully grabbed someone’s attention. The
stargazers statistics are available via GithubAPI
Top 20 most popular plugins as of March 2018
|autojump||A cd command that learns - easily navigate directories from the command line. Install autojump-zsh for best results.||6524|
|syntax-highlighting||Add syntax highlighting to your Zsh. Make sure you load this before zsh-users/zsh-history-substring-search or they will both break.||4851|
|autosuggestions||Fish-like fast/unobtrusive autosuggestions for Zsh.||4836|
|blackbox||Stack Exchange’s toolkit for storing keys/credentials securely in a git repository.||4098|
|git-flow-completion||Zsh completion support for git-flow.||2031|
|zsh-completions||A collection of extra completions for Zsh.||2003|
|ansiweather||Weather in your terminal, with ANSI colors and Unicode symbols.||1342|
|k||Directory listings for Zsh with git features.||898|
|enhancd||A simple tool that provides enhanced
|git-secret||A bash-tool to store your private data inside a git repository.||823|
|history-substring-search||Needs to be loaded after zsh-syntax-highlighting, or they’ll both break. You’ll also need to bind keys to its functions, details are in the README.md.||704|
|sysadmin-util||Steve Kemp’s collection of tool scripts for sysadmins.||473|
|histdb||Stores your history in an SQLite database.||426|
|nvm||Zsh plugin for installing, updating and loading nvm.||421|
|zaw||Zsh anything.el-like widget.||402|
|gradle-completion||Bash and Zsh completion support for gradle.||362|
Below you can find short description of 10 most popular plugins
autojump is a faster way to navigate your filesystem. It works by maintaining a database of the directories you use the most from the command line. Directories must be visited first before they can be jumped to. It can be an alternative for z or fasd
This package provides Fish shell-like syntax highlighting for the Zsh. It enables highlighting of commands whilst they are typed at a Zsh prompt into an interactive terminal. This helps in reviewing commands before running them, particularly in catching syntax errors. Some examples:
This package allows to safely store secrets in a VCS repo (i.e. Git, Mercurial, Subversion or Perforce). These commands make it easy for you to Gnu Privacy Guard (GPG) encrypt specific files in a repo, so they are “encrypted at rest” in your repository. However, the scripts make it easy to decrypt them when you need to view or edit them, and decrypt them for use in production. Originally written for Puppet, BlackBox now works with any Git or Mercurial repository.
Bash, Zsh and Fish completion support for git-flow.
This package provides support for completing:
- git-flow init and version
- feature, hotfix and release branches
- remote feature, hotfix and release branch names
This projects aims at gathering/developing new completion scripts that are not available in Zsh yet. Demo:
AnsiWeather is a Shell script for displaying the current weather conditions in your terminal, with support for ANSI colors and Unicode symbols.
Weather data comes from the
OpenWeatherMap free weather API.
k is a Zsh script / plugin to make directory listings more readable, adding a bit of color and some git status information on files and directories.
cd command called “enhancd” enhanced the flexibility and usability for a user. enhancd will memorize all directories visited by a user and use it for the pathname resolution. If the log of enhancd have more than one directory path with the same name, enhancd will pass the candidate directories list to the filter within the
ENHANCD_FILTER environment variable in order to narrow it down to one directory.
Thanks to this mechanism, the user can intuitively and easily change the directory you want to go.
git-secret is a bash tool to store your private data inside a git repo. It encrypts data, using
gpg, the tracked files with the public keys of all the users that you trust. So every one of them can decrypt these files using only their personal secret key. Usage of private-public make it easier for everyone to manage access rights. There are no passwords that change. When someone is out - just delete their public key, re-encrypt the files, and they won’t be able to decrypt secrets anymore.
On the list there is 300+ projects that are falling into scope of this research, you can get complete dataset by downloading this CSV file: CSV.