{"slug": "eglot", "name": "Eglot", "category": "editors", "category_name": "Editors and IDEs", "description": "Lightweight Language Server Protocol client for Emacs, bundled with Emacs since version 29.", "recommenders": 5, "commenters": 8, "warners": 1, "score": 4.099, "rising": 1.02, "first": "2025-11-03", "latest": "2026-10-28", "why": "Liked as the LSP client built into Emacs and as a replacement for lsp-mode alongside newer packages like Corfu and Vertico.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 5, "neutral": 2, "compare": 0, "warn": 1}, "spark": [1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 2], "listed": true, "loved": ["Modern package stack", "Built into Emacs"], "caveat": "Bundled version bugs", "short_quote": "I switched to Eglot/Corfu/Vertico/Tempel. I much prefer the new wave.", "icon": true, "domain": null, "github_repo": "github.com/joaotavora/eglot", "official_url": "https://github.com/joaotavora/eglot", "pricing": "open source", "aliases": ["Eglot", "eglot"], "verdict": [{"text": "Liked as the LSP client built into Emacs", "cites": [{"id": 776080688, "item_id": 48505043, "url": "https://news.ycombinator.com/item?id=48505043", "by": "idahoduncan", "date": "2026-06-12", "stance": "recommend", "quote": "integrate with tsc via the built-in LSP client, eglot. Works well.", "excerpt": "I guess so - I use built in TypeScript modes, and integrate with tsc via the built-in LSP client, eglot. Works well. Front-end specialists may disagree.", "context": "Emacs user", "use_case": "TypeScript in Emacs", "switched_from": "", "story": "Emacs Appearances in Pop Culture"}, {"id": 733457395, "item_id": 45841087, "url": "https://news.ycombinator.com/item?id=45841087", "by": "craftkiller", "date": "2025-11-06", "stance": "recommend", "quote": "you probably don't need lsp-mode, you can use the built-in eglot", "excerpt": "> What's your take on opinionated distros like Doom Emacs or Spacemacs? If you use vanilla emacs without customization, you are going to have a very basic text editor experience. That is fine if you understand that, and understand that you'll need to start adding your own customizations (like enabling eglot for LSP, and company-mode for code completions, etc) in order to get to an experience closer to what you'd get ", "context": "heavy Emacs user with vanilla config", "use_case": "LSP in Emacs", "switched_from": "", "story": "How I am deeply integrating Emacs"}, {"id": 804413521, "item_id": 50275845, "url": "https://news.ycombinator.com/item?id=50275845", "by": "cyrialize", "date": "2026-10-28", "stance": "recommend", "quote": "I use corfu, eglot, and vertico now.", "excerpt": "This is a good point, but I do want to mention that I feel like in the past 5 years we've had lots of extremely popular packages that hook into Emacs internals instead of rolling out their own architecture. For example, corfu [0] versus company [1]. Company works with capf, but you can also write your own backends for it (specific to company). Corfu also works with capf, but all backends are capf functions instead of", "context": "Emacs user", "use_case": "Emacs LSP client", "switched_from": "", "story": "Emacs Turns 50"}]}, {"text": " and as a replacement for lsp-mode alongside newer packages like Corfu and Vertico.", "cites": [{"id": 804437152, "item_id": 50277322, "url": "https://news.ycombinator.com/item?id=50277322", "by": "seanw444", "date": "2026-10-28", "stance": "recommend", "quote": "I switched to Eglot/Corfu/Vertico/Tempel. I much prefer the new wave.", "excerpt": "I was using Helm, lsp-mode, yasnippet, and the like for a long time. I switched to Eglot/Corfu/Vertico/Tempel. I much prefer the new wave.", "context": "", "use_case": "Emacs LSP client", "switched_from": "lsp-mode", "story": "Emacs Turns 50"}, {"id": 804413521, "item_id": 50275845, "url": "https://news.ycombinator.com/item?id=50275845", "by": "cyrialize", "date": "2026-10-28", "stance": "recommend", "quote": "I use corfu, eglot, and vertico now.", "excerpt": "This is a good point, but I do want to mention that I feel like in the past 5 years we've had lots of extremely popular packages that hook into Emacs internals instead of rolling out their own architecture. For example, corfu [0] versus company [1]. Company works with capf, but you can also write your own backends for it (specific to company). Corfu also works with capf, but all backends are capf functions instead of", "context": "Emacs user", "use_case": "Emacs LSP client", "switched_from": "", "story": "Emacs Turns 50"}, {"id": 733457395, "item_id": 45841087, "url": "https://news.ycombinator.com/item?id=45841087", "by": "craftkiller", "date": "2025-11-06", "stance": "recommend", "quote": "you probably don't need lsp-mode, you can use the built-in eglot", "excerpt": "> What's your take on opinionated distros like Doom Emacs or Spacemacs? If you use vanilla emacs without customization, you are going to have a very basic text editor experience. That is fine if you understand that, and understand that you'll need to start adding your own customizations (like enabling eglot for LSP, and company-mode for code completions, etc) in order to get to an experience closer to what you'd get ", "context": "heavy Emacs user with vanilla config", "use_case": "LSP in Emacs", "switched_from": "", "story": "How I am deeply integrating Emacs"}]}, {"text": " The main caveat is that the bundled version can lag on bug fixes", "cites": [{"id": 791495841, "item_id": 49468490, "url": "https://news.ycombinator.com/item?id=49468490", "by": "KallDrexx", "date": "2026-08-27", "stance": "warn", "quote": "I couldn't even use the built in version of eglot and had to use ELPA version for bug fixes", "excerpt": "I recently switched from full IDE to Emacs (wrote up about the things I learned at https://github.com/KallDrexx/emacs-zero-to-ide-journey/blob/main/README.md) Typescript is a perfect example of why Emacs shouldn't own that setup. Typescript version 6 uses the \"typescript-language-server\" which is a totally stand alone nom package for lsp support. Typescript 7, is incompatible with typescript-language-server and the c", "context": "", "use_case": "LSP client", "switched_from": "", "story": "Emacs 31: An unofficial guide to Markdown-ts-mode"}]}, {"text": ", so one commenter had to install the ELPA version instead.", "cites": [{"id": 791495841, "item_id": 49468490, "url": "https://news.ycombinator.com/item?id=49468490", "by": "KallDrexx", "date": "2026-08-27", "stance": "warn", "quote": "I couldn't even use the built in version of eglot and had to use ELPA version for bug fixes", "excerpt": "I recently switched from full IDE to Emacs (wrote up about the things I learned at https://github.com/KallDrexx/emacs-zero-to-ide-journey/blob/main/README.md) Typescript is a perfect example of why Emacs shouldn't own that setup. Typescript version 6 uses the \"typescript-language-server\" which is a totally stand alone nom package for lsp support. Typescript 7, is incompatible with typescript-language-server and the c", "context": "", "use_case": "LSP client", "switched_from": "", "story": "Emacs 31: An unofficial guide to Markdown-ts-mode"}]}], "praise": [{"label": "Modern package stack", "summary": "Commenters pair it with Corfu, Vertico, Tempel and tree-sitter as part of a newer Emacs setup.", "quotes": [{"id": 804437152, "item_id": 50277322, "url": "https://news.ycombinator.com/item?id=50277322", "by": "seanw444", "date": "2026-10-28", "stance": "recommend", "quote": "I switched to Eglot/Corfu/Vertico/Tempel. I much prefer the new wave.", "excerpt": "I was using Helm, lsp-mode, yasnippet, and the like for a long time. I switched to Eglot/Corfu/Vertico/Tempel. I much prefer the new wave.", "context": "", "use_case": "Emacs LSP client", "switched_from": "lsp-mode", "story": "Emacs Turns 50"}, {"id": 804413521, "item_id": 50275845, "url": "https://news.ycombinator.com/item?id=50275845", "by": "cyrialize", "date": "2026-10-28", "stance": "recommend", "quote": "I use corfu, eglot, and vertico now.", "excerpt": "This is a good point, but I do want to mention that I feel like in the past 5 years we've had lots of extremely popular packages that hook into Emacs internals instead of rolling out their own architecture. For example, corfu [0] versus company [1]. Company works with capf, but you can also write your own backends for it (specific to company). Corfu also works with capf, but all backends are capf functions instead of", "context": "Emacs user", "use_case": "Emacs LSP client", "switched_from": "", "story": "Emacs Turns 50"}, {"id": 747528017, "item_id": 46720501, "url": "https://news.ycombinator.com/item?id=46720501", "by": "tetris11", "date": "2026-01-22", "stance": "recommend", "quote": "I love tree-sitter+eglot", "excerpt": "I love tree-sitter+eglot but a few of the languages/schemes I work in, simply don't have parsers: > pacman -Ssq tree-sitter tree-sitter tree-sitter-bash tree-sitter-c tree-sitter-cli tree-sitter-javascript tree-sitter-lua tree-sitter-markdown tree-sitter-python tree-sitter-query tree-sitter-rust tree-sitter-vim tree-sitter-vimdoc Where's R, YAML, Golang, and several others?", "context": "", "use_case": "LSP client in Emacs", "switched_from": "", "story": "Tree-sitter vs. Language Servers"}]}, {"label": "Built into Emacs", "summary": "It ships with Emacs, so no extra LSP package is needed.", "quotes": [{"id": 804413521, "item_id": 50275845, "url": "https://news.ycombinator.com/item?id=50275845", "by": "cyrialize", "date": "2026-10-28", "stance": "recommend", "quote": "I use corfu, eglot, and vertico now.", "excerpt": "This is a good point, but I do want to mention that I feel like in the past 5 years we've had lots of extremely popular packages that hook into Emacs internals instead of rolling out their own architecture. For example, corfu [0] versus company [1]. Company works with capf, but you can also write your own backends for it (specific to company). Corfu also works with capf, but all backends are capf functions instead of", "context": "Emacs user", "use_case": "Emacs LSP client", "switched_from": "", "story": "Emacs Turns 50"}, {"id": 776080688, "item_id": 48505043, "url": "https://news.ycombinator.com/item?id=48505043", "by": "idahoduncan", "date": "2026-06-12", "stance": "recommend", "quote": "integrate with tsc via the built-in LSP client, eglot. Works well.", "excerpt": "I guess so - I use built in TypeScript modes, and integrate with tsc via the built-in LSP client, eglot. Works well. Front-end specialists may disagree.", "context": "Emacs user", "use_case": "TypeScript in Emacs", "switched_from": "", "story": "Emacs Appearances in Pop Culture"}, {"id": 733457395, "item_id": 45841087, "url": "https://news.ycombinator.com/item?id=45841087", "by": "craftkiller", "date": "2025-11-06", "stance": "recommend", "quote": "you probably don't need lsp-mode, you can use the built-in eglot", "excerpt": "> What's your take on opinionated distros like Doom Emacs or Spacemacs? If you use vanilla emacs without customization, you are going to have a very basic text editor experience. That is fine if you understand that, and understand that you'll need to start adding your own customizations (like enabling eglot for LSP, and company-mode for code completions, etc) in order to get to an experience closer to what you'd get ", "context": "heavy Emacs user with vanilla config", "use_case": "LSP in Emacs", "switched_from": "", "story": "How I am deeply integrating Emacs"}]}, {"label": "lsp-mode alternative", "summary": "Users switched from lsp-mode or say lsp-mode is unnecessary.", "quotes": [{"id": 804437152, "item_id": 50277322, "url": "https://news.ycombinator.com/item?id=50277322", "by": "seanw444", "date": "2026-10-28", "stance": "recommend", "quote": "I switched to Eglot/Corfu/Vertico/Tempel. I much prefer the new wave.", "excerpt": "I was using Helm, lsp-mode, yasnippet, and the like for a long time. I switched to Eglot/Corfu/Vertico/Tempel. I much prefer the new wave.", "context": "", "use_case": "Emacs LSP client", "switched_from": "lsp-mode", "story": "Emacs Turns 50"}, {"id": 733457395, "item_id": 45841087, "url": "https://news.ycombinator.com/item?id=45841087", "by": "craftkiller", "date": "2025-11-06", "stance": "recommend", "quote": "you probably don't need lsp-mode, you can use the built-in eglot", "excerpt": "> What's your take on opinionated distros like Doom Emacs or Spacemacs? If you use vanilla emacs without customization, you are going to have a very basic text editor experience. That is fine if you understand that, and understand that you'll need to start adding your own customizations (like enabling eglot for LSP, and company-mode for code completions, etc) in order to get to an experience closer to what you'd get ", "context": "heavy Emacs user with vanilla config", "use_case": "LSP in Emacs", "switched_from": "", "story": "How I am deeply integrating Emacs"}, {"id": 804413521, "item_id": 50275845, "url": "https://news.ycombinator.com/item?id=50275845", "by": "cyrialize", "date": "2026-10-28", "stance": "recommend", "quote": "I use corfu, eglot, and vertico now.", "excerpt": "This is a good point, but I do want to mention that I feel like in the past 5 years we've had lots of extremely popular packages that hook into Emacs internals instead of rolling out their own architecture. For example, corfu [0] versus company [1]. Company works with capf, but you can also write your own backends for it (specific to company). Corfu also works with capf, but all backends are capf functions instead of", "context": "Emacs user", "use_case": "Emacs LSP client", "switched_from": "", "story": "Emacs Turns 50"}]}, {"label": "Language support", "summary": "Used with TypeScript via tsc and with Go and Rust language modes.", "quotes": [{"id": 776080688, "item_id": 48505043, "url": "https://news.ycombinator.com/item?id=48505043", "by": "idahoduncan", "date": "2026-06-12", "stance": "recommend", "quote": "integrate with tsc via the built-in LSP client, eglot. Works well.", "excerpt": "I guess so - I use built in TypeScript modes, and integrate with tsc via the built-in LSP client, eglot. Works well. Front-end specialists may disagree.", "context": "Emacs user", "use_case": "TypeScript in Emacs", "switched_from": "", "story": "Emacs Appearances in Pop Culture"}, {"id": 777410129, "item_id": 48588133, "url": "https://news.ycombinator.com/item?id=48588133", "by": "egl2020", "date": "2026-06-18", "stance": "neutral", "quote": "My most \"modern\" adoption is probably using lsp and eglot with various language modes", "excerpt": "I'm a pretty conservative emacs user, partly because I don't want to spend time tinkering to get things to work consistently across Windows, ubuntu, and mac os -- all of which I use daily. My most \"modern\" adoption is probably using lsp and eglot with various language modes, notably golang and rust. Should I consider adding tree-sitter into the mix?", "context": "", "use_case": "LSP client in Emacs", "switched_from": "", "story": "Emacs 31 Is Around the Corner: The Changes I'm Daily Driving"}]}], "caveats": [{"label": "Bundled version bugs", "summary": "One user could not use the built-in version and needed the ELPA release for bug fixes.", "quotes": [{"id": 791495841, "item_id": 49468490, "url": "https://news.ycombinator.com/item?id=49468490", "by": "KallDrexx", "date": "2026-08-27", "stance": "warn", "quote": "I couldn't even use the built in version of eglot and had to use ELPA version for bug fixes", "excerpt": "I recently switched from full IDE to Emacs (wrote up about the things I learned at https://github.com/KallDrexx/emacs-zero-to-ide-journey/blob/main/README.md) Typescript is a perfect example of why Emacs shouldn't own that setup. Typescript version 6 uses the \"typescript-language-server\" which is a totally stand alone nom package for lsp support. Typescript 7, is incompatible with typescript-language-server and the c", "context": "", "use_case": "LSP client", "switched_from": "", "story": "Emacs 31: An unofficial guide to Markdown-ts-mode"}]}], "who": [{"by": "cyrialize", "context": "Emacs user", "url": "https://news.ycombinator.com/item?id=50275845", "date": "2026-10-28"}, {"by": "idahoduncan", "context": "Emacs user", "url": "https://news.ycombinator.com/item?id=48505043", "date": "2026-06-12"}, {"by": "craftkiller", "context": "heavy Emacs user with vanilla config", "url": "https://news.ycombinator.com/item?id=45841087", "date": "2025-11-06"}, {"by": "krowek", "context": "Long time vim/neovim user", "url": "https://news.ycombinator.com/item?id=45797867", "date": "2025-11-03"}], "tags": ["for Emacs users", "for vanilla Emacs configs", "for TypeScript", "for Go and Rust"], "use_cases": ["emacs lsp client", "lsp client in emacs", "lsp in emacs", "lsp client", "typescript in emacs"], "compared": [{"slug": "corfu", "name": "corfu", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "emacs", "name": "Emacs", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "helm", "name": "Helm", "co": 3, "switched_from": 0, "switched_to": 0}, {"slug": "vertico", "name": "Vertico", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=50273171", "title": "Emacs Turns 50", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49464543", "title": "Emacs 31: An unofficial guide to Markdown-ts-mode", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48584135", "title": "Emacs 31 Is Around the Corner: The Changes I'm Daily Driving", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48474274", "title": "Emacs Appearances in Pop Culture", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46719899", "title": "Tree-sitter vs. Language Servers", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=45832341", "title": "How I am deeply integrating Emacs", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 1, "recommend": 1}, "2025-12": {}, "2026-01": {"recommend": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {}, "2026-05": {}, "2026-06": {"recommend": 1, "neutral": 1}, "2026-07": {}, "2026-08": {"warn": 1}, "2026-09": {}, "2026-10": {"recommend": 2}}, "quotes": [{"id": 804437152, "item_id": 50277322, "url": "https://news.ycombinator.com/item?id=50277322", "by": "seanw444", "date": "2026-10-28", "stance": "recommend", "quote": "I switched to Eglot/Corfu/Vertico/Tempel. I much prefer the new wave.", "excerpt": "I was using Helm, lsp-mode, yasnippet, and the like for a long time. I switched to Eglot/Corfu/Vertico/Tempel. I much prefer the new wave.", "context": "", "use_case": "Emacs LSP client", "switched_from": "lsp-mode", "story": "Emacs Turns 50"}, {"id": 804413521, "item_id": 50275845, "url": "https://news.ycombinator.com/item?id=50275845", "by": "cyrialize", "date": "2026-10-28", "stance": "recommend", "quote": "I use corfu, eglot, and vertico now.", "excerpt": "This is a good point, but I do want to mention that I feel like in the past 5 years we've had lots of extremely popular packages that hook into Emacs internals instead of rolling out their own architecture. For example, corfu [0] versus company [1]. Company works with capf, but you can also write your own backends for it (specific to company). Corfu also works with capf, but all backends are capf functions instead of", "context": "Emacs user", "use_case": "Emacs LSP client", "switched_from": "", "story": "Emacs Turns 50"}, {"id": 791495841, "item_id": 49468490, "url": "https://news.ycombinator.com/item?id=49468490", "by": "KallDrexx", "date": "2026-08-27", "stance": "warn", "quote": "I couldn't even use the built in version of eglot and had to use ELPA version for bug fixes", "excerpt": "I recently switched from full IDE to Emacs (wrote up about the things I learned at https://github.com/KallDrexx/emacs-zero-to-ide-journey/blob/main/README.md) Typescript is a perfect example of why Emacs shouldn't own that setup. Typescript version 6 uses the \"typescript-language-server\" which is a totally stand alone nom package for lsp support. Typescript 7, is incompatible with typescript-language-server and the c", "context": "", "use_case": "LSP client", "switched_from": "", "story": "Emacs 31: An unofficial guide to Markdown-ts-mode"}, {"id": 777410129, "item_id": 48588133, "url": "https://news.ycombinator.com/item?id=48588133", "by": "egl2020", "date": "2026-06-18", "stance": "neutral", "quote": "My most \"modern\" adoption is probably using lsp and eglot with various language modes", "excerpt": "I'm a pretty conservative emacs user, partly because I don't want to spend time tinkering to get things to work consistently across Windows, ubuntu, and mac os -- all of which I use daily. My most \"modern\" adoption is probably using lsp and eglot with various language modes, notably golang and rust. Should I consider adding tree-sitter into the mix?", "context": "", "use_case": "LSP client in Emacs", "switched_from": "", "story": "Emacs 31 Is Around the Corner: The Changes I'm Daily Driving"}, {"id": 776080688, "item_id": 48505043, "url": "https://news.ycombinator.com/item?id=48505043", "by": "idahoduncan", "date": "2026-06-12", "stance": "recommend", "quote": "integrate with tsc via the built-in LSP client, eglot. Works well.", "excerpt": "I guess so - I use built in TypeScript modes, and integrate with tsc via the built-in LSP client, eglot. Works well. Front-end specialists may disagree.", "context": "Emacs user", "use_case": "TypeScript in Emacs", "switched_from": "", "story": "Emacs Appearances in Pop Culture"}, {"id": 747528017, "item_id": 46720501, "url": "https://news.ycombinator.com/item?id=46720501", "by": "tetris11", "date": "2026-01-22", "stance": "recommend", "quote": "I love tree-sitter+eglot", "excerpt": "I love tree-sitter+eglot but a few of the languages/schemes I work in, simply don't have parsers: > pacman -Ssq tree-sitter tree-sitter tree-sitter-bash tree-sitter-c tree-sitter-cli tree-sitter-javascript tree-sitter-lua tree-sitter-markdown tree-sitter-python tree-sitter-query tree-sitter-rust tree-sitter-vim tree-sitter-vimdoc Where's R, YAML, Golang, and several others?", "context": "", "use_case": "LSP client in Emacs", "switched_from": "", "story": "Tree-sitter vs. Language Servers"}, {"id": 733457395, "item_id": 45841087, "url": "https://news.ycombinator.com/item?id=45841087", "by": "craftkiller", "date": "2025-11-06", "stance": "recommend", "quote": "you probably don't need lsp-mode, you can use the built-in eglot", "excerpt": "> What's your take on opinionated distros like Doom Emacs or Spacemacs? If you use vanilla emacs without customization, you are going to have a very basic text editor experience. That is fine if you understand that, and understand that you'll need to start adding your own customizations (like enabling eglot for LSP, and company-mode for code completions, etc) in order to get to an experience closer to what you'd get ", "context": "heavy Emacs user with vanilla config", "use_case": "LSP in Emacs", "switched_from": "", "story": "How I am deeply integrating Emacs"}, {"id": 732765874, "item_id": 45797867, "url": "https://news.ycombinator.com/item?id=45797867", "by": "krowek", "date": "2025-11-03", "stance": "neutral", "quote": "project.el, eglot, LSP things, helm, corfu, vterm, flycheck", "excerpt": "I was in the same boat until a couple of months ago. Long time vim/neovim user, used fennel to configure it lastly, but I wanted to see what Emacs has to offer to compare. I started by reading Mastering Emacs by Mickey Petersen and from there start adding things that I felt I needed (configure key bindings, project.el, eglot, LSP things, helm, corfu, vterm, flycheck, etc) I still have things to do, but I'm not in a h", "context": "Long time vim/neovim user", "use_case": "LSP in Emacs", "switched_from": "", "story": "Ask HN: Where to begin with \"modern\" Emacs?"}]}