A lockfile-backed plugin manager for fish.
pez installs fish plugins from Git repositories or local paths, copies their
fish assets into the standard config directories, and records the exact
installed state in pez-lock.toml.
Status: experimental. Back up your fish config before migrating, and verify the
result with pez doctor before removing another plugin manager.
- Lockfile state for installed commits and copied files
- GitHub shorthand, host-prefixed repos, full Git URLs, and local plugin paths
doctorchecks for missing files, duplicate destinations, and theme assetsdoctor,files,list --outdated,upgrade, andprunecommands for routine maintenance- A guided migration path from fisher
Use a prebuilt binary from GitHub Releases when one is available.
With Cargo:
cargo install pezFrom this checkout:
cargo install --path .With Nix flakes:
nix run github:tetzng/pez -- --versionMore options: docs/install.md
Create the config file:
pez initAdd a plugin to pez.toml:
[[plugins]]
repo = "owner/repo"Install and inspect:
pez install
pez list --format table
pez doctorInstall a single plugin directly:
pez install owner/repo
pez install gitlab.com/owner/repo@branch:main
pez install ./local-pluginEnable hooks in the current shell when plugins rely on conf.d events:
pez activate fish | sourcePersist that activation from ~/.config/fish/config.fish inside an
interactive-shell guard.
Use the low-risk path:
pez activate fish | source
pez migrate
pez install
pez list --format table
pez doctorOnly remove fisher after the migrated setup looks correct.
Details: docs/migrate-from-fisher.md
- Getting started
- Command reference
- Configuration and lockfile
- Install and build
- Migrate from fisher
- FAQ
- Architecture
pez installs code from third-party repositories into your fish configuration.
It does not verify signatures or sandbox plugin code. Install plugins you trust,
review migration changes before removing fisher, and keep pez doctor in your
verification flow.