JETLS

22 jul 2026

JET Language Server

This is a language server for Julia. I’m not 100% sure what a language server means, but it tells the editor how to do stuff like syntax highlighting, code formatting, definition lookup, linting, etc. Very helpful.

I am also using the Zed editor and fish shell.

The default Julia language server that comes with Zed has always given me trouble. I’m not sure if this is everyone’s experience. I’ve brought this upon myself by not using VS Code, so I’m not looking for any pity here. But it would be nice to be able to jump to a definition once in a while. Hence the switch to JETLS.

This was the process to set it up:

Steps

1. Install the JETLS executable.

Once installed, add the jetls binary to the path. The binary is at ~/.julia/jetls. Usually you’d do this with

$ export PATH=$PATH:~/.julia/bin/jetls

but in the fish shell I need to do

$ fish_add_path -U ~/.julia/bin/jetls

Then you can check that your shell can find it by running:

$ jetls --help

2. Install Rust using rustup

We don’t need to write Rust directly, but the Zed extension framework needs to be able to build Rust. It’s a one-line shell install; you can confirm you can run like this:

$ rustup --version

3. Follow the instructions to point Zed at JETLS

The instructions are on the README of aviatesk’s fork of zed-julia, in the avi/JETLS branch. The link in the header above will take you there. It boils down to:

3.1 Clone

$ git clone https://github.com/aviatesk/zed-julia.git
$ git checkout avi/JETLS

3.2 Add local extension to Zed

In Zed, run the zed: extensions command.

Or do cmd+X or ctrl+X.

Then click on Install Dev Extension button in the top right. Feed it the directory you’ve cloned zed-julia into (last step).

4. Settings

Play with the Zed settings to make sure the Julia LSP is enabled. There is plenty of configuration possible.

The first time JETLS sees a project it takes a while to index everything and figure out what’s going on. But then I find it pretty responsive to click around, go to definitions, etc. Even linking to external packages!