LSP Maintain (Reference-aligned)
Non-negotiables (policy)
- Do not respond with menu-style instructions like “run
/lsp-maintain install” or “run/lsp-maintain doctor”. - Prefer executing capability changes through
SlashCommand(e.g./plugin ...,/lsp) orEditto configuration files. - Keep the conversation focused: only load deeper resources if absolutely necessary.
What “LSP enabled” means in Kode
Kode’s LSP tool is enabled only when there is at least one resolved LSP server and at least one is not in error.
Step 1 — Establish facts (no guessing)
- Ask for the user goal (languages, monorepo vs single package, whether they already use plugins).
- Run
/lspviaSlashCommandand read the “Configured servers” list. - If there are zero servers, conclude: no LSP servers are configured (do not speculate about missing binaries).
Step 2 — Identify configuration source (plugin-only)
Kode resolves LSP servers from enabled plugins:
- Plugin root
.lsp.json(JSON, top-level record) - Plugin manifest field
lspServers(inline record or relative file path within plugin root)
If the user needs a new server, the correct path is: enable a plugin that provides it, or add/update a plugin’s .lsp.json.
Step 3 — Apply changes through agent CLI
Prefer:
- Use
SlashCommandto manage plugins (/plugin ...) and re-check with/lsp. - Use
Editto update the plugin’s.lsp.jsonor manifestlspServersrecord/file.
Step 4 — Verify
- Re-run
/lspand confirm servers are resolved. - Attempt one
LSPtool call (e.g.goToDefinition) on a file extension that is mapped inextensionToLanguage.
Notes for LSP server config authoring
commandmust be an executable (avoid embedding arguments; useargs).- Kode runs servers using stdio pipes.
- Do not use
restartOnCrash,startupTimeout, orshutdownTimeoutin the config (Kode treats them as unsupported).