A fast, low-memory LSP server for Kotlin, Java, and Swift, written in Rust. Built with tree-sitter — instant startup, no JVM.
Why kmp-lsp? Full navigation (hover, go-to-definition, completion, rename, semantic tokens) works immediately via an rg fallback and gets faster as the background index builds — instant startup, under 200 MB, no JVM or Gradle import required. Trade-off: syntactic (tree-sitter) resolution, not the full IntelliJ Analysis API. See the full comparison.
curl -fsSL https://raw.githubusercontent.com/Hessesian/kmp-lsp/main/install.sh | bashInstalls kmp-lsp and the native JAR indexer sidecar.
Library sources are auto-detected in most cases. Missing hover docs/go-to-def for a dependency? Force-extract them:
kmp-lsp extract-sources- Manual install & other methods — cargo, cargo-binstall, mise, mason.nvim, sidecar setup
- Integrate with an AI agent — Copilot CLI, Serena MCP, agent skill file
- More editors — Helix, Neovim, VS Code, Zed
- Features & CLI reference — capabilities, CLI subcommands, resolution chain, completion ranking
- Configuration — workspace root, ignore patterns, source paths,
jarPaths - Limitations & vs. official Kotlin LSP
- Architecture · Performance & profiling · Changelog
Superclass hierarchy resolution, this/super qualifier handling, and lambda parameter recognition were inspired by code-compass.nvim by Emmanuel Touzery.

