2018-03-22    Share on: Twitter | Facebook | HackerNews | Reddit

Top Popular ZSH Plugins on GitHub

There is an exhaustive but curated list of Zsh plugins posted on GitHub project Awesome Zsh plugins. You can find there 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. In this post I will identify most popular plugins - those which have the highest number of stars.

NOTE: This article was written in 2019, for a more recent version of the ranking see: 2023. There is a series of articles dedicated to Zsh plugins: 2018, 2019, 2021, 2023. The older articles have description of the selected, interesting tools that are not in this article - so you might also to visit the older editions of the survey.

On the 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 the Zsh users community. This post aims at identifying the most popular plugins where popularity is measured by the number of stars that GitHub users added to the 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 an indication for others that a project successfully grabbed someone's attention. The stargazers statistics are available via GithubAPI

Top 20 most popular plugins as of March 2018

link description stars
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 cd command. 826
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 a short description of the 10 most popular plugins

1. autojump

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

2. syntax-highlighting

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:

Before: Screenshot #1.1
After: Screenshot #1.2

Before: Screenshot #3.1
After: Screenshot #3.2

3. autosuggestions

This package provides Fish-like fast/unobtrusive autosuggestions for Zsh. It suggests commands as you type, based on command history. Example:

4. blackbox

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) to 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.

5. git-flow-completion

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

6. zsh-completions

This project aims at gathering/develop new completion scripts that are not available in Zsh yet. Demo:

zsh-completions-demo

7. ansiweather

AnsiWeather is a Shell script for displaying the current weather conditions in your terminal, with support for ANSI colors and Unicode symbols.

AnsiWeather Screenshot

Weather data comes from the OpenWeatherMap free weather API.

8. k

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. k

9. enhancd

The new 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 has 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 users can intuitively and easily change the directory they want to go to.

enhancd-demo

10. git-secret

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 makes 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. git-secret terminal preview

On the list there are 300+ projects that are falling into the scope of this research, you can get the complete dataset by downloading this CSV file: CSV.

Any comments or suggestions? Let me know.

To cite this article:

@article{Saf2018Top,
    author  = {Krystian Safjan},
    title   = {Top Popular ZSH Plugins on GitHub},
    journal = {Krystian's Safjan Blog},
    year    = {2018},
}