55 KiB
awesome-zsh-plugins
A collection of ZSH frameworks, plugins, tutorials & themes inspired by the various awesome list collections out there.
Table of Contents generated with DocToc
- Frameworks
- Tutorials
- Plugins
- Themes
- Even more completions
- Installation
- Writing New Plugins
- Other Resources
Please read the Contributing Guidelines before contributing.
Frameworks
These frameworks make customizing your zsh setup easier.
- alf - Alf is an out of this world super fast and configurable framework for zsh; it's modeled after Prezto and Antigen while utilizing Oh My Zsh under the covers; and offers standard defaults, aliases, functions, auto completion, automated updates and installable prompt themes and plugins.
- ant-zsh - Tiny and lightweight ZSH configuration environment for special customization needs. It includes plugins, themes and a basic convenient setup.
- antibody - A simpler and faster replacement for antigen written in Go that can do stuff in parallel.
- antigen-hs - A replacement for antigen optimized for a low overhead when starting up the shell.
- antigen - Antigen is a small set of functions that help you easily manage your shell (zsh) plugins, called bundles. The concept is pretty much the same as bundles in a typical vim+pathogen setup. Antigen is to zsh, what Vundle is to vim. Antigen can load oh-my-zsh themes and plugins.
- 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 OSes without problems.
- fresh - Framework to keep your dotfiles fresh
- oh-my-zsh - A community-driven framework for managing your zsh configuration. Includes 120+ optional plugins (rails, git, OSX, hub, capistrano, brew, ant, macports, etc), over 120 themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.
- prezto - Prezto enriches the ZSH command line interface environment with sane defaults, aliases, functions, auto completion, and prompt themes
- pumice - A lightweight plugin manager for zsh
- zeesh - Zeesh is a cross-platform Zsh framework. It's similar to, but incompatible with, oh-my-zsh. It has a modular plugin architecture making it easy to extend. It has a rich set of defaults, but is designed to be as lightweight as possible.
- 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.
- zilsh - A zsh config system that aims to appeal more to power-users and follow the simplistic approach of vim-pathogen.
- zoppo - The crippled configuration framework for Zsh. As an italian saying goes: "chi va con lo zoppo, impara a zoppicare", we realized we were walking with a cripple and are now going to become crippled ourselves.
- ZPM - Plugin manager for zsh similar to vim-plug.
- ztanesh - Improve your UNIX command line experience and productivity with the the configuration provided by ztanesh project: the tools will make your shell more powerful and easier to use.
Not a framework, but still useful
- zshdb - A ZSH debugger
Tutorials
- Outrageously Useful Tips To Master Your Z Shell covers some of the features that ZSH has that Bash doesn't, and using oh-my-zsh.
- The Text Triumvirate - Seth Brown's tutorial on combining zsh, tmux and vim.
- ZSH Pony - Covers customizing ZSH without a framework.
- ZSH tips by Christian Schneider - an exhaustive list of ZSH tips by Christian Schneider.
- ZSH Tips by ZZapper - ZZapper's list of tips.
- https://wiki.archlinux.org/index.php/zsh - Arch Linux's ZSH introduction.
- http://commandlinepoweruser.com/ - Wes Bos' videos introducing ZSH and oh-my-zsh.
Antigen
- Using Antigen to Manage your Zsh installation - Dan Ryan's blog post on switching to Antigen.
- http://mgdm.net/weblog/zsh-antigen - Michael Maclean's article about switching from oh-my-zsh to antigen.
Oh-My-Zsh
- ZSH Gem 24 - Part of the 2011 ZSH Advent Calendar. Covers oh-my-zsh and zshuery.
- Mark Nichols' Oh-My-Zsh tutorial
Prezto
- A Beautifully Productive Terminal Experience - Mike Buss' blog post about using Prezto, Tmux & Tmuxinator.
- Ditching oh-my-zsh for prezto - Linh M. Tran's post about transitioning to Prezto from Oh-My-Zsh.
- Migrate from Oh-My-Zsh to Prezto - Jerome Dalbert's blog post on migrating to Prezto.
Plugins
- accurev-zsh - ZSH plugin for accurev.
- alias-tips - An oh-my-zsh plugin to help remembering those aliases you defined once.
- almostontop - Clears previous command output every time before new command executed in shell. Insipred by alwaysontop plugin for bash
- ansiweather - Weather in your terminal, with ANSI colors and Unicode symbols
- [antigen-git-rebase GitHub stars](https://github.com/smallhadroncollider/antigen-git-rebase) - Antigen/zsh script to aid with Git rebasing
- [antigen-git-store GitHub stars](https://github.com/smallhadroncollider/antigen-git-store) - Antigen/zsh script to store Git's current working directory. For working with Git between two computers without forcing arbitrary commits.
- anyframe - peco/percol/fzf wrapper plugin for zsh.
- autoenv - Extended version of the zsh-autoenv plugin.
- auto-fu.zsh - Automatic complete-word and list-choices. Originally incr-0.2.zsh by y.fujii .
- autoupdate-antigen.zshplugin - Antigen doesn't do automatic updates like oh-my-zsh. This plugin adds auto updating for antigen, both of antigen and the bundles loaded in your configuration.
- blackbox - Stack Exchange's toolkit for storing keys/credentials securely in a git repository.
- browse-commit - browse-commit lets you open any commit in your browser from the command line.
- calc - calculator for zsh
- caniuse.plugin.zsh - Add Can I Use... support to ZSH.
- cd-gitroot - A zsh plugin to cd to git repository root directory.
- cdbk - A ZSH plugin to allow easy named directory creation - shortcuts to any directory you want.
- cdr - Easy setup of cdr for zsh.
- copyzshell - A ZSH plugin to copy your shell configuration to another machine over ssh.
- czhttpd - Simple http server written in 99.9% pure zsh.
- deer - A file navigator for zsh heavily inspired by ranger.
- depot-tools - Simple oh-my-zsh plugin for installing the chromium depot_tools. Installing this plugin will put all of the chromium depot_tools in your path automatically.
- elixir-oh-my-zsh - Oh My Zsh plugin for Elixir, IEX, Mix and Phoenix
- enhancd - A simple tool that provides enhanced
cd
command - fzf-marks - Little script to create, navigate and delete bookmarks in Bash and Zsh, using the fuzzy finder fzf.
- get-jquery - Plugin for fast downloading jQuery library from code.jquery.com
- ghost-zeus - Lets you use zeus with normal rails commands.
- git-aliases.zsh - Creates a lot of useful aliases for combinations of commonly used git commands.
- git-extra-commands - Extra git helper scripts packaged as a plugin.
- gitfast - Updated fork of oh-my-zsh gitfast plugin.
- git-it-on.zsh - Adds ability to open a folder in your current branch on GitHub.
- gitignore.plugin.zsh - Plugin for creating
.gitignore
files. - goenv - Antigen plugin to manage $GOPATH similarly to Python's virtualenvwrapper.
- going_places - plugin that helps to use, create and maintain a list of shell locations
- grep2awk - ZLE widget to transform grep command into awk command.
- hipchat - Send hipchat messages from the shell.
- hooks - Add missing hooks - for plugins and personal use.
- jvm - Allows selection of JDK on OS X.
- k - Directory listings for zsh with git features.
- kitsunebook.plugin.zsh - KitsuneBook plugin for oh-my-zsh.
- lesaint-mvn - Maven plugins for Oh-My-Zsh.
- mac-packaging - A set of common functions used for enterprise Mac packaging with Munki
- mfunc - Allows you to define persistent functions on-the-fly, without the need to add them to your config files. These functions are permanently available until you delete them.
- mysql.plugin.zsh - Adds some functions for dealing with mysql.
- mysql-colorize - Colors for mysql tables.
- nice-exit-code - Maps exit status code to human readable string.
- node.plugin.zsh - Srijan Shetty's nodejs plugin for zsh with caching of nvm completions and autoloading of nvm if present.
- oh-my-dogesh - Dogification plugin.
- oh-my-zsh-dirstack - Plugin for displaying dirstack info on a single line.
- oh-my-zsh-flow3-plugin - This plugin makes the flow command available inside every subdirectory of the TYPO3 Flow distribution.
- oh-my-zsh-jira-plus - Create JIRAs from the command line.
- oh-my-zsh-virtualenv-prompt - A fork of the virtualenv plugin from upstream. It adds support for customizing the virtualenv prompt in oh-my-zsh themes.
- opp.zsh - Vim's text-objects-ish for zsh.
- osx-dev-zsh-plugin - This plugin adds some commands for maintaining various server programs on my OSX install.
- otter - Combination theme and plugin by Allan Hortle.
- pantheon-terminal-notify-zsh-plugin - background notifications for long running commands. Supports Elementary OS Freya
- parallels-zsh-plugin - Parallels desktop plugin
- pip-app - Makes it easy to install python applications into distinct virtualenvs so they don't conflict with any other python requirements on your system.
- pretty-time-zsh - Convert seconds to a human readable string: 165392 → 1d 21h 56m 32s.
- robo-zsh-plugin - A ZSH plugin for Robo
- rvm-zsh - Initiates RVM and adds rubygem binaries (like compass) accessible in the user's $PATH
- saneopt - Sane defaults for zsh options, in the spirit of vim-sensible.
- safe-paste - safe-paste plugin. See http://cirw.in/blog/bracketed-paste
- send.zsh - Shortcut script for zsh.
- sf2.plugin.zsh - ZSH plugin for Symfony2.
- smart-cd - Runs
ls
andgit status
after chpwd. - snippets - Command line snippet expansion.
- sysadmin-util - Steve Kemp's collection of tool scripts for sysadmins.
- vimman - View vim plugin manuals (help) like man in zsh
- wakatime - Automatic time tracking for commands in ZSH using wakatime
- wd - Warp directory lets you jump to custom directories in zsh, without using cd. Why? Because cd seems ineffecient when the folder is frequently visited or has a long path.
- yeoman-zsh-plugin - Edouard Lopez's Yeoman plugin for Oh My ZSH, compatible with yeoman version ≥1.0 (includes options and command auto-completion)
- zaw - ZSH anything.el-like widget.
- zce - Vim’s EasyMotion / Emacs’s ace-jump-mode for zsh.
- zero - Zero is both a plugin and a theme. See the github page for installation details.
- zsh-256color - Enhances the terminal environment with 256 colors. It looks at the chosen TERM environment variable and sees if there is respective ncurses' terminfo with 256 colors available. The result is a multicolor terminal, if available.
- zsh-add-upstream - Easily add the upstream remote to your git fork.
- zsh-async - Library for running asynchronous tasks in zsh without requiring any external tools.
- zsh-autoenv - If a directory contains a .env file, it will automatically be executed when you cd into it.
- zsh-autosuggestions - Fish-like fast/unobtrusive autosuggestions for zsh.
- zsh-basex - Adds several BaseX aliases for simplified usage.
- zsh-bash - Makes ZSH more Bash compatible. It redefines the source command to act more like Bash does. It also enables Bash completions.
- zsh-bd - Jump back to a specific directory, without doing
cd ../../..
- zsh-colors - Makes it easier to colorize text from the CLI.
red foo
just works. - zsh-dircolors-solarized - Solarized dircolors plugin.
- zsh-directory-history - A per directory history for zsh.
- zsh-dwim - zsh-dwim attempts to predict what you will want to do next. It provides a key binding (control-u) that will replace the current (or previous) command line with the command you will want to run next.
- zsh-functional - ZSH higher order functions.
- zsh-geeknote - Geeknote plugin for zsh.
- zsh-git-sync - A ZSH plugin to sync git repositories and clean them up.
- zsh-grunt-plugin - Add autocompletion for grunt.
- zsh-gvm (horosgrisa) - Go version manager plugin for zsh.
- zsh-gvm (yerinle) - Provides autocompletion for gvm (Groovy enVironment Manager)
- zsh-hints - Display glob and parameter flags and other non completable info right under your editing buffer.
- zsh-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
- zsh-konsole-theme-changer - Toggle konsole theme from zsh.
- zsh-manydots-magic - A zle tweak for emulating
...'==
../..' etc. - zsh-nodejs-plugin - Po-Ying Chen's Nodejs plugin for zsh.
- zsh-notify - A plugin for the Z shell (on OS X and Linux) that posts desktop notifications when a command terminates with a non-zero exit status or when it took more than 30 seconds to complete, if the terminal application is in the background (or the command's terminal tab is inactive).
- zsh-open-pr - A ZSH plugin to open pull requests from command line.
- zsh-osx - Add some common OS X related aliases and functions
- zsh-pg utility functions to work with PosgreSQL
- zsh-plugin-ibtool - ibtool shortcuts to generate localized XIB files
- zsh-plugin-rails - ZSH plugin for Rails
- zsh-reentry-hook - Plugin that re-enters working directory if it has been removed and re-created.
- zsh-suffix-alias : Directly open files in the shell using ZSH's suffix aliases.
- zsh-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.
- zsh-t32 - Plugin for the Lauterbach Trace32 toolset. It automatically registers fonts and sets all necessary environment variables to run the t32 toolset.
- zsh-url-highlighter - A plugin for the zsh syntax highlighter that turns URLs green if they respond with a "good" status, and red otherwise. Useful for checking URL typos.
- zsh-vim-mode - Shrikant Sharat's bindings for zsh's vi mode so it behaves more vim-like
- zshmarks - A port of Bashmarks (by Todd Werth), a simple command line bookmarking plugin, for oh-my-zsh
Themes
If you're using Antigen, you can test these themes in a running zsh with antigen theme githubuser/repo
. If you're using zgen, add them to your init.zsh
with zgen load githubuser/reponame
.
- af-magic-mod - af-magic-mod theme. Install with
antigen theme desyncr/zshrc themes/af-magic-mod
- alpharized - Optimized to work with solarized dark. It's a modified version of the avit theme.
- angry fly - Shows git information in right hand prompt
- bashi - Optimized for Ahmet Sülek's Flat UI Terminal Theme and Pasquale D'Silva's Saturn Terminal Theme.
- bluelines - Clear and blue theme
- bullet-train - Inspired by the Powerline Vim plugin. It aims for simplicity, showing information only when it's relevant.
- cobalt2 - Wes Bos' Cobalt 2 theme for ZSH and iTerm 2
- codemachine - Codemachine theme
- cute-theme - An OSX oh-my-zsh shell theme with Cute emoji based on the Powerline Vim plugin.
- docker-compose Show docker container status in your prompt
- dracula - A dark theme for Atom, Alfred, Chrome DevTools, iTerm, Sublime Text, Textmate, Terminal.app, Vim, Xcode, Zsh
- dropbox - A dropbox plugin for Zsh that provides
dropbox-cli
anddropbox-uploader
commands. - excess - Simple zsh color theme
- exercism - A plugin for exercism.io
- frisk-red - Red version of the frisk theme from oh-my-zsh
- furio - Fork of the Cloud oh-my-zsh theme. with different colors and emojis
- gawaine - Nicola Racco's theme. Requires rvm & git plugins.
- gitsome - Super simple prompt with git info, optimized for the Flat Terminal color scheme.
- gitster - When in a git repo, it shows the location from the git's root folder. When not in a git repo, it shows the path relative to home,
~
. - glimmer - Includes git branch, time and user@host
- hackersaurus - theme with git status and exit code of last command run embedded in the prompt. Related to powerlevel9k
- intheloop-powerline - An extension of the intheloop theme to use powerline fonts
- itg - itsthatguy's theme
- jcl-zsh-theme - Loosely based on the ys theme
- judgedim - Minimalist prompt.
- kketcham - Theme with nifty colors on the git info
- liquidprompt - A full-featured & carefully designed adaptive prompt for Bash & ZSH
- maxulysse/myzsh Maxime Garcia's myzsh theme.
- megaprompt - A maximalist prompt including keyboard mode, ownership info, and other contextual info, with λ as the prompt character. Requires the hooks plugin.
- mindful-space - ZSH theme with space in mind
- minimal - S1ck94's minimal theme
- misa - misalabs' zsh theme
- nanofish - Adds fish-style directory prompt to nanotech theme
- ningxia - Based on af-magic
- oh-my-git - An opinionated prompt for bash and zsh
- oh-my-zsh-robbl - shows git/svn status including time since last commit, rvm status in prompt.
- pad - A concise and colorful oh-my-zsh theme
- platypus - Platypus is a simple and convenient theme for Oh My ZSH used by Frédéric de Villamil.
- powerlevel9k - A very flexible theme based on the well-known agnoster-theme with support for various VCS, AWS, rbenv, virtualenv, etc.
- powerline-cute - Based on bullet-train
- prezto-cloud-prompt - Prezto port of oh-my-zsh's cloud prompt
- prezto_powerline - Powerline for prezto. Shows git information, RVM version.
- pure - Pretty, minimal and fast ZSH prompt.
- racotecnic - Based on af-magic and posh-git
- rummik/zsh-theme Rummik's theme
- seeker - This theme uses many special unicode characters to be fancy, but it may cause some problems without well supported fonts
- skeletor-syntax - Theme collection for Atom, Prism and Zsh inspired by Skeletor from He-Man and the Masters of the Universe
- smiley - A prompt with happy and sad faces
- solarizsh - Color fix for robbyrussell's oh-my-zsh theme to work with Solarized
- spowerline - Written in scala, inspired by agnoster, tmux powerline, vim powerline and the vim status plugin.
- sugarfree - Based on the Pure and Candy themes
- the-time-lord - Based on gallifrey
- tvline - Derived from agnoster's theme, adds powerline font enhancements.
- xxf - Shows Current commit shorten hash and message.
- vinhnx - Modified from themes/mgutz.zsh-theme.Looks great when using with Solarized color scheme.
- wild-cherry - A fairy-tale inspired theme for Zsh, iTerm, Sublime, Atom, & Mou
- zemm-blinks - Customized version of oh-my-zsh blinks with mercurial support and other changes
- zero - Zero's theme & plugin
- zsh-prompt-iggy - A super happy awesome Powerline-style, Git-aware prezto only theme
- zsh-prompt-powerline - A fairly heavyweight zsh prompt, based on the powerline font from the popular eponymous vim plugin, which works well for a dark background.
- zsh2000 - Powerline looking ZSH theme with rvm prompt, git status and branch, current time, user, hostname, pwd, exit status, root and background job status.
Fonts
Some of the themes listed here require Powerline-compatible fonts, here are a few:
- Awesome Terminal Fonts - A family of fonts that includes some nice monospaced Icons.
- Fantasque Awesome Font - A nice monospaced font, patched with Font-Awesome, Octoicons and Powerline-Glyphs.
- Fantasque-sans - Another powerline font
- Hack - Another Powerline-compatible font designed specifically for source code.
- Input Mono - A family of fonts designed specifically for code. It offers both monospaced and proportional fonts and includes powerline glyphs.
- Monoid - Monoid is customizable and optimized for coding with bitmap-like sharpness at 15px line-height even on low res displays.
- nerd fonts - A collection of over 20 patched fonts (over 1,700 variations) & fontforge font patcher python script for powerline, devicons, and vim-devicons: includes Droid Sans, Meslo, AnonymousPro, ProFont, Inconsolta, and many more
- Powerline patched font collection - A collection of a dozen or so fonts patched to include powerline gylphs.
Even more completions
These plugins add tab completion without adding extra functions or aliases.
- autopkg-zsh-completion - Completions for autopkg
- berkshelf-zsh-plugin - Adds tab completion for berkshelf
- bosh-zsh-autocompletion - Adds BOSH autocompletion
- brew-services - completion plugin for homebrew services
- cabal - Adds autocompletion for cabal
- cf-zsh-autocomplete-plugin - Adds autocomplete for all Cloud Foundry CLI commands
- codeception-zsh-plugin - Adds command completion for the Codeception Testing Framework
- codemachine - Displays git info, whether you're logged in via ssh, return code of last command
- dbic - Automatically sets up Environment variables for DBIx::Class::Migration's script and Dancer
- docker-enter-completion - Command completion for docker-enter
- docker-helpers - A collection of docker helper scripts
- docker-zsh-completion - Add completions for docker
- docker-zsh - Adds tab completion for docker
- drush_zsh_completion - Drush autocomplete awesomeness for zsh
- etcdctl-zsh - etcdctl autocomplete plugin for oh-my-zsh
- git-flow-completion - ZSH completion support for git-flow
- grid5000-zsh-plugin - Grid 5000 plugin - adds theme, autocompletions
- gulp-autocompletion-zsh - gulp autocompletion
- gulp - Autocompletion for your gulp.js tasks in the Z-Shell (zsh).
- jumpstorm-zsh-plugin - Adds autocompletion for jumpstorm
- npm-run.plugin.zsh -
npm run
autocompletion - nvm-completion - Updated nvm completions
- oh-my-zsh-nova - Provides auto-complete for the nova so you don't need to remember all those pesky arguments
- oh-my-zsh-plugin-nvm - Ole Sunde's nvm plugin for zsh
- oh-my-zsh_razor_plugin - Provides autocomplete for Razor
- rake-completion.zshplugin - Add fast tab completion for rakefile targets
- racket completion - completion for Racket.
- tugboat - Adds autocompletion for tugboat command
- umake - tab completion for umake
- zsh-cabal-completion - Add tab completion for cabal
- zsh-completion-generator - This plugin tries to read the list of options from the help text of programs and generate a completion function automatically.
- zsh-completions - A collection of extra completions for ZSH.
- zsh-pandoc-completion - Pandoc completion plugin
- zsh-pip-completion - pip autocomplete plugin
Installation
Antigen
Most of these plugins can be installed by adding antigen bundle githubuser/reponame
to your .zshrc file. Antigen will handle cloning the plugin for you automatically the next time you start zsh. You can also add the plugin to a running zsh with antigen bundle githubuser/reponame
for testing before adding it to your .zshrc
.
dotzsh
- Clone new plugins into
.zsh.local/modules
- Load the plugin module in
.zshrc
- Open a new zsh terminal window or tab
Oh-My-Zsh
cd ~/.oh-my-zsh/custom/plugins
git clone repo
- Add the repo to your plugin list
Prezto
- Clone the plugin into your prezto modules directory
- Add the plugin to your
.zpreztorc
file - Open a new terminal window or tab
Zgen
Most of these plugins can be installed by adding zgen load githubuser/reponame
to your .zshrc file in the same function you're doing your other zgen load
calls in.
Writing New Plugins
I've documented some recommendations for writing a new plugin here.
Other Resources
Other lists
- awesome-devenv - A curated list of awesome tools, resources and workflow tips making an awesome development environment
- awesome-sysadmin - A curated list of awesome open source sysadmin resources
Find other useful awesome-* lists at the awesome collection
Other References
The Zsh Reference Card and zsh-lovers site are indispensable.