JuliaCon 2026

JETLS: Bringing Julia’s runtime into language-server analysis

At JuliaCon 2025, we introduced JETLS, built on byte-precise lowering and abstract interpretation. This year, we focus on the core design behind it: loading parts of user code to reuse Julia's macro handling and compiler type inference. We compare this runtime-integrated approach with the overhauled LanguageServer.jl/JuliaWorkspaces.jl stack and demo its progress on real-world code.


At JuliaCon 2025, we introduced JETLS.jl, then an early-alpha Julia language server built on JET.jl's abstract interpretation and JuliaLowering.jl's byte-precise, provenance-tracking lowering. One year later, this talk goes beyond a progress report to examine the core design that makes this compiler-grounded analysis possible.

JETLS selectively loads parts of the target program into its analysis process. This runtime integration enables JuliaLowering to execute the program’s actual macros while preserving byte-precise source provenance, and JET to reuse Julia’s compiler inference to derive type information for source-level developer tooling.

We compare this design in depth with the LanguageServer.jl/JuliaWorkspaces.jl stack, which has undergone a major overhaul over the past year. Rather than presenting JETLS simply as a replacement, we place the two approaches on a spectrum of runtime integration: JETLS aims to provide precise information about macro expansion and lowering, together with compiler-inferred types, while the largely static approach prioritizes responsiveness and safety and benefits from greater production maturity.

These architectural differences become concrete in a live demo using real-world code from CSV.jl and JuliaFormatter.jl. We show how JETLS's runtime-integrated design translates into practical editor features, most of which were either early prototypes at last year's talk or did not yet exist.

Finally, we summarize JETLS's current feature coverage, installation and environment isolation, and editor setup. We also briefly show how the same analysis is exposed through a CLI for CI and AI-agent workflows, showcasing agentic bugfixes drawn from a Julia Base audit with JETLS.
Time permitting, we share performance measurements before outlining future work.

The speaker's profile picture
Shuhei Kadowaki

SRE at JuliaHub, Inc. Working on the Julia compiler. Creator of JET.jl.

The speaker's profile picture
Sebastian Pfitzner

Sebastian is a software engineer at JuliaHub focusing on tooling around Julia, including the JuliaHub platform and the Julia extension for VS Code, as well as various other contributions to the Julia ecosystem.