Built-in LSP Servers
Symbiotic Code comes with several built-in LSP servers for popular languages:
LSP servers are automatically enabled when one of the above file extensions are detected and the requirements are met. Auto-installed servers are stored in
~/.local/share/symbiotic/bin/.
To use ty instead of pyright for Python, set
SYMBIOTIC_EXPERIMENTAL_LSP_TY=true. ty must be on your PATH or in your project’s virtual environment.How it works
When Symbiotic Code opens a file, it:- Checks the file extension against all enabled LSP servers.
- Finds the project root for each matching server (for example the nearest lockfile,
go.mod, orCargo.toml). - Starts the appropriate LSP server for that root if not already running.
LSP tool (experimental)
SetSYMBIOTIC_EXPERIMENTAL_LSP_TOOL=true (or SYMBIOTIC_EXPERIMENTAL=true) to give the agent an lsp tool for code navigation: go to definition, find references, hover, document and workspace symbols, go to implementation, and call hierarchy. It’s controlled by the lsp permission.
Configure
You can customize LSP servers through thelsp section in your Symbiotic Code config.
symbiotic.json
Let’s look at some examples.
Environment variables
Use theenv property to set environment variables when starting the LSP server:
symbiotic.json
Initialization options
Use theinitialization property to pass initialization options to the LSP server. These are server-specific settings sent during the LSP initialize request:
symbiotic.json
Disabling LSP servers
To disable all LSP servers globally, setlsp to false:
symbiotic.json
disabled to true:
symbiotic.json
Custom LSP servers
You can add custom LSP servers by specifying the command and file extensions:symbiotic.json