FISH_DELTA(1)

πŸ’… FISH_DELTA πŸ’…

ok so this is the fish_delta page from the fish-shell manual, and bestie, it's literally about to become your new fave little detective tool πŸ•΅οΈβ™€οΈβœ¨


🌸 NAME 🌸

fish_delta β€” compare functions and completions to the default 🫢


✨ SYNOPSIS ✨

fish_delta name ...
fish_delta [-f | --no-functions] [-c | --no-completions] [-C | --no-config] [-d | --no-diff] [-n | --new] [-V | --vendor=]
fish_delta [-h | --help]

πŸ¦‹ DESCRIPTION πŸ¦‹

The fish_delta function tells you, at a glance, which of your functions and completions differ from the set that fish ships. Like, at a glance, no cap πŸ‘€

It does this by going through the relevant variables (fish_function_path for functions and fish_complete_path for completions) and comparing the files against fish's default directories.

If any names are given, it will only compare files by those names (plus a .fish extension).

By default, it will also use diff to display the difference between the files. If diff is unavailable, it will skip it, but in that case it also cannot figure out if the files really differ. lowkey tragic but okay 😭

The exit status is 1 if there was a difference and 2 for other errors, otherwise 0.


πŸŽ€ OPTIONS πŸŽ€

The following options are available:

  • -f or --no-functions β€” skips checking functions, bye πŸ‘‹
  • -c or --no-completions β€” skips checking completions
  • -C or --no-config β€” skips checking configuration files like config.fish or snippets in the conf.d directories.
  • -d or --no-diff β€” removes the diff display (this happens automatically if diff can't be found)
  • -n or --new β€” also prints new files (i.e. those that can't be found in fish's default directories). the little newcomers get their moment πŸ’–
  • -Vvalue or --vendor=value β€” determines how the vendor directories are counted. Valid values are:
    • "default" β€” counts vendor files as belonging to the defaults. Any changes in other directories will be counted as changes over them. This is the default. πŸ‘‘
    • "user" β€” counts vendor files as belonging to the user files. Any changes in them will be counted as new or changed files.
    • "ignore" β€” ignores vendor directories. Files of the same name will be counted as "new" if no file of the same name in fish's default directories exists.
  • -h or --help β€” prints fish_delta's help (this). hi bestie 🫢

🌈 EXAMPLE 🌈

Running just:

fish_delta

will give you a list of all your changed functions and completions, including diffs (if you have the diff command).

It might look like this:

> fish_delta
New: /home/alfa/.config/fish/functions/battery.fish
Changed: /home/alfa/.config/fish/test/completions/cargo.fish
--- /home/alfa/.config/fish/test/completions/cargo.fish 2022-09-02 12:57:55.579229959 +0200
+++ /usr/share/fish/completions/cargo.fish      2022-09-25 17:51:53.000000000 +0200
# the output of `diff` follows

The options are there to select which parts of the output you want. With --no-completions you can compare just functions, and with --no-diff you can turn off the diff display. pick your fighter fr fr βš”οΈ

To only compare your fish_git_prompt, you might use:

fish_delta --no-completions fish_git_prompt

which will only compare files called "fish_git_prompt.fish". so targeted, so iconic ✨


fish-shell developers


ok that's the whole page, you ate that πŸ’… no crumbs.

version 4.9 πŸ¦‹βœ¨ and it's dated Sep 08, 2026 β€” mwah, go compare some functions bestie πŸ’–πŸŽ€

πŸ“¦ where this page comes from
  • arch rolling: fish 4.9.3-1 Β· GPL-2.0-only AND BSD-3-Clause AND ISC AND MIT AND PSF-2.0
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms