ZSH Plugins

repo: unixorn/awesome-zsh-plugins
category: Development Environment related: Shell


awesome-zsh-plugins

Awesome

Status

Awesomebot

Track Awesome List

A collection of ZSH frameworks, plugins, tutorials & themes inspired by the various awesome list collections out there.

Table of Contents

Please read the Contributing Guidelines before contributing.

Disclaimer

While I have done my best to not add entries with embedded malicious code, I don't have the time to sift through the source of every entry in the list.

THIS LIST IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Frameworks

These frameworks make customizing your ZSH setup easier.

You can find performance timing comparisons of various frameworks in the following locations.

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.

ansible-role-zsh

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

Ant-zsh is a tiny and lightweight ZSH configuration environment for special customization needs. It includes plugins, themes and a basic convenient setup.

antibody

Antibody is a faster and simpler antigen written in Golang. More details are available at http://getantibody.github.io/.

antidote

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.

use-omz enables easy use of Oh-My-ZSH with antidote.

antigen-hs

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

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.

awesome-lazy-zsh

Awesome-Lazy-ZSH is a simplified and customizable ZSH setup tool for managing plugins and themes. It streamlines your terminal environment with an easy-to-use CLI interface, allowing you to manage .zshrc configurations effectively. Features

  • Plugin Management: Install and manage plugins easily.
  • Theme Customization: Apply a variety of Zsh themes.
  • Backup and Restore: Safeguard your .zshrc configurations.
  • Interactive CLI: User-friendly setup options.
  • Dependency Management: Automatically checks for Git, Node.js, and Homebrew.

ax-zsh

Ax-ZSH is a modular configuration system for ZSH. It provides sane defaults and is extendable by plugins.

Ax-ZSH integrates well with Powerlevel10k and other extensions, including plugins compatible with oh-my-zsh.

deer

A minimalist ZSH plugin manager.

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

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.

gh-source

gh-source is a plugin manager for people who don't like plugin managers. It's a simple shell function that downloads and installs plugins from GitHub as part of the sourcing step. It's designed to be used with zsh, but it should work with any shell.

miniplug

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

oh-my-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

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

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

Pumice is a lightweight plugin manager for ZSH.

rac

Most ZSH plugin managers are bloated. They try to do too much - dependency graphs, deferred loading, configuration injection - and in the process, they slow down your shell.

The reality is, most users never use even 80% of these features. rac is deliberately minimal. All it does is download plugins and update plugins.

rat

A lightweight, fast, and reproducible plugin manager for ZSH. Made with 🐭 & 🦀 — no magic, no heavy frameworks.

Features 🐭✨

  • 🚀 Simple setup
    • Install with a single curl line
    • Just add one eval line in .zshrc to start using it
  • ⚙️ Configurable and reproducible
    • Simple TOML-based configuration
    • Automatic plugin load order control
  • 🐙 GitHub integration
    • Fetches plugins from GitHub repositories
    • Supports branches, tags, and commits
    • Handles Git submodules automatically
  • ⚡️ Lightweight and fast
    • Parallel plugin sync
    • Built in Rust 🦀
  • 🔄 Seamless updates
    • Self-upgrade -Plugin sync

ryzshrc

ryzshrc is a smart, innovative plugin manager like Oh My Zsh, designed to enhance your terminal experience with professional and cool features. It boosts productivity by providing efficient shell management, sleek themes, and powerful plugins. Perfect for developers seeking a modern and intelligent way to work with their terminal

sheldon

sheldon is a fast, configurable, shell plugin manager.

  • It can manage:
    • Any git repository.
      • 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.

shellx

A generic script/plugin loader for multiple shells, including ZSH.

  • Has a "plugins" system that allows you to do things like installing a package, cloning a repository, export variables, run commands. And cross-shell compatible.
  • Has an unified way of configuring shells, it uses one of many approaches to standardize home folder with a set of predefined files and folders. it defines a ~/bin folder between others that is auto-included in PATH, so it helps you to use always same approach on all your systems.
  • Having different plugins in different folders, which allows loading certain folders in certain environments to load variables or any other special configurations. It also allows you to clone other users plugins easily.
  • It provides a minimal set of libraries and binaries bundled inside which offers a set of functions/aliases/etc. based on SH/BASH (compatible with other shells) to use in plugins contexts to do certain stuff easily.

shplug

shplug is an easy solution for managing your shell environments. Works with both bash and zsh. Makes it easy to sync your environment across multiple machines with a git repository.

TheFly

