The minuscule zsh package manager. No frills, no bloat, just 4 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.
Requires git.
curl -sL --create-dirs https://raw.githubusercontent.com/thornjad/zpico/main/zpico.zsh -o $HOME/.local/lib/zpico/zpico.zsh
Then add source $HOME/.local/lib/zpico/zpico.zsh to your .zshrc and reload your shell.
This is the recommended installation path, but you can put it wherever you want.
zpico add <package-repo> [[source:<source>] [branch:<branch>] [use:<glob>]]
This command downloads and initializes a given package. If the package has already been download, it initializes only.
The required argument package-repo is the package's repo in <group>/<project> format (supports Gitlab subgroups with source:gitlab).
The optional argument source: determines the source domain to get the package from. Currently supports github, gitlab, framagit and the special local (see Local packages below). If omitted, defaults to source:github.
The optional argument branch specifies the Git branch to use. If omitted, uses the default branch for the package (typically master, main or trunk).
The optional argument use specifies the file (or file pattern) to use.
Zpico can also load packages from arbitrary URLs.
zpico add <package-url> [branch:<branch>]
The optional argument branch works the same as specified above.
zpico add <package-path> source:local [branch:<branch>]
The optional argument branch works the same as specified above.
Precede all commands with zpico.
| command | description |
|---|---|
| update | update all installed packages |
| selfupdate | update Zpico. Requires curl. Alternatively, reinstall Zpico to update |
| clean | remove all packages currently installed |
| help | print help text |
| version | print version info |
The default package installation path is ~/.local/share/zpico/. Customize this by setting ZP_PLUGIN_HOME prior to loading Zpico in your ~/.zshrc.
# ~/.zshrc
source ~/.local/lib/zpico/zpico.zsh
# Packages
zpico add nocttuam/autodotenv
zpico add zdharma/zsh-diff-so-fancy
zpico add thornjad/vero source:gitlab
rm -rf ~/.local/lib/zpico ~/.local/share/zpico
Replace paths with the correct ones if you've customized them, then remove any Zpico-related commands from your ~/.zshrc.
Copyright (c) 2021-2023 Jade Michael Thornton
See LICENSE for terms (it's the ISC license).