gitmyhub

fisher

Shell ★ 9.3k updated 4mo ago

A plugin manager for Fish

Fisher is a fast, zero-dependency plugin manager for the Fish shell that installs, updates, and removes plugins from GitHub or local folders with a single command and tracks your setup in a file you can share.

Fish Shellsetup: easycomplexity 2/5

Fisher is a plugin manager for Fish, a command-line shell for Linux and macOS. Fish has a friendly interface with features like tab completion and syntax highlighting, and Fisher lets you add third-party plugins to it from the command line. You can install, update, and remove plugins with short commands, and Fisher records what you have installed so you can reproduce the same setup on another machine.

Plugins are installed from GitHub by default: you give Fisher the username and repository name, and it downloads and sets up the plugin automatically. You can also install from GitLab, from a specific version tag or branch, or from a local folder on your computer. Downloads happen concurrently, so installing multiple plugins at once is fast. Fisher itself is written entirely in Fish, so it has no external dependencies.

When you install or remove a plugin, Fisher updates a file called fish_plugins in your Fish configuration folder. That file lists everything installed, one entry per line. If you add that file to a version control system or share it between computers, running a single command brings your Fish setup back to the same state. You can also edit the file manually and run an update command to apply the changes.

Creating your own plugin is straightforward: you put Fish script files in standard subdirectories for functions, configuration snippets, and completions. Themes follow the same pattern with an added themes folder. Plugins can respond to install, update, and uninstall events so they can set up or clean up their own resources.

Fisher has no required configuration and no impact on how fast your shell starts. The project began in 2016 and is licensed under MIT.

Where it fits