TheFly is a bash/zsh/ksh plugin manager and env teleporter

Makes your shell env and plugins available everywhere (hosts/users)!

Toasty

Toasty is a ZSH framework made to facilitate management, not dictate it.

Usepkg

Usepkg is a minimal declarative zsh plugin manager.

Supports:

  • fetch & load plugin(s) with declared methods
  • list, check, reload, update & remove plugin(s) with commands

Dependencies:

  • zsh
  • gnu coreutils
  • git (optional, if you want to clone git repositories from internet)
  • curl (optional, if you want to fetch a script file by url)

Pros:

  • extremely simple and light, but enough to use.
  • compared to similar packages like zplug, it has a much simpler configuration grammar.

uz

uz is a micro plugin manager for ZSH

x-cmd

x-cmd is a toolset implemented using posix shell and awk.It is very small in size and offers many interesting features. Here is a milestone demo: https://x-cmd.com/

Tools Provided by x-cmd:

  • Wrappers for Common Commands (e.g., cd, ip, ps, tar, apt, brew): These wrapped commands are more intelligent and easier to use compared to the native commands.
  • Lightweight Package Management Tool: We have implemented a lightweight package management tool using shell and awk. Through it, you can quickly obtain most common software tools, such as jq, 7za, bat, nvim, python, node, go, etc.
  • [CLI for Useful Websites (e.g., github.com, cht.sh)](https://x-cmd.com/mod/cht): We have wrapped their APIs using shell and awk for daily use and to obtain corresponding services in scripts.
  • AI Tools: We provide CLIs for ChatGPT, Gemini, Jina.ai, etc., and have wrapped corresponding shortcut commands for different application scenarios, such as @gemini for chatting with Gemini AI and @zh for using AI to translate specified content or command results.

xc-manager

XC-Manager is a Zsh-native command vault designed to bridge the gap between temporary shell history and permanent aliases. It allows you to store complex one-liners with descriptions and recall them via an interactive TUI.

Features Provided by XC-Manager:

  • Command Vaulting: Save any command directly from your history into thematic vaults (e.g., work, sysadmin, media).
  • FZF TUI: Search and execute vaulted commands instantly using a robust, TTY-safe fzf interface.
  • Alias Promotion: Promote frequently used vaulted commands to permanent system aliases without manually editing configuration files.
  • Global Search: Query across all vault files simultaneously to find that one specific flag or complex pipe string.

yazt

Yazt is a simple ZSH theme manager in maintenance that is compatible with nearly everything. You can use prompts in plugins, mix 'n' match two themes and with a few modifications, you can even use it in bash.

yzsh

yzsh is a simple ZSH framework for managing plugins, themes, functions, aliases and environment variables.

zap

:zap:zap is a minimal ZSH plugin manager.

zapack

zapack is a basic fast minimal ZSH plugin loader.

zcomet

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

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

zgem is a plugin manager for ZSH that supports loading and updating plugins and themes from git, http and local files.

zgen

Zgen is currently not being actively maintained. I recommend you use the zgenom fork instead, which is actively maintained and continues to get new features and bug fixes.

Zgen was a lightweight plugin manager for ZSH inspired by Antigen. The goal was to have minimal overhead when starting up the shell because nobody likes waiting.

zgenom

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

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

Zgenom can load oh-my-zsh-compatible and prezto-compatible plugins and themes, and will automagically git clone plugins for you when you add them to your plugin list.

zilsh

zilsh is a ZSH config system that aims to appeal more to power-users and follow the simplistic approach of vim-pathogen.

zim

Zim is a ZSH configuration framework with blazing speed and modular extensions.

Zinit

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)
  • bindkey capturing and remapping
  • packages
  • Clean fpath (the array $fpath is 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.

zinit-4

This is Zinit 4 from the original author, who once removed the Zinit repository from GitHub. This spawned a community-driven zdharma-continuum organization that revived all of psprint's ZSH projects. Its main innovations from the @zdharma-continuum fork are:

  • AppImage distribution (release link),
  • Action complete – press Alt-Shift-A and Alt-Shift-C to complete plugin names and ice modifiers,
  • Themes – set $ZITHEME to one of default, blue and gold to set a color set to use for Zinit 4 messages,
  • New ice build which is equivalent of three other ices: null, configure and make install and simply builds the project from sources, with support for autotools/CMake/Meson/Scons.

truncated — full list on GitHub

[[curator]]
I'm the Curator. I can help you navigate, organize, and curate this wiki. What would you like to do?