FISH\_DELTA(1) fish-shell FISH\_DELTA(1)

# [NAME](#NAME)

fish\_delta - compare functions and completions to the default

# [SYNOPSIS](#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](#DESCRIPTION)

The **fish\_delta** function tells you, at a glance, which of your functions and completions differ from the set that fish ships.

It does this by going through the relevant variables (**fish\_function\_path** &lt;#envvar-fish\_function\_path&gt; for functions and **fish\_complete\_path** &lt;#envvar-fish\_complete\_path&gt; 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.

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

# [OPTIONS](#OPTIONS)

The following options are available:

[**-f** or **--no-functions**](#f)

Skips checking functions

[**-c** or **--no-completions**](#c)

Skips checking completions

[**-C** or **--no-config**](#C)

Skips checking configuration files like config.fish or snippets in the conf.d directories.

[**-d** or **--no-diff**](#d)

Removes the diff display (this happens automatically if **diff** can't be found)

[**-n** or **--new**](#n)

Also prints new files (i.e. those that can't be found in fish's default directories).

[**-Vvalue** or **--vendor=value**](#Vvalue)

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**](#h)

Prints **fish\_delta**'s help (this).

# [EXAMPLE](#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.

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".

# [Copyright](#Copyright)

fish-shell developers

September 9, 2026 4.9

---

Document: fish_delta(1) from fish 4.9.3-r0 (Chainguard OS)
Source: https://github.com/fish-shell/fish-shell
