A collection of ZSH frameworks, plugins, themes and tutorials.
17,998
stars
6,482
commits
Shell
primary language
Sep 6, 2026
updated
A collection of ZSH frameworks, plugins, tutorials & themes inspired by the various awesome list collections out there.
Please read the Contributing Guidelines before contributing.
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. Use items from this list at your own risk.
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.
These frameworks make customizing your ZSH setup easier.
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.
Antibody is a faster and simpler antigen written in Golang. More details are available at http://getantibody.github.io/.
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 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.
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
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.
A minimalist ZSH plugin manager.
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.
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.
With lazy.zsh, your .zshrc is the single source of truth. Reproduce the same ZSH setup anywhere using the same config; no frameworks, no auto-sourcing, no hidden behavior. lazy.zsh installs, updates, and tracks plugins, while you control exactly how and when they are loaded.
miniplug is a minimalistic plugin manager for ZSH.
.zshrc$PATH
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.
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.
A lightweight, fast, and reproducible plugin manager for ZSH. Made with 🐭 & 🦀 — no magic, no heavy frameworks.
Features 🐭✨
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 is a fast, configurable, shell plugin manager.
git repository.
A generic script/plugin loader for multiple shells, including ZSH.
~/bin folder between others that is auto-included in PATH, so it helps you to use always same approach on all your systems.
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 is a bash/zsh/ksh plugin manager and env teleporter
Makes your shell env and plugins available everywhere (hosts/users)!
Toasty is a ZSH framework made to facilitate management, not dictate it.
Usepkg is a minimal declarative zsh plugin manager.
Supports:
Dependencies:
zshgit (optional, if you want to clone git repositories from internet)curl (optional, if you want to fetch a script file by url)Pros:
zplug, it has a much simpler configuration grammar.
uz is a micro plugin manager for ZSH
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:
@gemini for chatting with Gemini AI and @zh for using AI to translate specified content or command results.
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:
fzf interface.
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 is a simple ZSH framework for managing plugins, themes, functions, aliases and environment variables.
:zap:zap is a minimal ZSH plugin manager.
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.
Declarative zsh plugin manager in Nix, targeting <50 ms cold start. Inspired by nvf, built around the idea that if the entire shell config is known at build time, the runtime can be a thin shim.
zert is a pure-ZSH plugin manager built around a simple idea: your plugins should be declared directly in your .zshrc, pinned to exact commits, and reproducible on any machine — just like npm does for Node projects.
No config files to maintain. No subcommands to memorize for adding plugins. No external tools. Just ZSH, git, and curl.
Features
.zshrc. No separate config file, no add command.zert.lock pins every plugin to an exact git commit SHA. Commit it. Share it. Reproduce it anywhere.git clone --filter=tree:0 for minimal bandwidth.zert update zert, managed as a first-class plugin.
zgem is a plugin manager for ZSH that supports loading and updating plugins and themes from git, http and local files.
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.
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 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:
bindkey capturing and remappingfpath (the array $fpath is not being used to add completions and autoload functions, hence it stays concise, not bloated)The project is very active – currently > 3100 commits.
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:
Alt-Shift-A and Alt-Shift-C to complete plugin names and ice modifiers,$ZITHEME to one of default, blue and gold to set a color set to use for Zinit 4 messages,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.These are the most visible changes, but there are more (like e.g.: support for compiling with libraries from previously built projects/$ZPFX).
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.
zlugin is a very lightweight ZSH plugin manager.
:zap: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-purpose utility for managing git repositories.
Znap can:
eval $(commands).compinit and 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.
zpico is a minuscule ZSH package manager. No frills, no bloat, just 2 kB of 100% ZSH code, providing complete package management for your ZSH environment.
ZSH package managers are abundant, but most are bloated, slow or have excessive requirements. On top of that, more than a few have been abandoned for years. Zpico does not seek to be the best of the best, rather to balance functionality against a tiny, fast footprint.
:hibiscus: Zplug is a next-generation ZSH plugin manager.
*.plugin.zsh) are required
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.
zpm will not be used at all)
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...
~/.zshrc
zsh-dot-plugin will customize your .zshrc with only ~21 lines of code. Based on zsh-unplugged.
A simple plugin manager for zsh. Features:
zsh-unplugged is a tiny plugin manager. TLDR; You don't need a big bloated plugin manager for your ZSH plugins. A simple ~20 line function may be all you need.
zshPlug is a minimalist plugin manager heavily based on zap.
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.
ztupide is 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.
$path, $fpath and $cdpath with simple commands.
zush is a performance-aware ZSH configuration designed for sub-200ms startup times while maintaining full functionality.
Features:
zushp user/repo command to install GitHub pluginsnvm, pyenv, cargo load only when neededzcompile for faster loadingYou can find performance timing comparisons for various frameworks in the following locations.
This section is for full setup dropins - they aren't frameworks, but they're not simple plugins/themes either.
ZPWR - An extremely powerful custom terminal environment built on top of Zinit for maximum speed. A full terminal configuration framework including zsh, tmux, fzf, vim and spacemacs configurations. It includes:
12.9k+ tab completions
1.9k+ aliases
330+ git aliases
400+ zpwr subcommands
2.8k functions
175+ zpwr environment variables
175+ perl, python, bash, ZSH scripts
2.8k line README.md
50k+ LOC
1 line install
If you're on a Mac, the zsh that comes with each OS update is usually very stale. You can use brew install zsh to update it.
Many of the themes here use special glyphs for things like displaying a branch icon. You'll need to use a Nerd Font or a Powerline-compatible font in your terminal program or you'll see ugly broken boxes where the symbols should be.
Here are a few good sources for Nerd Fonts and Powerline-compatible fonts:
brew - do brew tap homebrew/cask-fonts && brew install --cask fontnameIf you're looking for a new font to use, check out www.codingfont.com - it presents programming fonts in a bracket-style tournament and lets you keep picking the best of two presented options until landing on a final font.
zsh, oh-my-zsh, tmux, python support and other packages..zshrc files) holding zinit invocations.ConEmu/zsh out-of-the-box configured to restore previously opened tabs and shell working directories after ConEmu restartMSYS2 included, zsh and necessary software preinstalled, uses zsh-grml-configgit and git lfs support for MSYS2 environment is configured, git client already installed.ssh-agent for git works out-of-box, add your keys to ConEmu/msys64/ConEmu/msys64/home/user/.ssh dirMSYS2 suggests what package to installnano as main editor, enables nano syntax highlightingConEmu/msys64/3rdpartyopswd command that wraps the op command. It takes a service name as an argument and copies the password for that service to the clipboard.TERM environment variable and sees if there is respective ncurses' terminfo with 256 colors available. The result is a multicolor terminal, if available.theme_title_use_abbreviated_path parameter from some oh-my-fish themes.vim's abbreviation expansion.poetry, virtualenv and conda) while traversing directories.node part of the ace command.curl, jq and an Anthropic API key.$RPROMPT.betterbrew.cd into $HOME.bash.alt-c (copy), alt-v (paste), alt-x (cut) keyboard shortcut to commands: copy-region-as-kill, yank and kill-region. Remaps the execute command to alt-shift-X.git rebasing.peco/percol/fzf wrapper plugin for ZSH.start, stop, up and down commands when it detects a docker-compose.yml or Vagrantfile in the current directory (e.g. your application). Just run up and get coding!apt package manager. Offers to install missing programs for you.apt command wrappers for users transitioning from those distributions to arch. Requires yay or paru for full functionality.pacman on Arch Linux.jq.artisan plugin for ZSH to help you to run artisan from anywhere in the project tree, with tab completion!git if not installed yet. Also, bypasses the shims if you're using the direnv plugin, as suggested by the plugin pro-tips.Ctrl+O to transform any text in your command line into optimized shell commands.cURL and jq.colorls.ls or color-ls if available on cd.ls when cding to a new directory..nvmrc or .npmrc.cd into a directory containing a .env file.stderr and asks a local Ollama model for a fix, shown as ghost-text you can accept with Tab. Silent on success.cd command that learns - easily navigate directories from the command line. Install autojump-zsh for best results.zle widget ("zsh plugin") that will automatically put quotes around arguments to certain commands.antigen, both of antigen and the bundles loaded in your configuration.git repositories in the $ZSH_CUSTOM directory.mfa_device in profile.aws command. Includes mfa and assume-role helpers.aws-upload.tmux.$AWS_PROFILE environment variable.awscli and a few utilities for managing AWS profiles and displaying them in your prompt.aws cli and jqssh into EC2 instances.fortune and cowsay being installed.bash does. It also enables bash completions.cd ../../...bchmod command (and an optional chmod replacement) that accepts symbolic and octal permission formats with input validation and colored output.jq and bitwarden.git repository.docker on macOS.git.git branches.brew link different versions of packages.optirun in the command line.git shortcuts.jq and yq.rm that adds trash/recycling and useful warnings.tolower and toupper to switch output case.ccusage CLI tool directly in your terminal prompt.cd to the git repository root directory.ls after cd.cd-ing into specified directories.cd to the current repository checkout's root directory.ssh to a server when you accidentally cd to it.pushd, popd and dirs equivalents.cd to add cd history, rapidily swich to already visited directories, can use locate, mlocate or plocate to rapidly cd to any directorycdr for ZSH.chruby modified to make it easy to switch between multiple Go versions..DS_Store and Thumbs.db files from cluttering your directories.git difftool on git merge-base target_branch base_branch and target_branch.caf alias, which runs caffeinate -dims. The extra flags keep everything awake: the system, the drive, and the display.cat and ls and provides a color library.man output.man pages by role with curated truecolor themes, OSC-8 links, and automatic light/dark detection.man pages.red foo just works.command-not-found package for ZSH to provide suggested packages to be installed if a command cannot be found.REPORTTIME builtin, but only outputs when user + system time >= REPORTTIME.conda and provides functions for detecting conda versions for use in themes.tmux.condaenv_prompt_info function which returns the current conda environment name.conf vim to edit your vim configuration files.ssh.cowsay every time you open a terminal.hterm-notify is installed).ffmpeg.cwebp tool in batch mode..zshrc. It allows you to perform the following actions on .zshrc from the command-line - enable and disable plugins add or remove snippets.zsh command until zsh has nothing else to do and is waiting for user input. Its intended purpose is staged zsh startup. It works similarly to Turbo mode in zinit.docker or git command you ran in a project folder weeks ago.$HOME/.deno on startup if deno is not already installed.$PATH automatically.$PATH (and includes aliases to automagically run them with sudo) when you log into a machine running dietpi.git..dirc when present in a directory you cd into.doas by pressing ESC twice.doas by pressing ESC twice.Docker aliases for everyday use.docker container status in your prompt.docker helper scripts...., ...., ....., etc., into cd commands to navigate parent directories.git..pyvenv when you cd into a directory.aria2c.dropbox-cli and dropbox-uploader commands.drush. Inspired by Artisan.:-prefixed prompts) out of your main ZSH history by routing them to a separate file, intercepting every write path including the agent's own history insertions. Also turns Ctrl+R into an fzf interface switchable between All, Human and AI views, merged chronologically.ssh login to the instances easily.ssh connection, or X frames opened on the same host.cd command by memorizing all directories visited by a user and use it for the pathname resolution.--context flag is passed to various Kubernetes commands like kubectl, cilium, stern, and more.pass and the macOS keychain..envrc file is found in a directory.git, gh, docker, and other CLI subcommands.eval "$(hub alias -s)", to help lower shell startup time by loading from cache instead of re-running every new shell session.vi commands to remotely access named registers of the vim and nvim editors, and system selection and clipboard.ls.ls.ls.ls with ogham/exa.ls with ogham/exa.ls and tree.ET_NOTIFY_COMMAND), which is executed asynchronously in the background.zsh aliases when you press space.zle widget that allows you to write custom expanders and select them with fzf.lynx to look up the current command line on explainshell.com.compinit, queueing up calls to compdef, and hooking the real compinit call to an event that runs at the end of your .zshrc. That way you get all the benefits of calling compinit early without any of the downsides.ls with eza-community/eza.ls.ls with eza-community/eza.ls and tree.F1 to F12 keys.zsh-users/zsh-syntax-highlighting – better response times, switchable highlight themes.find.firebase.json file (aka "firebase project").work, track wins for dopamine with win, stay oriented with dash. Includes smart dispatchers for git, R, Quarto, and Claude Code.flow command available inside every subdirectory of the TYPO3 Flow distribution.fnm.git which takes advantage of fuzzy finder fzf.git commit message generator.fzf and fd.z with fzf's fuzzy search!find and cat. Searches in the local tree of subdirectories for files.git worktrees with fzf integration.Ctrl+R with an fzf-driven history search that includes date/times.bash and zsh, using the fuzzy finder fzf.apt, brew & dnf.zstyle configuration option.alias, find, ls, man, printenv that are designed to enhance your command-line workflow by making them to default to filtering through fzf, allowing you to quickly find files, search & run commands from history, run scripts of many supported types, browse git commits, and more.chezmoi, docker, git, kubectl and pass.$PATH.date unix command) in your prompt..rs or Cargo.toml is present.ghq get / ghq clone fetches a repository, automatically clones its GitHub Wiki (when the wiki has pages) into a .wiki subdirectory of that repository.ghq, fzf, and git worktree to minimize context-switching cost in multi-repository development.git pull, git add, git commit and git push with one keystroke.git fork.git commands.git xyz commands to gxyz. Also aliases g to git.git features, designed especially for users who prefer aesthetically pleasing branch naming conventions. It visually formats the current git branch name or commit hash, considering customisable variables like hiding status, maximum branch length, prefix, and suffix trimming, with an option to display git status.git branches you can switch to without having to type long branch names.git branches.git branches that uses fzf to find all branches that are safe to delete.git commit messages (supports styles, icon themes, and interactive selection)git commit messages with emoji prefixes and consistent formatting.git completion to include in the remotes completion (e.g. from git clone) any URL in the clipboard.git helper scripts packaged as a plugin.git-flow commands.git that relies heavily on fzf.git bulk branch delete and create operations.git graph.git repo is dirty or not.git-lfs commands.git plugin.git commit identity, SSH key and gh CLI account together for multiple GitHub accounts.git integration that displays the current directory and git branch.git.git oh-my-zsh plugin.git repository.git user.email.fswatch to monitor repository files in real-time.git repository and/or that were merged in your remote origin git repository.git repository.git-squash-branch and git-remove-merged commands.git repository.git commands to make some common git usages more efficient.git repository.git branches with skimgit repositories and clean them up.jj) porcelain as you use git commands.git worktree operations for simplicity and productivity. Includes fzf tooling.git worktree management with bare repository support. This plugin provides convenient commands for working with git worktrees, making it easy to work on multiple branches simultaneously.git worktrees with ease. Streamline your workflow when working with multiple branches simultaneously.git worktrees more functional. Includes tab completions.git worktree workflow plugin.git plugin. Provides quite a few useful aliases and functions. The motivation to replace the default plugin stems from the fact that it comes with some inconsistencies that make a few popular commands rather unintuitive, so this plugin makes the aliases consistent.git clone a repository and cd into the resulting directory.cd to a git working directory after cloning it.gitfast plugin..gitignore files.git urls.$GOPATH similarly to Python's virtualenvwrapper.goenv..goenv files in the current directory and sets GOPRIVATE environment variables.gpg.grep command into awk command.grunt.gitgit using the tag name *release-YYYY-MM-DD-HH-MM- and headline Release YYYY-MM-DD HH:MM.git repository. This is a command-line shell plugin for undoing git add.gvm (Go version manager) plugin for ZSH.gvm (Groovy enVironment Manager)..envrc if it's found when changing to a new directory.tmux sessions, supervised by systemd (--user) on Linux or launchd on macOS, with one consistent set of verbs on both.--help.^G to quickly toggle the current shell history file location.PageUp key and uses dialog to open a popup menu with the history, so the user can interactively navigate through it and pick the history line to bring back to the prompt.zsh-syntax-highlighting, or they'll both break. You'll also need to bind keys to its functions, details are in the README.md.git private repository. Uses openssl to encrypt the history.git.~/.zsh_history. Useful right after running a command you don't want kept in your shell history (e.g. one containing a typo'd password or a temporary secret). Running histpop itself is also removed from history, so it leaves no trace./etc/hosts files during development.hub ci-status to your ZSH theme.python environments.git commands using fzf.vim mode for ZSH. Moves cursor with incremental search within current line.ping output.cd.tmux tab opened in iTerm2 will have the next colour from the default or specified palette.$PWD, this ZSH plugin saves your initial working directory in $IWD for easy returns to the starting point of your session.setjdk command so you can switch easily between different versions of the jdk.git, handling large files with Git LFS, improving diff outputs, and managing credentials and keys securely.sudo when accidentally open non-writable files.git status decorations.$KUBECONFIG selector for k9s.kubectl.node process families.kitty terminal emulator.git status and last command exit status decorators.kubectl more pleasant.kubectl that adds current context and namespace.kubecolor command.kubectl get events -wkubectl. Includes helper functions.~/.kube via the KUBECTL environment variable.ZSH_KUBECTL_CONTEXT, ZSH_KUBECTL_NAMESPACE,ZSH_KUBECTL_PROMPT and ZSH_KUBECTL_USER variables you can use to customize your prompt.kubectl.kubectl versions.kubens.php command when running artisan commands and ./sail or ./vendor/bin/sail when running sail commands.sail commands.git plugin for oh-my-zsh-compatible frameworks.curl and jq.ls.ls and tree commands with lsd.ls and tree commands with lsd.ls with lsd.lux command. Highly customizable: included items can be configured by defining variables. Highly extensible: items can be added by defining functions. Includes a macos_is_dark helper function to determine if the macOS dark mode is active for use in theming.magebox CLI.m2 function to run magento binary, adds tab completions....'==../..' etc.rclone locations.$PATH. Uses the shims strategy so that tools are available in non-interactive shells (e.g. Emacs exec-path-from-shell).nvm, nodenv, rbenv, rvm, chruby, pyenv, etc.mkcd command, the canonical mkdir && cd helper.cd into it afterward.mlir-opt and colorizing its output.vi mode.git add, git diff and git status.maven configurations.mycli with login path.mysql tables.mysql.htop-like kill, directory bookmarks browser, a multi-word incremental history searcher and more.nix-shell environment..nvmrc. Requires n.nvm to install new versions and modules for the current project.npm bin of your current directory to your $PATH.nvm completions and autoloading of nvm if present.nodenv in your working directory and loads it when found.nodenv and its completions into the shell.nodenv. Inspired by zsh-rbenv.node_modules directories from filling your iCloud storage by un-syncing the directory or can save even more space by removing all node_modules directories within the chosen root directory. This is particularly useful for cleaning up a project that has multiple node_modules treesnohup to the current command pressing Ctrl-H.npm aliases. Based on the Oh-My-Zsh npm plugin.n as npm aliases with noglob prefix and more. Based on the Oh-My-Zsh npm plugin.NVIM_APPNAME with full tab completion of available flags, available neovim applications, and neovim arguments/flags. Requires neovim v0.9+nvim distributinons such as Lazyvim, kickstart or a home made configuration.nvm use when a .nvmrc is detected.nvm use automatically whenever you enter a directory that contains an .nvmrc file with a string telling nvm which node to use.nvm oh-my-zsh plugin using zsh-defer to speed up shell startup.nvm for more than one binary/entrypoint, with the defaults being nvm, node and npm.nvm) and manages pnpm package manager versions (using corepack) when changing directories.nvm with extended helpers and improved workflow.nvm.tmux configurations.opgx command followed by the profile's name. The plugin also implements autocompletion for profile names.~/opt subpaths to your $PATH./dev/tty so attackers cannot embed the confirmation in the payload.$PATH quickly and easily. Doesn't touch your existing .zshrc, .zprofile, but adds on top of your existing environment instead.ctrl+R.uv Python virtual environments stored in ~/.local/share/py-venv/. Supports subcommands for listing, activating (shell and directory level), creating, deleting and explaining why an env is activated. Makes it easier to replace pyenv and poetry with uv.^G.pgcli and fzf for a seamless command-line experience..php-version file is found.: commands in your shell to pi -p calls and keeps a per-shell pi session file for continuity.pipenv project.apt, dnf, pacman, zypper, homebrew, and more), Docker container/volume management, and development environment enhancements. Simplifies system maintenance across multiple Linux distributions with intuitive commands. Extensible through a simple configuration system - see project README for details.pipenv completions.pipenv's $PATH and adds completions.$PATH and autocompletions.padd, p, and pls. Supports AES-256-CBC encrypted secret placeholders, history capture via paddh, tab completion, and export/import including direct import from a GitHub repository.git status in your prompt./sys/class/net/$interface/ to keep track of packet transmission rates. It stores the current rate to a file in the RAM backed filesystem where it can be easily accessed for display in a shell-prompt. Linux-only due to use of /sys.git status information that can be displayed in prompts.$HOME. Includes a lwd alias.printc call.ps grep hide its own process from the results of a ps aux | grep.ps, awk, lsof) with live watch mode, resource sorting, and tree-aware process killing.= key into a powerful, Python‑backed calculator in your ZSH shell.pyenv, and adds extra functionality.pyenv_prompt_info function. Also loads pyenv-virtualenv if available.pyenv in ZSH.eval "$(pyenv init -)" is executed the first time pyenv is called.venv with one command. Designed for use with dotpyvenv.vim-like macro registers to your ZSH shell.randeme_rm to never show that theme again.RANGER_LEVEL, displaying nothing when the environment variable is unset, something when it is equals to 1, and something else when it is greater than 1.rpi-temp alias.rbenv plugin from oh-my-zsh.rbenv plugin.rbenv environments.redis.conf configuration file. This can be used with the zdharma/zredis plugin to share variables between shells.Ctrl-R and ESC+/..zshrc.... to ../..require commandname and then (if brew is installed) automatically brew install commandname if it isn't already installed.man pages.package.json.$PATH.kubectl command.rm functionality so that rm will put files in your OS' trash instead of permanently deleting them..zshrc & shell startup with lazy-loading by only running setup commands (e.g. eval "$(rbenv init -)", etc) when you need them.docker with management commands rather than the notoriously confusing “random solo commands”. Requires GRC and jq.chroot name in your prompt.git add, git commit, and git push for much faster git workflow.git aliases and helper shell functions.fpath and $PATH.git, neovim, npm, pip extended functionality.zsh..shellcolor in the current directory.git users on the same machine this plugin will show which git user name is active in your prompt.$PATH line by line.SimpleHTTPServer and SimpleHTTPSServer.singularityenv_prompt_info function which returns the current singularity environment namels and git status after chpwd.Truncated — view the full README on GitHub.
(top 30 of 238)
Shell
100.0%
A collection of ZSH frameworks, plugins, themes and tutorials.
17,998
stars
6,482
commits
Shell
primary language
Sep 6, 2026
updated
A collection of ZSH frameworks, plugins, tutorials & themes inspired by the various awesome list collections out there.
Please read the Contributing Guidelines before contributing.
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. Use items from this list at your own risk.
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.
These frameworks make customizing your ZSH setup easier.
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.
Antibody is a faster and simpler antigen written in Golang. More details are available at http://getantibody.github.io/.
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 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.
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
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.
A minimalist ZSH plugin manager.
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.
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.
With lazy.zsh, your .zshrc is the single source of truth. Reproduce the same ZSH setup anywhere using the same config; no frameworks, no auto-sourcing, no hidden behavior. lazy.zsh installs, updates, and tracks plugins, while you control exactly how and when they are loaded.
miniplug is a minimalistic plugin manager for ZSH.
.zshrc$PATH
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.
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.
A lightweight, fast, and reproducible plugin manager for ZSH. Made with 🐭 & 🦀 — no magic, no heavy frameworks.
Features 🐭✨
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 is a fast, configurable, shell plugin manager.
git repository.
A generic script/plugin loader for multiple shells, including ZSH.
~/bin folder between others that is auto-included in PATH, so it helps you to use always same approach on all your systems.
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 is a bash/zsh/ksh plugin manager and env teleporter
Makes your shell env and plugins available everywhere (hosts/users)!
Toasty is a ZSH framework made to facilitate management, not dictate it.
Usepkg is a minimal declarative zsh plugin manager.
Supports:
Dependencies:
zshgit (optional, if you want to clone git repositories from internet)curl (optional, if you want to fetch a script file by url)Pros:
zplug, it has a much simpler configuration grammar.
uz is a micro plugin manager for ZSH
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:
@gemini for chatting with Gemini AI and @zh for using AI to translate specified content or command results.
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:
fzf interface.
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 is a simple ZSH framework for managing plugins, themes, functions, aliases and environment variables.
:zap:zap is a minimal ZSH plugin manager.
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.
Declarative zsh plugin manager in Nix, targeting <50 ms cold start. Inspired by nvf, built around the idea that if the entire shell config is known at build time, the runtime can be a thin shim.
zert is a pure-ZSH plugin manager built around a simple idea: your plugins should be declared directly in your .zshrc, pinned to exact commits, and reproducible on any machine — just like npm does for Node projects.
No config files to maintain. No subcommands to memorize for adding plugins. No external tools. Just ZSH, git, and curl.
Features
.zshrc. No separate config file, no add command.zert.lock pins every plugin to an exact git commit SHA. Commit it. Share it. Reproduce it anywhere.git clone --filter=tree:0 for minimal bandwidth.zert update zert, managed as a first-class plugin.
zgem is a plugin manager for ZSH that supports loading and updating plugins and themes from git, http and local files.
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.
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 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:
bindkey capturing and remappingfpath (the array $fpath is not being used to add completions and autoload functions, hence it stays concise, not bloated)The project is very active – currently > 3100 commits.
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:
Alt-Shift-A and Alt-Shift-C to complete plugin names and ice modifiers,$ZITHEME to one of default, blue and gold to set a color set to use for Zinit 4 messages,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.These are the most visible changes, but there are more (like e.g.: support for compiling with libraries from previously built projects/$ZPFX).
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.
zlugin is a very lightweight ZSH plugin manager.
:zap: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-purpose utility for managing git repositories.
Znap can:
eval $(commands).compinit and 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.
zpico is a minuscule ZSH package manager. No frills, no bloat, just 2 kB of 100% ZSH code, providing complete package management for your ZSH environment.
ZSH package managers are abundant, but most are bloated, slow or have excessive requirements. On top of that, more than a few have been abandoned for years. Zpico does not seek to be the best of the best, rather to balance functionality against a tiny, fast footprint.
:hibiscus: Zplug is a next-generation ZSH plugin manager.
*.plugin.zsh) are required
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.
zpm will not be used at all)
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...
~/.zshrc
zsh-dot-plugin will customize your .zshrc with only ~21 lines of code. Based on zsh-unplugged.
A simple plugin manager for zsh. Features:
zsh-unplugged is a tiny plugin manager. TLDR; You don't need a big bloated plugin manager for your ZSH plugins. A simple ~20 line function may be all you need.
zshPlug is a minimalist plugin manager heavily based on zap.
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.
ztupide is 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.
$path, $fpath and $cdpath with simple commands.
zush is a performance-aware ZSH configuration designed for sub-200ms startup times while maintaining full functionality.
Features:
zushp user/repo command to install GitHub pluginsnvm, pyenv, cargo load only when neededzcompile for faster loadingYou can find performance timing comparisons for various frameworks in the following locations.
This section is for full setup dropins - they aren't frameworks, but they're not simple plugins/themes either.
ZPWR - An extremely powerful custom terminal environment built on top of Zinit for maximum speed. A full terminal configuration framework including zsh, tmux, fzf, vim and spacemacs configurations. It includes:
12.9k+ tab completions
1.9k+ aliases
330+ git aliases
400+ zpwr subcommands
2.8k functions
175+ zpwr environment variables
175+ perl, python, bash, ZSH scripts
2.8k line README.md
50k+ LOC
1 line install
If you're on a Mac, the zsh that comes with each OS update is usually very stale. You can use brew install zsh to update it.
Many of the themes here use special glyphs for things like displaying a branch icon. You'll need to use a Nerd Font or a Powerline-compatible font in your terminal program or you'll see ugly broken boxes where the symbols should be.
Here are a few good sources for Nerd Fonts and Powerline-compatible fonts:
brew - do brew tap homebrew/cask-fonts && brew install --cask fontnameIf you're looking for a new font to use, check out www.codingfont.com - it presents programming fonts in a bracket-style tournament and lets you keep picking the best of two presented options until landing on a final font.
zsh, oh-my-zsh, tmux, python support and other packages..zshrc files) holding zinit invocations.ConEmu/zsh out-of-the-box configured to restore previously opened tabs and shell working directories after ConEmu restartMSYS2 included, zsh and necessary software preinstalled, uses zsh-grml-configgit and git lfs support for MSYS2 environment is configured, git client already installed.ssh-agent for git works out-of-box, add your keys to ConEmu/msys64/ConEmu/msys64/home/user/.ssh dirMSYS2 suggests what package to installnano as main editor, enables nano syntax highlightingConEmu/msys64/3rdpartyopswd command that wraps the op command. It takes a service name as an argument and copies the password for that service to the clipboard.TERM environment variable and sees if there is respective ncurses' terminfo with 256 colors available. The result is a multicolor terminal, if available.theme_title_use_abbreviated_path parameter from some oh-my-fish themes.vim's abbreviation expansion.poetry, virtualenv and conda) while traversing directories.node part of the ace command.curl, jq and an Anthropic API key.$RPROMPT.betterbrew.cd into $HOME.bash.alt-c (copy), alt-v (paste), alt-x (cut) keyboard shortcut to commands: copy-region-as-kill, yank and kill-region. Remaps the execute command to alt-shift-X.git rebasing.peco/percol/fzf wrapper plugin for ZSH.start, stop, up and down commands when it detects a docker-compose.yml or Vagrantfile in the current directory (e.g. your application). Just run up and get coding!apt package manager. Offers to install missing programs for you.apt command wrappers for users transitioning from those distributions to arch. Requires yay or paru for full functionality.pacman on Arch Linux.jq.artisan plugin for ZSH to help you to run artisan from anywhere in the project tree, with tab completion!git if not installed yet. Also, bypasses the shims if you're using the direnv plugin, as suggested by the plugin pro-tips.Ctrl+O to transform any text in your command line into optimized shell commands.cURL and jq.colorls.ls or color-ls if available on cd.ls when cding to a new directory..nvmrc or .npmrc.cd into a directory containing a .env file.stderr and asks a local Ollama model for a fix, shown as ghost-text you can accept with Tab. Silent on success.cd command that learns - easily navigate directories from the command line. Install autojump-zsh for best results.zle widget ("zsh plugin") that will automatically put quotes around arguments to certain commands.antigen, both of antigen and the bundles loaded in your configuration.git repositories in the $ZSH_CUSTOM directory.mfa_device in profile.aws command. Includes mfa and assume-role helpers.aws-upload.tmux.$AWS_PROFILE environment variable.awscli and a few utilities for managing AWS profiles and displaying them in your prompt.aws cli and jqssh into EC2 instances.fortune and cowsay being installed.bash does. It also enables bash completions.cd ../../...bchmod command (and an optional chmod replacement) that accepts symbolic and octal permission formats with input validation and colored output.jq and bitwarden.git repository.docker on macOS.git.git branches.brew link different versions of packages.optirun in the command line.git shortcuts.jq and yq.rm that adds trash/recycling and useful warnings.tolower and toupper to switch output case.ccusage CLI tool directly in your terminal prompt.cd to the git repository root directory.ls after cd.cd-ing into specified directories.cd to the current repository checkout's root directory.ssh to a server when you accidentally cd to it.pushd, popd and dirs equivalents.cd to add cd history, rapidily swich to already visited directories, can use locate, mlocate or plocate to rapidly cd to any directorycdr for ZSH.chruby modified to make it easy to switch between multiple Go versions..DS_Store and Thumbs.db files from cluttering your directories.git difftool on git merge-base target_branch base_branch and target_branch.caf alias, which runs caffeinate -dims. The extra flags keep everything awake: the system, the drive, and the display.cat and ls and provides a color library.man output.man pages by role with curated truecolor themes, OSC-8 links, and automatic light/dark detection.man pages.red foo just works.command-not-found package for ZSH to provide suggested packages to be installed if a command cannot be found.REPORTTIME builtin, but only outputs when user + system time >= REPORTTIME.conda and provides functions for detecting conda versions for use in themes.tmux.condaenv_prompt_info function which returns the current conda environment name.conf vim to edit your vim configuration files.ssh.cowsay every time you open a terminal.hterm-notify is installed).ffmpeg.cwebp tool in batch mode..zshrc. It allows you to perform the following actions on .zshrc from the command-line - enable and disable plugins add or remove snippets.zsh command until zsh has nothing else to do and is waiting for user input. Its intended purpose is staged zsh startup. It works similarly to Turbo mode in zinit.docker or git command you ran in a project folder weeks ago.$HOME/.deno on startup if deno is not already installed.$PATH automatically.$PATH (and includes aliases to automagically run them with sudo) when you log into a machine running dietpi.git..dirc when present in a directory you cd into.doas by pressing ESC twice.doas by pressing ESC twice.Docker aliases for everyday use.docker container status in your prompt.docker helper scripts...., ...., ....., etc., into cd commands to navigate parent directories.git..pyvenv when you cd into a directory.aria2c.dropbox-cli and dropbox-uploader commands.drush. Inspired by Artisan.:-prefixed prompts) out of your main ZSH history by routing them to a separate file, intercepting every write path including the agent's own history insertions. Also turns Ctrl+R into an fzf interface switchable between All, Human and AI views, merged chronologically.ssh login to the instances easily.ssh connection, or X frames opened on the same host.cd command by memorizing all directories visited by a user and use it for the pathname resolution.--context flag is passed to various Kubernetes commands like kubectl, cilium, stern, and more.pass and the macOS keychain..envrc file is found in a directory.git, gh, docker, and other CLI subcommands.eval "$(hub alias -s)", to help lower shell startup time by loading from cache instead of re-running every new shell session.vi commands to remotely access named registers of the vim and nvim editors, and system selection and clipboard.ls.ls.ls.ls with ogham/exa.ls with ogham/exa.ls and tree.ET_NOTIFY_COMMAND), which is executed asynchronously in the background.zsh aliases when you press space.zle widget that allows you to write custom expanders and select them with fzf.lynx to look up the current command line on explainshell.com.compinit, queueing up calls to compdef, and hooking the real compinit call to an event that runs at the end of your .zshrc. That way you get all the benefits of calling compinit early without any of the downsides.ls with eza-community/eza.ls.ls with eza-community/eza.ls and tree.F1 to F12 keys.zsh-users/zsh-syntax-highlighting – better response times, switchable highlight themes.find.firebase.json file (aka "firebase project").work, track wins for dopamine with win, stay oriented with dash. Includes smart dispatchers for git, R, Quarto, and Claude Code.flow command available inside every subdirectory of the TYPO3 Flow distribution.fnm.git which takes advantage of fuzzy finder fzf.git commit message generator.fzf and fd.z with fzf's fuzzy search!find and cat. Searches in the local tree of subdirectories for files.git worktrees with fzf integration.Ctrl+R with an fzf-driven history search that includes date/times.bash and zsh, using the fuzzy finder fzf.apt, brew & dnf.zstyle configuration option.alias, find, ls, man, printenv that are designed to enhance your command-line workflow by making them to default to filtering through fzf, allowing you to quickly find files, search & run commands from history, run scripts of many supported types, browse git commits, and more.chezmoi, docker, git, kubectl and pass.$PATH.date unix command) in your prompt..rs or Cargo.toml is present.ghq get / ghq clone fetches a repository, automatically clones its GitHub Wiki (when the wiki has pages) into a .wiki subdirectory of that repository.ghq, fzf, and git worktree to minimize context-switching cost in multi-repository development.git pull, git add, git commit and git push with one keystroke.git fork.git commands.git xyz commands to gxyz. Also aliases g to git.git features, designed especially for users who prefer aesthetically pleasing branch naming conventions. It visually formats the current git branch name or commit hash, considering customisable variables like hiding status, maximum branch length, prefix, and suffix trimming, with an option to display git status.git branches you can switch to without having to type long branch names.git branches.git branches that uses fzf to find all branches that are safe to delete.git commit messages (supports styles, icon themes, and interactive selection)git commit messages with emoji prefixes and consistent formatting.git completion to include in the remotes completion (e.g. from git clone) any URL in the clipboard.git helper scripts packaged as a plugin.git-flow commands.git that relies heavily on fzf.git bulk branch delete and create operations.git graph.git repo is dirty or not.git-lfs commands.git plugin.git commit identity, SSH key and gh CLI account together for multiple GitHub accounts.git integration that displays the current directory and git branch.git.git oh-my-zsh plugin.git repository.git user.email.fswatch to monitor repository files in real-time.git repository and/or that were merged in your remote origin git repository.git repository.git-squash-branch and git-remove-merged commands.git repository.git commands to make some common git usages more efficient.git repository.git branches with skimgit repositories and clean them up.jj) porcelain as you use git commands.git worktree operations for simplicity and productivity. Includes fzf tooling.git worktree management with bare repository support. This plugin provides convenient commands for working with git worktrees, making it easy to work on multiple branches simultaneously.git worktrees with ease. Streamline your workflow when working with multiple branches simultaneously.git worktrees more functional. Includes tab completions.git worktree workflow plugin.git plugin. Provides quite a few useful aliases and functions. The motivation to replace the default plugin stems from the fact that it comes with some inconsistencies that make a few popular commands rather unintuitive, so this plugin makes the aliases consistent.git clone a repository and cd into the resulting directory.cd to a git working directory after cloning it.gitfast plugin..gitignore files.git urls.$GOPATH similarly to Python's virtualenvwrapper.goenv..goenv files in the current directory and sets GOPRIVATE environment variables.gpg.grep command into awk command.grunt.gitgit using the tag name *release-YYYY-MM-DD-HH-MM- and headline Release YYYY-MM-DD HH:MM.git repository. This is a command-line shell plugin for undoing git add.gvm (Go version manager) plugin for ZSH.gvm (Groovy enVironment Manager)..envrc if it's found when changing to a new directory.tmux sessions, supervised by systemd (--user) on Linux or launchd on macOS, with one consistent set of verbs on both.--help.^G to quickly toggle the current shell history file location.PageUp key and uses dialog to open a popup menu with the history, so the user can interactively navigate through it and pick the history line to bring back to the prompt.zsh-syntax-highlighting, or they'll both break. You'll also need to bind keys to its functions, details are in the README.md.git private repository. Uses openssl to encrypt the history.git.~/.zsh_history. Useful right after running a command you don't want kept in your shell history (e.g. one containing a typo'd password or a temporary secret). Running histpop itself is also removed from history, so it leaves no trace./etc/hosts files during development.hub ci-status to your ZSH theme.python environments.git commands using fzf.vim mode for ZSH. Moves cursor with incremental search within current line.ping output.cd.tmux tab opened in iTerm2 will have the next colour from the default or specified palette.$PWD, this ZSH plugin saves your initial working directory in $IWD for easy returns to the starting point of your session.setjdk command so you can switch easily between different versions of the jdk.git, handling large files with Git LFS, improving diff outputs, and managing credentials and keys securely.sudo when accidentally open non-writable files.git status decorations.$KUBECONFIG selector for k9s.kubectl.node process families.kitty terminal emulator.git status and last command exit status decorators.kubectl more pleasant.kubectl that adds current context and namespace.kubecolor command.kubectl get events -wkubectl. Includes helper functions.~/.kube via the KUBECTL environment variable.ZSH_KUBECTL_CONTEXT, ZSH_KUBECTL_NAMESPACE,ZSH_KUBECTL_PROMPT and ZSH_KUBECTL_USER variables you can use to customize your prompt.kubectl.kubectl versions.kubens.php command when running artisan commands and ./sail or ./vendor/bin/sail when running sail commands.sail commands.git plugin for oh-my-zsh-compatible frameworks.curl and jq.ls.ls and tree commands with lsd.ls and tree commands with lsd.ls with lsd.lux command. Highly customizable: included items can be configured by defining variables. Highly extensible: items can be added by defining functions. Includes a macos_is_dark helper function to determine if the macOS dark mode is active for use in theming.magebox CLI.m2 function to run magento binary, adds tab completions....'==../..' etc.rclone locations.$PATH. Uses the shims strategy so that tools are available in non-interactive shells (e.g. Emacs exec-path-from-shell).nvm, nodenv, rbenv, rvm, chruby, pyenv, etc.mkcd command, the canonical mkdir && cd helper.cd into it afterward.mlir-opt and colorizing its output.vi mode.git add, git diff and git status.maven configurations.mycli with login path.mysql tables.mysql.htop-like kill, directory bookmarks browser, a multi-word incremental history searcher and more.nix-shell environment..nvmrc. Requires n.nvm to install new versions and modules for the current project.npm bin of your current directory to your $PATH.nvm completions and autoloading of nvm if present.nodenv in your working directory and loads it when found.nodenv and its completions into the shell.nodenv. Inspired by zsh-rbenv.node_modules directories from filling your iCloud storage by un-syncing the directory or can save even more space by removing all node_modules directories within the chosen root directory. This is particularly useful for cleaning up a project that has multiple node_modules treesnohup to the current command pressing Ctrl-H.npm aliases. Based on the Oh-My-Zsh npm plugin.n as npm aliases with noglob prefix and more. Based on the Oh-My-Zsh npm plugin.NVIM_APPNAME with full tab completion of available flags, available neovim applications, and neovim arguments/flags. Requires neovim v0.9+nvim distributinons such as Lazyvim, kickstart or a home made configuration.nvm use when a .nvmrc is detected.nvm use automatically whenever you enter a directory that contains an .nvmrc file with a string telling nvm which node to use.nvm oh-my-zsh plugin using zsh-defer to speed up shell startup.nvm for more than one binary/entrypoint, with the defaults being nvm, node and npm.nvm) and manages pnpm package manager versions (using corepack) when changing directories.nvm with extended helpers and improved workflow.nvm.tmux configurations.opgx command followed by the profile's name. The plugin also implements autocompletion for profile names.~/opt subpaths to your $PATH./dev/tty so attackers cannot embed the confirmation in the payload.$PATH quickly and easily. Doesn't touch your existing .zshrc, .zprofile, but adds on top of your existing environment instead.ctrl+R.uv Python virtual environments stored in ~/.local/share/py-venv/. Supports subcommands for listing, activating (shell and directory level), creating, deleting and explaining why an env is activated. Makes it easier to replace pyenv and poetry with uv.^G.pgcli and fzf for a seamless command-line experience..php-version file is found.: commands in your shell to pi -p calls and keeps a per-shell pi session file for continuity.pipenv project.apt, dnf, pacman, zypper, homebrew, and more), Docker container/volume management, and development environment enhancements. Simplifies system maintenance across multiple Linux distributions with intuitive commands. Extensible through a simple configuration system - see project README for details.pipenv completions.pipenv's $PATH and adds completions.$PATH and autocompletions.padd, p, and pls. Supports AES-256-CBC encrypted secret placeholders, history capture via paddh, tab completion, and export/import including direct import from a GitHub repository.git status in your prompt./sys/class/net/$interface/ to keep track of packet transmission rates. It stores the current rate to a file in the RAM backed filesystem where it can be easily accessed for display in a shell-prompt. Linux-only due to use of /sys.git status information that can be displayed in prompts.$HOME. Includes a lwd alias.printc call.ps grep hide its own process from the results of a ps aux | grep.ps, awk, lsof) with live watch mode, resource sorting, and tree-aware process killing.= key into a powerful, Python‑backed calculator in your ZSH shell.pyenv, and adds extra functionality.pyenv_prompt_info function. Also loads pyenv-virtualenv if available.pyenv in ZSH.eval "$(pyenv init -)" is executed the first time pyenv is called.venv with one command. Designed for use with dotpyvenv.vim-like macro registers to your ZSH shell.randeme_rm to never show that theme again.RANGER_LEVEL, displaying nothing when the environment variable is unset, something when it is equals to 1, and something else when it is greater than 1.rpi-temp alias.rbenv plugin from oh-my-zsh.rbenv plugin.rbenv environments.redis.conf configuration file. This can be used with the zdharma/zredis plugin to share variables between shells.Ctrl-R and ESC+/..zshrc.... to ../..require commandname and then (if brew is installed) automatically brew install commandname if it isn't already installed.man pages.package.json.$PATH.kubectl command.rm functionality so that rm will put files in your OS' trash instead of permanently deleting them..zshrc & shell startup with lazy-loading by only running setup commands (e.g. eval "$(rbenv init -)", etc) when you need them.docker with management commands rather than the notoriously confusing “random solo commands”. Requires GRC and jq.chroot name in your prompt.git add, git commit, and git push for much faster git workflow.git aliases and helper shell functions.fpath and $PATH.git, neovim, npm, pip extended functionality.zsh..shellcolor in the current directory.git users on the same machine this plugin will show which git user name is active in your prompt.$PATH line by line.SimpleHTTPServer and SimpleHTTPSServer.singularityenv_prompt_info function which returns the current singularity environment namels and git status after chpwd.Truncated — view the full README on GitHub.
(top 30 of 238)
Shell
100.0%