Skip to content


Repository files navigation



Build Coverage Status

An Erlang server implementing Microsoft's Language Server Protocol 3.17.


Minimum Requirements

Supported OTP versions

  • 24, 25, 26


Compile the project:


To install the produced erlang_ls escript in /usr/local/bin:

make install

To install to a different directory set the PREFIX environment variable:

PREFIX=/path/to/directory make install

Command-line Arguments

These are the command-line arguments that can be provided to the erlang_ls escript:

Usage: Erlang LS [-v] [-t [<transport>]] [-p [<port>]] [-d [<log_dir>]]
                 [-l [<log_level>]]

  -v, --version    Print the current version of Erlang LS
  -t, --transport  Specifies the transport the server will use for the
                   connection with the client, either "tcp" or "stdio".
                   [default: tcp]
  -p, --port       Used when the transport is tcp. [default: 10000]
  -d, --log-dir    Directory where logs will be written.
                   [default: filename:basedir(user_log, "erlang_ls")]
  -l, --log-level  The log level that should be used. [default: info]


It is possible to customize the behaviour of the erlang_ls server via a configuration file, named erlang_ls.config or erlang_ls.yaml. That file should be placed in the root directory of a given project to store the configuration for that project. It is also possible to store a system-wide default configuration, which is shared across multiple projects.

Please refer to the configuration section of the documentation to learn how to configure Erlang LS for a specific project.

Getting in Touch

If you have any questions about the project, feel free to open a new issue. You can also join the #erlang-ls channel in the Erlanger Slack if you would like to get involved or if you prefer a more informal mean of communication.

All contributions are welcome, be them in the form of a bug report, a question, feedback, or code.

I occasionally blog about the project on Medium.



The erlang_ls project is licensed under the Apache License 2.0. Please refer to the LICENSE file for details.