Fish Plugin

The fish plugin adds a beet fish command that creates a Fish shell tab-completion file named in ~/.config/fish/completions. This enables tab-completion of beet commands for the Fish shell.


Enable the fish plugin (see Using Plugins) on a system running the Fish shell.


Type beet fish to generate the completions file at: ~/.config/fish/completions/. If you later install or disable plugins, run beet fish again to update the completions based on the enabled plugins.

For users not accustomed to tab completion… After you type beet followed by a space in your shell prompt and then the TAB key, you should see a list of the beets commands (and their abbreviated versions) that can be invoked in your current environment. Similarly, typing beet -<TAB> will show you all the option flags available to you, which also applies to subcommands such as beet import -<TAB>. If you type beet ls followed by a space and then the and the TAB key, you will see a list of all the album/track fields that can be used in beets queries. For example, typing beet ls ge<TAB> will complete to genre: and leave you ready to type the rest of your query.


In addition to beets commands, plugin commands, and option flags, the generated completions also include by default all the album/track fields. If you only want the former and do not want the album/track fields included in the generated completions, use beet fish -f to only generate completions for beets/plugin commands and option flags.

If you want generated completions to also contain album/track field values for the items in your library, you can use the -e or --extravalues option. For example: beet fish -e genre or beet fish -e genre -e albumartist In the latter case, subsequently typing beet list genre: <TAB> will display a list of all the genres in your library and beet list albumartist: <TAB> will show a list of the album artists in your library. Keep in mind that all of these values will be put into the generated completions file, so use this option with care when specified fields contain a large number of values. Libraries with, for example, very large numbers of genres/artists may result in higher memory utilization, completion latency, et cetera. This option is not meant to replace database queries altogether.