IntelliJ Gleam

June 16, 2026 · View on GitHub

Build Version Downloads

Gleam language support for JetBrains IDEs.

Provides syntax highlighting, plus code completion, navigation, hover, diagnostics, and formatting through the Gleam language server. Includes run/test configurations for gleam run and gleam test.

Installation

  • Using the IDE built-in plugin system:

    Settings/Preferences > Plugins > Marketplace > Search for " intellij-gleam" > Install

  • Using JetBrains Marketplace:

    Go to JetBrains Marketplace and install it by clicking the Install to ... button in case your IDE is running.

    You can also download the latest release from JetBrains Marketplace and install it manually using Settings/Preferences > Plugins > ⚙️ > Install plugin from disk...

  • Manually:

    Download the latest release and install it manually using Settings/Preferences > Plugins > ⚙️ > Install plugin from disk...

Requirements

  • A Gleam install for the language server and the gleam CLI.
  • Erlang/OTP to run or test code on the Erlang target (the default).
  • A JavaScript runtime (Node, Deno, or Bun) only if you build for the JavaScript target.

Toolchain setup

Editor features (highlighting, completion, navigation) work as soon as the plugin finds gleam. Run and test configurations also need to find Erlang.

The plugin auto-detects these from your PATH, from asdf, and from the usual install locations. To check or override what it found, open Settings > Languages & Frameworks > Gleam:

  • Gleam executable path: the gleam binary.
  • Erlang path: your Erlang/OTP install. See the note below.
  • JavaScript runtime path: the node/deno/bun binary. Leave empty to use PATH.

Settings are global by default. To use a different toolchain for one project, open Project Settings under the same page and tick Override global toolchain for this project.

Running and testing

  • Right-click a .gleam file (or use the gutter icon next to a pub fn main) to run it, or run the whole suite with gleam test.
  • Each configuration has a target (Default / Erlang / JavaScript). Default lets gleam.toml decide. Pick Erlang or JavaScript to force one and validate only that toolchain.
  • gleam test output is a plain console. gleeunit prints passing tests as bare dots and has no verbose mode, so there's no green/red test tree. Failures are linkified back to the test function.

Troubleshooting

"Erlang SDK path is invalid: ... (expected a directory containing bin, lib, and releases)"

Run/test on the Erlang target needs the OTP install directory, the one containing bin/, lib/, and releases/, not a wrapper or shim. Pointing the Erlang path at a shim (an asdf ~/.asdf/shims/erl, or a symlink in /usr/local/bin) fails this check even though erl runs fine in a terminal. Set it to the real install instead, for example:

  • asdf: ~/.asdf/installs/erlang/<version>
  • Homebrew: $(brew --prefix erlang)/lib/erlang
  • Linux packages: /usr/lib/erlang

You can point the field at the install root, its bin/ directory, or the erl binary inside that bin/; all three resolve to the same root. The field also accepts a value picked from the detection dropdown.