FISH-LSP(1)
π NAME π
okay bestie, meet fish-lsp(1) β A language server for the fish shell ππ This is the manual for fish-lsp, and it's giving βyour fish scripts are about to get main character energyβ β¨
πΈ SYNOPSIS πΈ
fish-lsp [OPTIONS]
fish-lsp [SUBCOMMAND] [OPTIONS]
π¦ DESCRIPTION π¦
fish-lsp is a language server for the fish shell. It brings IDE-like features to fish shell scripts, like syntax checking, linting, and auto-completion β yes bestie, all the good stuff π
It requires a language client that supports the Language Server Protocol (LSP). Some common language clients include: the builtin API for nvim (v0.9+), lsp-mode for emacs, or the fish-lsp extension for VSCode π«Ά
The documentation below shows usage of the fish-lsp command, including its subcommands and options. Periodt.
bestie, this is not a standalone editor vibe β it needs an LSP client to actually do its thing. The manual said it, so I'm saying it too π
β¨ OPTIONS β¨
-v,--versionβ Show version information and exit. π-h,--helpβ Show help message and exit. π«Ά--help-allβ Show all the help information β¨--help-shortβ Show shortened help message πΈ--help-manβ Show manpage output π
π SUBCOMMANDS π
π start
start the language server β the main event, the moment, the slay π
--enableβ enable the language server features β¨--disableβ disable the language server features π--dumpβ dump thejsonoutput of the language server features enabled after startup π--stdioβ use stdin/stdout for communication (default) π«Ά--node-ipcβ use node IPC for communication π--socket <port>β use TCP socket for communication π--memory-limit <mb>β set memory usage limit in MB π§--max-files <number>β override the maximum number of files to analyze π--webβ start server in web mode used forhttps://fish-lsp.dev/playgroundπ
π env
show the environment variables available to the lsp π
-c,--createβ create the environment variable β¨-s,--showβ show the environment variables π--show-defaultβ show the default values forfish-lspenv variables π--only <VAR>β only include the specified environment variables in the output π―--no-globalβ don't use global scope when generating environment variables π--no-localβ don't use local scope when generating environment variables π--no-exportβ don't use export flag when generating environment variables π«--no-commentsβ skip outputting comments π¬--confdβ output for redirecting toconf.d/fish-lsp.fishπ--jsonβ outputfish_lsp_*initialization variables as JSON object (for vscodesettings.json) π§Ύ
π§ info
show the build info of fish-lsp π§
--binβ show the path of thefish-lspexecutable π οΈ--pathβ show the path of the entirefish-lspinstallation π¦--build-timeβ show the path of the entirefish-lsprepo π°οΈ--build-typeβ show the build type of the command π·οΈ-v,--versionβ show the lsp version π--lsp-versionβ show thevscode-languageserverversion π§©--capabilitiesβ show the lsp capabilities β¨--man-fileβ show the man file path π--log-fileβ show the log file path πͺ΅--showβ show the man/log file contents (needs to be paired with--log-fileor--man-file) π--shortβ display small amount of info (alias for--version--build-type--build-time--lsp-version) π--jsonβ display the info as JSON (e.g.,fish-lsp info --short --json) π§Ύ--extraβ show debugging server info (capabilities, paths, version, etc.) π--verboseβ show debugging server info (capabilities, paths, version, etc.) π£οΈ--check-healthβ run diagnostics and report health status π©Ί--health-checkβ run diagnostics and report health status π--time-startupβ time the startup of thefish-lspexecutable β±οΈ--time-onlyβ show brief summary of the startup timing π°οΈ--use-workspace <PATH>β use the workspace at the specified directory path whenfish-lsp info --time-startupis used π--no-warningβ disable message in thefish-lsp info --time-startupoutput π«--show-filesβ show the files that were indexed during startup whenfish-lsp info --time-startupis used π--dump-symbol-tree <FILE>β show thefish-lspdefinition symbol tree for the specified file π³--dump-parse-tree <FILE>β show the tree-sitter AST for the specified file π²--dump-semantic-tokens <FILE>β show the semantic-tokens for the specified file π¨--no-colorβ disable color output from--dump-*output π--no-iconsβ disable icon usage in output fromfish-lsp info --dump-symbol-treeπ«--source-mapsβ show the source-maps πΊοΈ--urlβ used with--source-maps, show the download url of the external source map for this version π--checkβ used in combination with--source-maps, verifies source-maps are working by throwing an error π--statusβ used in combination with--source-maps, shows status of source-maps loading π
π¦ url
show a helpful url related to the fish-lsp π¦
--repo,--gitβ show the github repo π--npmβ show the npm package url π¦--homepageβ show the homepage π--contributionsβ show the contributions url π€--wikiβ show the github wiki π--issues,--reportβ show the issues page π--discussionsβ show the discussions page π¬--clients-repoβ show the clients configuration repo π§©--sourcesβ show a list of helpful sources π
π complete
Provide completions for the fish-lsp π
--namesβ show the feature names of the completions π·οΈ--togglesβ show the feature names of the completions ποΈ--fishβ show fish script π--featuresβ show features β¨--env-variablesβ show env variable completions π--env-variable-namesβ show env variable names π·οΈ--names-with-summaryβ show the names with the summary for the completions π--abbreviationsβ show the 'fish-lsp' subcommand abbreviations π
π EXAMPLES π
- Start the
fish-lsplanguage server, with the default configuration:
>_ fish-lsp start
- Generate the completions for the
fish-lsplanguage server binary:
>_ fish-lsp complete > ~/.config/fish/completions/fish-lsp.fish
- Debug the
fish-lsplanguage server by dumping the enabled features after startup:
>_ fish-lsp start --dump
- Show information about the
fish-lsplanguage server:
>_ fish-lsp info
- Show all the available information about the
fish-lsplanguage server:
>_ fish-lsp info --verbose
- Show startup timing information for the
fish-lsplanguage server:
>_ fish-lsp info --time-startup
- Show startup timing information for the
fish-lsplanguage server for a specific workspace:
>_ fish-lsp info --time-startup --use-workspace ~/.config/fish --no-warning
- Preform a health check on the
fish-lsplanguage server:
>_ fish-lsp info --check-health
- Show the tree-sitter-fish parse tree for the input:
>_ cat ~/.config/fish/config.fish | fish-lsp info --dump-parse-tree
- Show the definition symbol tree for a specific file:
>_ fish-lsp info --dump-symbol-tree ~/.config/fish/config.fish
- Show the semantic tokens for a specific file (read from stdin):
>_ cat $__fish_data_dir/config.fish | fish-lsp info --dump-semantic-tokens
- Show the environment variables available to the
fish-lsplanguage server:
>_ fish-lsp env --show
- Show the default values for specific environment variables used by the
fish-lsplanguage server:
>_ fish-lsp env --show-default --only fish_lsp_all_indexed_paths,fish_lsp_max_background_files --no-comments
- Get sources related to the
fish-lsplanguage server's development:
>_ fish-lsp url --sources
π«Ά SEE ALSO π«Ά
- website:
https://fish-lsp.devπ - repo:
https://github.com/ndonfris/fish-lspπ - fish website:
https://fishshell.comπ
π AUTHOR π
- Nick Donfris π
That's the tea π: the source/manual tag is FISH-LSP(1), version 1.1.5, dated October 2026. Now go be iconic with your fish scripts, bestie π
πβ¨
π¦ where this page comes from
- nixpkgs unstable: fish-lsp 1.1.5
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms