Built-in servers
There are no built-in LSP servers in the current V2 implementation. Settinglsp to true declares that built-ins should be enabled, but has no runtime
effect until V2 provides a server registry and LSP runtime.
opencode.jsonc
Configuration
Thelsp field accepts a boolean or an object keyed by server name:
opencode.jsonc
| Property | Type | Required | Description |
|---|---|---|---|
command | string[] | Yes | Executable followed by any arguments. |
extensions | string[] | No | File extensions associated with the server, including the leading dot. |
disabled | boolean | No | Disables the entry when true. |
env | Record<string, string> | No | Environment variables for the server process. The property is named env, not environment. |
initialization | Record<string, unknown> | No | Server-specific options for the LSP initialize request. |
command is the disable-only form:
extensions to be omitted,
including for a custom server, although a future runtime will need a way to
associate that server with files.
Disable LSP
Omitlsp when no configuration is needed. Set it to false to explicitly
disable the whole integration, including when a lower-priority configuration
set it to true or supplied an object:
opencode.jsonc
{ "disabled": true } under a server name to disable one server while
retaining the object form. OPENCODE_DISABLE_LSP_DOWNLOAD is not used by V2;
V2 currently performs no automatic LSP downloads.
Current usage
V2 loads and validates the configuration shape for compatibility and future integration. It does not currently use LSP when reading, writing, editing, or patching files, and those tools do not notify a language server or return LSP diagnostics. For reliable feedback today, have the agent run the project’s lint, typecheck, test, or compiler commands. Record those commands in anAGENTS.md file or a
skill so the agent knows when and where to run them.