Minimalistic plugin manager for ZSH
2 months ago

Curtis Arthaud via public-inbox

2 months ago


Minimalistic plugin manager for ZSH.

It was developed as a drop-in replacement for zplug and Antigen. They both have serious problems and are not maintained anymore.


  • No crashes or double plugin loading when re-sourcing .zshrc
  • Unlike Antigen, Miniplug does not pollute your $PATH
  • Only bare minimum for managing plugins


  • ZSH
  • Git
  • awk (gawk)


To install Miniplug you need to download miniplug.zsh file and source it in your .zshrc:

curl \
  -sL --create-dirs \
  https://git.sr.ht/~yerinalexey/miniplug/blob/master/miniplug.zsh \
  -o $HOME/.local/share/miniplug.zsh

# Add to zshrc:
source "$HOME/.local/share/miniplug.zsh"

You can download this file anywhere, $HOME/.local/share/miniplug.zsh is just an example


After miniplug.zsh file is sourced, you'll get access to miniplug CLI utility. Define plugins using miniplug plugin <URL>. Or define a theme using miniplug theme <URL> (theme can be set only once)

<URL> can be URL to Git repo or Github's user/repo

After plugins are defined, you can download them using miniplug install and source them using miniplug load (should be added to .zshrc).

#Example .zshrc:

source "$HOME/.local/share/miniplug.zsh"

# Define a plugin
miniplug plugin 'zsh-users/zsh-syntax-highlighting'

# Define a theme
miniplug theme 'dracula/zsh'

# Source plugins
miniplug load

#Changing plugin folder

Plugins will be downloaded to $XDG_DATA_HOME/miniplug (or ~/.local/share/miniplug if not set) by default. To change that location, set MINIPLUG_HOME environment variable to a new path:

export MINIPLUG_HOME="$HOME/.config/zsh/plugins"

#Updating plugins

To update plugins you can run:

miniplug update

If you want to force plugin not to update, you can detach repo's HEAD by running this snippet in plugin folder ($MINIPLUG_HOME/user/repo):

git checkout "$(git log --format=%H | head -1)"

After that, plugin will be skipped when you run miniplug update


Apache 2.0