OS Manuals

/usr/bin/clangd

Clang 22 extras

From clang-22-extras 22.1.8-r7 (os), captured 2026-11-05 by running clangd --help (exit 0). permalink

OVERVIEW: clangd is a language server that provides IDE-like features to editors.

It should be used via an editor plugin rather than invoked directly. For more information, see:
	https://clangd.llvm.org/
	https://microsoft.github.io/language-server-protocol/

clangd accepts flags on the commandline, and in the CLANGD_FLAGS environment variable.

USAGE: clangd [options]

OPTIONS:

Generic Options:

  --help                               - Display available options (--help-hidden for more)
  --help-list                          - Display list of available options (--help-list-hidden for more)
  --version                            - Display the version of this program

clangd compilation flags options:

  --compile-commands-dir=<string>      - Specify a path to look for compile_commands.json. If path is invalid, clangd will look in the current directory and parent paths of each source file
  --query-driver=<string>              - Comma separated list of globs for white-listing gcc-compatible drivers that are safe to execute. Drivers matching any of these globs will be used to extract system includes. e.g. /usr/bin/**/clang-*,/path/to/repo/**/g++-*

clangd feature options:

  --all-scopes-completion              - If set to true, code completion will include index symbols that are not defined in the scopes (e.g. namespaces) visible from the code completion point. Such completions can insert scope qualifiers
  --background-index                   - Index project code in the background and persist index on disk.
  --background-index-priority=<value>  - Thread priority for building the background index. The effect of this flag is OS-specific.
    =background                        -   Minimum priority, runs on idle CPUs. May leave 'performance' cores unused.
    =low                               -   Reduced priority compared to interactive work.
    =normal                            -   Same priority as other clangd work.
  --clang-tidy                         - Enable clang-tidy diagnostics
  --completion-style=<value>           - Granularity of code completion suggestions
    =detailed                          -   One completion item for each semantically distinct completion, with full type information
    =bundled                           -   Similar completion items (e.g. function overloads) are combined. Type information shown where possible
  --experimental-modules-support       - Experimental support for standard c++ modules
  --fallback-style=<string>            - clang-format style to apply by default when no .clang-format file is found
  --function-arg-placeholders=<string> - When disabled (0), completions contain only parentheses for function calls. When enabled (1), completions also contain placeholders for method parameters
  --header-insertion=<value>           - Add #include directives when accepting code completions
    =iwyu                              -   Include what you use. Insert the owning header for top-level symbols, unless the header is already directly included or the symbol is forward-declared
    =never                             -   Never insert #include directives as part of code completion
  --header-insertion-decorators        - Prepend a circular dot or space before the completion label, depending on whether an include line will be inserted or not
  --import-insertions                  - If header insertion is enabled, add #import directives when accepting code completions or fixing includes in Objective-C code
  --limit-references=<int>             - Limit the number of references returned by clangd. 0 means no limit (default=1000)
  --limit-results=<int>                - Limit the number of results returned by clangd. 0 means no limit (default=100)
  --rename-file-limit=<int>            - Limit the number of files to be affected by symbol renaming. 0 means no limit (default=50)

clangd miscellaneous options:

  --check[=<string>]                     - Parse one file in isolation instead of acting as a language server. Useful to investigate/reproduce crashes or configuration problems. With --check=<filename>, attempts to parse a particular file.
  --enable-config                      - Read user and project configuration from YAML files.
                                         Project config is from a .clangd file in the project directory.
                                         User config is from clangd/config.yaml in the following directories:
                                         	Windows: %USERPROFILE%\AppData\Local
                                         	Mac OS: ~/Library/Preferences/
                                         	Others: $XDG_CONFIG_HOME, usually ~/.config
                                         Configuration is documented at https://clangd.llvm.org/config.html
  -j <uint>                            - Number of async workers used by clangd. Background index also uses this many workers.
  --malloc-trim                        - Release memory periodically via malloc_trim(3).
  --pch-storage=<value>                - Storing PCHs in memory increases memory usages, but may improve performance
    =disk                              -   store PCHs on disk
    =memory                            -   store PCHs in memory

clangd protocol and logging options:

  --log=<value>                        - Verbosity of log messages written to stderr
    =error                             -   Error messages only
    =info                              -   High level execution tracing
    =verbose                           -   Low level details
  --offset-encoding=<value>            - Force the offsetEncoding used for character positions. This bypasses negotiation via client capabilities
    =utf-8                             -   Offsets are in UTF-8 bytes
    =utf-16                            -   Offsets are in UTF-16 code units
    =utf-32                            -   Offsets are in unicode codepoints
  --path-mappings=<string>             - Translates between client paths (as seen by a remote editor) and server paths (where clangd sees files on disk). Comma separated list of '<client_path>=<server_path>' pairs, the first entry matching a given path is used. e.g. /home/project/incl=/opt/include,/home/project=/workarea/project
  --pretty                             - Pretty-print JSON output
Options (27)
OptionDescriptionSource
--help- Display available options (--help-hidden for more)help
--help-list- Display list of available options (--help-list-hidden for more)help
--version- Display the version of this programhelp
--compile-commands-dir string- Specify a path to look for compile_commands.json.help
--query-driver string- Comma separated list of globs for white-listing gcc-compatible drivers that are safe to execute.help
--all-scopes-completion- If set to true, code completion will include index symbols that are not defined in the scopes (e.g. namespaces) visible from the code completion point.help
--background-index- Index project code in the background and persist index on disk.help
--background-index-priority value- Thread priority for building the background index.help
--clang-tidy- Enable clang-tidy diagnosticshelp
--completion-style value- Granularity of code completion suggestions =detailed - One completion item for each semantically distinct completion, with full type information =bundled - Similar completion items (e.g. function…help
--experimental-modules-support- Experimental support for standard c++ moduleshelp
--fallback-style string- clang-format style to apply by default when no .clang-format file is foundhelp
--header-insertion value- Add #include directives when accepting code completions =iwyu - Include what you use.help
--header-insertion-decorators- Prepend a circular dot or space before the completion label, depending on whether an include line will be inserted or nothelp
--import-insertions- If header insertion is enabled, add #import directives when accepting code completions or fixing includes in Objective-C codehelp
--limit-references int- Limit the number of references returned by clangd.help
--limit-results int- Limit the number of results returned by clangd.help
--rename-file-limit int- Limit the number of files to be affected by symbol renaming.help
--check string- Parse one file in isolation instead of acting as a language server.help
--enable-config- Read user and project configuration from YAML files.help
-j uint- Number of async workers used by clangd.help
--malloc-trim- Release memory periodically via malloc_trim(3).help
--pch-storage value- Storing PCHs in memory increases memory usages, but may improve performance =disk - store PCHs on disk =memory - store PCHs in memoryhelp
--log value- Verbosity of log messages written to stderr =error - Error messages only =info - High level execution tracing =verbose - Low level detailshelp
--offset-encoding value- Force the offsetEncoding used for character positions.help
--path-mappings string- Translates between client paths (as seen by a remote editor) and server paths (where clangd sees files on disk).help
--pretty- Pretty-print JSON outputhelp

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.