<!-- Markdown mirror. Canonical: https://empryo.com/docs/tools/lsp -->

# LSP servers

> Install, manage, and inspect LSP servers from the TUI. Mason-backed installer with 576+ packages, dual Neovim and standalone backends, no config edits.

Empryo's code intelligence runs a full LSP layer. It ships a Mason-backed installer so you can add servers for any language from the TUI without touching your Neovim config.

## Commands

```
/lsp                open the LSP manager (install, enable, disable)
/lsp install        search and install servers (Mason registry, 576+ packages)
/lsp status         attached servers with PID, language, capabilities
/lsp restart        restart all, or filter by language
```

## What the agent uses

Every [code intelligence](/docs/concepts/intelligence) operation tries LSP first:

- Go-to-definition
- Find references
- Workspace-wide rename
- Diagnostics (errors, warnings, info)
- Code actions (quick fixes, refactors)
- Call hierarchy (incoming and outgoing)
- Type hierarchy (super and subtypes)
- Hover and type info
- Format document and format range

No manual setup required. The agent picks the right tool automatically.

## Dual backend

Empryo runs LSP in two modes, whichever is available:

| Mode | When |
|------|------|
| **Neovim bridge** | Editor panel open. Routes through your running Neovim LSP clients. Zero warm-up cost. |
| **Standalone** | Editor panel closed, or Neovim not installed. Empryo spawns LSP servers directly into `~/.empryo/lsp-servers/`. |

Both cover the same capabilities. Standalone servers stay warm as hot standby even when Neovim is open.

## Supported languages

Typical LSP coverage (any Mason package works): TypeScript, JavaScript, Python, Go, Rust, Java, Kotlin, Scala, C#, Swift, Dart, Elixir, OCaml, Lua, C, C++, Ruby, PHP, Zig, Bash, CSS, HTML, JSON, TOML, YAML, Dockerfile, Vue.

Tree-sitter detection adds ReScript, Solidity, TLA+, Emacs Lisp, Objective-C, Nix, HCL/Terraform, Bazel/Starlark, Jsonnet, Makefile, GraphQL, Protobuf, SQL, Markdown, MDX, XML, and more.

For anything LSP doesn't cover, the intelligence router falls through to ts-morph (TypeScript/JavaScript AST), tree-sitter, and regex.

## Mason installer

`/lsp install` opens a fuzzy-search browser over Mason's registry. Pick a package, press enter, Empryo installs it:

- **npm** packages to `~/.empryo/lsp-servers/node_modules/`
- **pypi** via `pip3`
- **cargo** via `cargo install`
- **golang** via `go install`
- **github** releases downloaded and extracted

Already installed locally or via your Neovim's Mason? Empryo picks them up from the existing paths.

## Check health

`/diagnose` runs a full check: tree-sitter, LSP readiness, semantic indexing, Genome status. Use it when something doesn't feel right.
