A collection of ZSH frameworks, plugins, tutorials & themes inspired by the various awesome list collections out there.
- Writing New Plugins
- Other Resources
Please read the Contributing Guidelines before contributing.
These frameworks make customizing your ZSH setup easier.
You can find some interesting performance timing comparisons of various frameworks in the following locations.
- pm-perf-test - Tooling for running performance tests on multiple ZSH frameworks.
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.
ansible-role-zsh is an ansible role with zero-knowledge installation. It uses antigen to manage bundles and oh-my-zsh. Can load bundles conditionally. By default it includes powerlevel9k theme, autosuggestions, syntax-highlighting and fzf-widgets and fzf-marks. Fully customizable.
Ant-zsh is a tiny and lightweight ZSH configuration environment for special customization needs. It includes plugins, themes and a basic convenient setup.
Antibody is a faster and simpler antigen written in Golang. More details at http://getantibody.github.io/.
antigen-hs is a replacement for antigen optimized for a low overhead when starting up the shell. It will automatically clone plugins for you.
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 and will automatically clone them for you.
Ax-ZSH is a modular configuration system for ZSH. It provides sane defaults and is extendable by plugins.
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 is a tool to source shell configuration (aliases, functions, etc) from others into your own configuration files. We also support files such as ackrc and gitconfig. Think of it as Bundler for your dot files.
miniplug is a minimalistic plugin manager for ZSH.
- No crashes or double plugin loading when re-sourcing .zshrc
- Unlike other frameworks, Miniplug does not pollute your $PATH
- Only does the bare minimum for managing plugins
mzpm is a minimalist plugin manager for ZSH.
oh-my-zsh is a community-driven framework for managing your ZSH configuration. Includes 120+ optional plugins (rails, git, macOS, hub, capistrano, brew, ant, macports, etc), over 120 themes to spice up your morning, and an auto-update tool that makes it easy to keep up with the latest updates from the community.
PMS allows you to manage your shell in a way to that helps decrease setup time and increases your productivity. It has support for themes (change the way your shell looks), plugins (adds functionality to your shell), and dotfile management.
The PMS framework also allows you to use the same framework in different shells. Use ZSH on your personal laptop, and use bash on remote servers. Wanna try fish? Go ahead, try out different shells.
Prezto enriches the ZSH command line interface environment with sane defaults, aliases, functions, auto completion, and prompt themes. There are some prezto-specific plugins at https://github.com/belak/prezto-contrib.
Pumice is a lightweight plugin manager for ZSH.
A plugin manager for ZSH doesn't have to be complicated to be powerful. PZ doesn't try to be clever when it can be smart. PZ is a full featured, fast, and easy to understand plugin manager encapsulated in a single file with about 200 lines of clean ZSH.
PZ does just enough to manage your Zsh plugins really well, and then gets out of your way. And it's unit tested too to make sure it works as expected!
A fast, configurable, shell plugin manager.
- Can manage
- Branch/tag/commit support.
- Extra support for GitHub repositories.
- Extra support for Gists.
- Arbitrary remote files, simply specify the URL.
- Local plugins, simply specify the directory path.
- Highly configurable install methods using handlebars templating.
- Super-fast parallel installation.
- Configuration file using TOML syntax.
- Uses a lock file for much faster loading of plugins.
Toasty is a ZSH framework made to facilitate management, not dictate it.
The tiniest ZSH plugin manager. Still under development.
A ZSH micro plugin manager.
Yazt is a simple zsh theme manager in maintence that is compatible with nearly everything. You can use prompts in plugins, mix 'n' match two themes, with a few modifications, you can even use it in bash.
zapack is a basic fast minimal ZSH plugin loader.
zcomet is a minimalistic ZSH plugin manager that gets you to the prompt surprisingly quickly without caching (see the benchmarks). In addition to loading and updating plugins stored in Git repositories, it supports lazy-loading plugins (further reducing startup time) as well as downloading and sourcing code snippets.
Zebrafish is a lightweight, full-featured, blazing-fast ZSH micro-framework in just one file.
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.
Zgem is a plugin manager for ZSH that supports loading and updating plugins and themes from git, http and local files.
Zgen is a lightweight plugin manager for ZSH inspired by Antigen. The goal is to have minimal overhead when starting up the shell because nobody likes waiting. It is currently not being actively maintained and I recommend you use the zgenom fork instead, which is.
A lightweight plugin manager for ZSH that is a fork that extends the brilliant zgen and provides more features and bugfixes while being fully backwards compatible.
To keep loading fast during new terminal sessions,
zgenom generates a static
init.zsh file which does nothing but source your plugins and append them to your
This minimizes startup time by not having to execute time consuming logic (plugin checking, updates, etc) during startup. The downside is that you have to refresh the init script manually with
zgenom reset whenever you update your plugin list in your
ZI is a Swiss Army Knife for Zsh Unix shell. Formerly known as zplugin, zinit. ZI - Wiki Pages.
Bonus: you can use zi-console to view and change the state of the ZSH session (e.g.: list and unload plugins) and to delete the plugins and snippets from the disk.
zilsh is a ZSH config system that aims to appeal more to power-users and follow the simplistic approach of vim-pathogen.
Zim is a ZSH configuration framework with blazing speed and modular extensions.
Zinit is an innovative and probably (because of the Turbo) the fastest plugin manager with support for:
- Turbo mode – 80% faster ZSH startup! for example: instead of 200 ms, it'll be 40 ms
- Completion management (selectively disable and enable completions)
- Snippets (↔ regular files downloaded via-URL, e.g.: scripts) and through them Oh My Zsh and Prezto plugins support (→ low overhead)
- Annexes (↔ Zinit extensions)
- Reports (from the plugin loads – plugins are no longer black boxes)
- Plugin unloading (allows e.g.: dynamic theme switching)
bindkeycapturing and remapping
$fpathis not being used to add completions and autoload functions, hence it stays concise, not bloated)
- Services ↔ a single-instance, background plugins
- Also, in general: all the mechanisms from the ZSH Plugin Standard – Zinit is a reference implementation of the standard.
The project is very active – currently > 3100 commits.
zit is a plugin manager for ZSH. It is minimal because it implements the bare minimum to be qualified as a plugin manager: it allows the user to install plugins from Git repositories (and Git repositories only, them why the name), source plugins and update them. It does not implement fancy functions like cleanup of removed plugins, automatic compilation of installed plugins, alias for oh-my-zsh/prezto/other ZSH frameworks, building binaries, PATH manipulation and others.
Znap is a light-weight plugin manager & Git repo manager for ZSH that's easy to grok. While tailored for ZSH plugins specifically, Znap also functions as a general-pupose utility for managing Git repos.
- Make any prompt appear instantly. Reduce your startup time from ~200ms to ~40ms with just one command.
- Asynchronously compile your plugins and functions.
- Cache those expensive
- Clone or pull multiple repos in parallel.
- Re-clone all your repos without you having to re-enter them.
- Multi-repo management
bashinit- you no longer need them in your
.zshrc, znap will do them automatically as needed.
Zoppo is 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.
Zpacker is a lightweight ZSH plugin & theme management framework.
The minuscule ZSH package manager. No frills, no bloat, just 2 kB of 100% ZSH code, providing complete package management for your ZSH environment.
Zplug is a next-generation ZSH plugin manager.
- Can manage everything
- Super-fast parallel installation/update
- Support for lazy-loading
- Branch/tag/commit support
- Post-update, post-load hooks
- Dependencies between packages
- Unlike antigen, no ZSH plugin file (
- Interactive interface (fzf, peco, zaw, and so on)
- Cache mechanism for reducing the startup time
zpm ( ZSH Plugin Manager ) is a plugin manager for ZSH who combines the imperative and declarative approach. At first run, zpm will do complex logic and generate cache, after that will be used cache only, so it makes this framework to be very fast.
- Fastest plugin manager (Really, after the first run, zpm will not be used at all)
- Support for async loading
- Dependencies between packages
- zpm runs on Linux, macOS, FreeBSD and Android.
- zpm plugins are compatible with oh-my-zsh.
zr is a quick, simple ZSH plugin manager written in Rust and easily installable with
cargo install zr.
zshing is a ZSH plugin manager similar to Vundle/Vim and allows you to...
- keep track of and configure your plugins right in the
- Install ZSH plugins
- Update ZSH plugins
- Search by name all available ZSH Plugins
- Clean unused plugins up
- run the above actions in a single command
- manages the Source Plugins of your installed Plugins
Ztanesh aims to improve your UNIX command line experience and productivity with the the configuration provided by the ztanesh project: the tools will make your shell more powerful and easier to use.
ztheme is a small and fast theme engine for ZSH.
A simple and fast ZSH plugin manager. It uses zcompile and async loading to speed up your shell startup time.
Zulu is a environment manager for ZSH 5+, which aims to make it easy to manage your shell without writing any code.
- Easily manage your shell environment without editing files.
- Create aliases, functions and environment variables, and have them available to you at the next shell startup.
- Add and remove directories from
$cdpathwith simple commands.
- Install packages, plugins and themes easily, and have them available to you immediately.
This section is for full setup dropins - they aren't frameworks, but they're not simple plugins/themes either.
- zsh-quickstart-kit - A simple quickstart for using ZSH with zgenom. This automatically configures ZSH to use zgenom to load a curated collection of plugins and periodically automatically update itself, the plugins, and the quickstart kit itself.
- ZPWR - An extremely powerful custom terminal environment built on top of Zinit for maximum speed. A full terminal configuration framework including
vimand spacemacs configurations. It includes:
- 11.5k+ tab completions
- 1.9k+ aliases
- 330+ git aliases
- 350+ zpwr subcommands
- 2.1k functions
- 150+ zpwr environment variables
- 170+ perl, python, bash, zsh scripts
- 2.8k line README.md
- 46k+ LOC
- 1 line install
- A Beautifully Productive Terminal Experience - Tutorial using a combination of iTerm 2, ZSH, Prezto, Tmux, and Tmuxinator to make for an extremely productive developer workflow.
- Arch Linux's ZSH introduction - Not actually Arch or Linux-specific.
- GH - Setup ZSH on debian/Ubuntu-based linuxes. Installs Powerlevel10k, zsh-completions, zsh-autosuggestions, fast-syntax-highlighting, and more.
- How To Make an Awesome Custom Shell with ZSH - A beginner-friendly tutorial on how to install and configure a ZSH shell.
- commandlinepoweruser.com - Wes Bos' videos introducing ZSH and oh-my-zsh.
- 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.
- rs-example - An example plugin showing how a Rust program can listen to and process commands from ZSH.
- Why ZSH is Cooler than your Shell - slideshare presentation.
- xVanjaZ - wrote a quick setup document for oh-my-zsh beginners showing how to use the spaceship prompt, syntax highlighting at the prompt, autosuggestion and a custom iTerm 2 theme.
- ZSH for Humans - A turnkey configuration for ZSH that aims to work really well out of the box. It combines a curated set of ZSH plugins into a coherent whole that feels like a finished product rather than a DIY starter kit.
- ZSH Pony - Covers customizing ZSH without a framework.
- ZSH tips by Christian Schneider - An exhaustive list of ZSH tips by Christian Schneider.
- ZSH Unplugged - Good resource if you want to eliminate using a framework but still easily use plugins.
- belak/zsh-utils - A minimal set of ZSH plugins designed to be low-friction and low-complexity.
- mgdm.net/weblog/zsh-antigen/ - Michael Maclean's article about switching from oh-my-zsh to antigen.
- Oh-my-zsh is the Disease and Antigen is the Vaccine - Josh Davis' introduction to Antigen.
- Getting started with oh-my-zsh - A beginners guide to oh-my-zsh by Dien Bui
- Learn Zsh in 80 Minutes macOS - A beginners guide to using Oh My Zsh on macOS by Karl Hadwen
- Oh-My-Zsh! A Work of CLI Magic - Michiel Mulders installation guide for Ubuntu
- ZSH Gem 24 - Part of the 2011 ZSH Advent Calendar. Covers oh-my-zsh and zshuery.
- A Beautifully Productive Terminal Experience - Mike Buss' blog post about using Prezto, Tmux & Tmuxinator.
- Migrate from Oh-My-Zsh to Prezto - Jerome Dalbert's blog post on migrating to Prezto.
- rad-shell - A fantastically feature rich, lightning-fast shell setup, powered by ZSH, Prezto, and Zgen.
- BlaCk-Void-Zsh - Awesome, customable Zsh Starter Kit