A collection of ZSH frameworks, plugins, tutorials & themes inspired by the various awesome list collections out there.
- Writing New Plugins and Themes
- 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 the 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.
Antidote is a ZSH plugin manager made from the ground up thinking about performance.
It is fast because it can do things concurrently, and generates an ultra-fast static plugin file that you can include in your ZSH config.
It is written natively in ZSH, is well tested, and picks up where Antibody left off.
antigen-hs is a replacement for antigen optimized for a low overhead when starting up a
zsh session. 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
- Unlike other frameworks, Miniplug does not pollute your
- Only does the bare minimum for managing plugins
mzpm is a minimalist plugin manager for ZSH.
- Fetching and loading plugins from GitHub
- Loading local plugins
- Loading themes
oh-my-zsh is a community-driven framework for managing your ZSH configuration. Includes 120+ optional plugins (rails,
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 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.
An easy solution for managing your shell environments. Works with both
zsh. Makes it easy to sync your environment across multiple machines with a
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
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.
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 actively maintained and extended.
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 every shell session's 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. Formerly known as
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, that's 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 repository manager for ZSH that's easy to grok. While tailored for ZSH plugins specifically, Znap also functions as a general-pupose utility for managing
- 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 files (
*.plugin.zsh) are required
- 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 which combines the imperative and declarative approach. At first run, zpm will do complex logic and generate a cache, after that will only use the cache, so it makes this framework 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 or later, 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 (but easily customizable) 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
330+ git aliases
350+ zpwr subcommands
150+ zpwr environment variables
170+ perl, python, bash, zsh scripts
2.8k line README.md
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.
- adamnorwood-zsh - A minimalist but readable ZSH setup based on oh-my-posh.
- 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.
- zephyr - Zephyr uses built-in Zsh features to set up better default options, completions, keybindings, history, and much more.
- 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.
- Configuration to use Hyper.js as a ZSH terminal with a Windows Subsystem Linux on windows 10, with Oh My Zsh and the Powerlevel10k theme - How-to for getting Oh-My-ZSH running on WSL.
- Getting started with oh-my-zsh - A beginners guide to oh-my-zsh by Dien Bui
- iTerm2 + Oh-My-ZSH: Supercharge Your Mac Terminal - Catalin Pit's tutorial on getting started with Oh-My-ZSH on macOS.
- 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
- One Key Linux Setup - Simple setup (ubuntu-only) of
pythonsupport and other packages.
- 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.