# You should try jetls, it is awesome!

**URL:** <https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844>\
**Category:** Tooling\
**Tags:** emacs, jetls\
**Created:** [February 25, 2026, 8:03pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844 "2026-02-25T20:03:48Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![dmolina](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmolina/32/5246_2.png) [@dmolina](https://discourse.julialang.org/u/dmolina)\
**Post date:** [February 25, 2026, 8:03pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/1 "2026-02-25T20:03:49Z")

</div>

I write only to suggest to use jetls: [GitHub - aviatesk/JETLS.jl: A new language server for Julia, enabling modern, compiler-powered tooling. · GitHub](https://github.com/aviatesk/JETLS.jl)

It is still a not complete project, but it is very useful for now. And it is working nicely in Emacs with eglot (I guess with lsp will be working also).  
Previously, I tried LanguageServer, but it never working for me.

I use it with the following configuration, and it very operative and comfortable to use.

```elisp
;; For julia
(with-eval-after-load 'eglot
  (add-to-list 'eglot-server-programs
               '(((julia-mode :language-id "julia")
                  (julia-ts-mode :language-id "julia"))
                 "jetls"
                 "--threads=auto"
                 "--"
                 "--socket"
                 :autoport)))

```

You can use several options to see the errors:

1. I like sideline to see the error on the right:

```julia-auto
;; For using sideline
(use-package sideline-flymake
  :ensure t
  :hook (flymake-mode . sideline-mode)
  :init
  (setq sideline-flymake-display-mode 'point) ; 'point to show errors only on point
					; 'line to show errors on the current line
  (setq sideline-backends-right '(sideline-flymake)))

```

In that case, you can see with the line the error

 ![jetls1](https://global.discourse-cdn.com/julialang/original/3X/1/9/19602d75d6ab48e688d2b492837b50ca6df22813.png)

but you can use also use flyover [GitHub - konrad1977/flyover: A beautiful inline overlay for Emacs (Flycheck | Flymake) · GitHub](https://github.com/konrad1977/flyover),

and get all errors more easily:

 ![jetls2](https://global.discourse-cdn.com/julialang/original/3X/c/7/c733772150399dec48c630692ecda405b584b6e2.png)

As you can see, it was an error in the parameter (I made that for showing the diagnostic format, my code is perfect 🙂 ).

I am now configuring debugging with dap-mode, and it is also very promising.

It is great to see how the tools are improving, and the LSP improvement is very useful for all IDEs (including Emacs).

---

<div class="post-metadata">

**Author:** ![tecosaur](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tecosaur/32/23206_2.png) [@tecosaur](https://discourse.julialang.org/u/tecosaur)\
**Post date:** [February 26, 2026, 5:18pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/2 "2026-02-26T17:18:12Z")

</div>

This prompted me to finally try JETLS, and I can confirm it’s great (while still suffering from quite a few false positives 😅).

---

<div class="post-metadata">

**Author:** ![linwaytin](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@linwaytin](https://discourse.julialang.org/u/linwaytin)\
**Post date:** [February 26, 2026, 5:46pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/3 "2026-02-26T17:46:50Z")

</div>

I really want to give a try, but the big issue for `JET` and `JETLS` is that it requires the newest julia version. I currently stay on `1.10`.

I hope `JET` can reach the stage soon that some older versions are supported.

---

<div class="post-metadata">

**Author:** ![gbaraldi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gbaraldi/32/22101_2.png) [@gbaraldi](https://discourse.julialang.org/u/gbaraldi)\
**Post date:** [February 26, 2026, 6:45pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/4 "2026-02-26T18:45:05Z")

</div>

It’s unlikely. JETLS depends on many compiler upgrades that have happened since 1.10 and are continuing to happen

---

<div class="post-metadata">

**Author:** ![j\_u](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j_u/32/219081_2.png) [@j\_u](https://discourse.julialang.org/u/j_u)\
**Post date:** [February 26, 2026, 8:09pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/5 "2026-02-26T20:09:58Z")

</div>

But does it run on the latest stable version? The last time I tried it, it was asking for a nightly Julia version … Is it still the case / requirement?

---

<div class="post-metadata">

**Author:** ![gbaraldi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gbaraldi/32/22101_2.png) [@gbaraldi](https://discourse.julialang.org/u/gbaraldi)\
**Post date:** [February 26, 2026, 8:32pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/6 "2026-02-26T20:32:44Z")

</div>

It should work on 1.12 last I checked. But newer version will still be better.

---

<div class="post-metadata">

**Author:** ![j\_u](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/j_u/32/219081_2.png) [@j\_u](https://discourse.julialang.org/u/j_u)\
**Post date:** [February 26, 2026, 9:19pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/7 "2026-02-26T21:19:10Z")

</div>

Aha, I see, so it runs as an app now. I’ll be testing with Helix. Will try to add it to Crush coding agent as well.

---

<div class="post-metadata">

**Author:** ![linwaytin](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@linwaytin](https://discourse.julialang.org/u/linwaytin)\
**Post date:** [February 26, 2026, 11:15pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/8 "2026-02-26T23:15:29Z")

</div>

I mean I hope it will be able to support, say, the newest LTS version in the future.

I believe for practical reasons, many people would like to stay on LTS versions.

---

<div class="post-metadata">

**Author:** ![RayleighLord](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rayleighlord/32/33592_2.png) [@RayleighLord](https://discourse.julialang.org/u/RayleighLord)\
**Post date:** [February 27, 2026, 10:32am UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/9 "2026-02-27T10:32:23Z")

</div>

I have a question regarding the expected timeline for when **JETLS.jl** might become usable and integrated by default in IDEs such as VSCode.

I want to emphasize that I’m not asking this in any way to apply pressure. I’m genuinely impressed by the progress that has been made, and I’m very excited about the project. I’m looking forward to using these tools, although I will likely wait until an official release before fully adopting them.

Thank you for all the great work!

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [February 27, 2026, 2:21pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/10 "2026-02-27T14:21:56Z")

</div>

> [@RayleighLord](#):
>
> when **JETLS.jl** might become usable and integrated by default in IDEs such as VSCode.

Soon™ (before JuliaCon).

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [March 13, 2026, 12:26pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/11 "2026-03-13T12:26:59Z")

</div>

Thanks for calling attention to JETLS again. I tried it a couple of months ago but then it was a bit buggy, it came a long way since. And thanks for mentioning flyover, I did not know about it.

---

<div class="post-metadata">

**Author:** ![aviatesk](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aviatesk/32/7610_2.png) [@aviatesk](https://discourse.julialang.org/u/aviatesk)\
**Post date:** [March 13, 2026, 12:47pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/12 "2026-03-13T12:47:08Z")

</div>

Thank you for the callout about JETLS. It motivates me to keep pushing development forward.

> [@dmolina](#):
>
> ```julia-auto
> ;; For julia
> (with-eval-after-load 'eglot
> (add-to-list 'eglot-server-programs
> '(((julia-mode :language-id "julia")
> (julia-ts-mode :language-id "julia"))
> "jetls"
> "--threads=auto"
> "--"
> "--socket"
> :autoport)))
> 
> ```

Please note that this server launching method has been deprecated in the latest JETLS release. In the latest version (`2026-03-13`), please configure it as follows (note the explicit `serve` command):

```julia-auto
(with-eval-after-load 'eglot
  (add-to-list 'eglot-server-programs
               '(((julia-mode :language-id "julia")
                  (julia-ts-mode :language-id "julia"))
                 "jetls"
                 "--threads=auto"
                 "--"
                 "serve"
                 "--socket"
                 :autoport)))

```

For instructions on how to install the latest `jetls` executable, as well as setup for each editor, please refer to [Index · JETLS.jl](https://aviatesk.github.io/JETLS.jl/release/#Editor-setup).

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [March 18, 2026, 9:02am UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/13 "2026-03-18T09:02:31Z")

</div>

Does anyone have an example how to [configure](https://aviatesk.github.io/JETLS.jl/release/configuration/) JETLS with Emacs/eglot?

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [March 18, 2026, 10:41am UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/14 "2026-03-18T10:41:50Z")

</div>

> [@linwaytin](#):
>
> I hope `JET` can reach the stage soon that some older versions are supported.

Well, if your code can be instantiated on Julia 1.12, then you can use JETLS even if Julia 1.10 is active. So you could do:

```julia-auto
mv Manifest.toml Manifest-v1.10.toml 
juliaup add 1.12
juliaup default 1.12
julia --project -e 'using Pkg; Pkg.instantiate()'
mv Manifest.toml Manifest-v1.12.toml 
juliaup default 1.10

```

and try if that works for you.

---

<div class="post-metadata">

**Author:** ![prittjam](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/prittjam/32/21267_2.png) [@prittjam](https://discourse.julialang.org/u/prittjam)\
**Post date:** [March 18, 2026, 12:52pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/15 "2026-03-18T12:52:03Z")

</div>

It’s excellent. Vastly improves development experience. Well done. Thanks for the hard work.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [March 18, 2026, 1:09pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/16 "2026-03-18T13:09:50Z")

</div>

[The documentation](https://aviatesk.github.io/JETLS.jl/release/#Emacs). That was also mentioned in the message right above yours.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [March 18, 2026, 1:16pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/17 "2026-03-18T13:16:25Z")

</div>

@giordano, you misunderstand, I am not asking about _setup_, but _configuration_ (ie a schema). See the link I included in my question.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [March 18, 2026, 1:32pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/18 "2026-03-18T13:32:06Z")

</div>

Then I don’t understand the question at all because that configuration isn’t editor-specific.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [March 18, 2026, 1:35pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/19 "2026-03-18T13:35:20Z")

</div>

Sure, but _how_ I send that configuration from the editor is.

TL;DR: I am looking for the Emacs/eglot equivalent of [`vim.lsp.config`](https://aviatesk.github.io/JETLS.jl/release/configuration/#config/lsp-config/server-agnostic).

---

<div class="post-metadata">

**Author:** ![linwaytin](https://avatars.discourse-cdn.com/v4/letter/l/898d66/32.png) [@linwaytin](https://discourse.julialang.org/u/linwaytin)\
**Post date:** [March 18, 2026, 2:32pm UTC](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844/20 "2026-03-18T14:32:49Z")

</div>

Interesting. My code works on `1.12`.

Do you mean the `JETLS` can work independently with the active environment?

[Next page](https://discourse.julialang.org/t/you-should-try-jetls-it-is-awesome/135844.md?page=2)
