Installation

fish-lsp requires Node.js >= 20 (the project is developed against node@22.14.0). Some language clients — e.g. the VSCode / VSCodium extension — bundle the server for you, so manual installation isn't always required.

For everyone else, pick one of the methods below.

Package Manager

Pick your package manager. Stability across package managers can vary — if one gives you trouble, try another method.

# install globally
npm install -g fish-lsp
# verify
fish-lsp info

Note

Package availability and freshness vary by ecosystem. The npm registry always has the latest release.

Standalone Binary

Download the pre-built standalone binary directly from the GitHub releases — no Node.js or package manager required.

# Download the latest standalone binary
curl -L https://github.com/ndonfris/fish-lsp/releases/latest/download/fish-lsp.standalone \
  -o ~/.local/bin/fish-lsp

# Make it executable
chmod +x ~/.local/bin/fish-lsp

Important

Ensure ~/.local/bin is in your $PATH so the fish-lsp command is found.

Build from Source

Warning

Recommended toolchain: yarn@1.22.22, node@22.14.0, fish@4.0.8.

git clone https://github.com/ndonfris/fish-lsp && cd fish-lsp
yarn install && yarn build   # links ./dist/fish-lsp into your `yarn global bin` $PATH

Need more detail? See the full building from source guide →

Shell Completions

Generate fish completions for the fish-lsp command itself:

fish-lsp complete > ~/.config/fish/completions/fish-lsp.fish

Note

Completions are needed for package-manager installs. Source builds write them automatically during yarn build.

Verify the Installation

# show the help output
fish-lsp --help

# show build version, paths, and health
fish-lsp info

# verify the server indexes & parses your fish files correctly during startup
fish-lsp info --time-only

If fish-lsp isn't found afterwards, confirm the install location is on your $PATH (fish-lsp info --bin prints the resolved binary path).

For more info, check out debugging

Next Steps

After installing, configure your editor to launch fish-lsp start for fish files, and optionally tune the server settings.