apps/docs/skills/lspeasy/SKILL.md
Use when working with lspeasy (client, core, server).
npx skillsauth add pradeepmouli/lspeasy lspeasyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill for ANY work with lspeasy. It routes to the correct package.
Use this router when:
lspeasy-clientlspeasy-corelspeasy-serverlspeasy-clientUse @lspeasy/client when you need to build the consumer side of the
Language Server Protocol — an editor extension, a CLI analysis tool, a test
harness, or any process that speaks to a language server process.
LSPClient uses. Otherwise this is an internal detail.Key APIs: CapabilityGuard, ClientCapabilityGuard, ConnectionHealthTracker
lspeasy-core@lspeasy/core is the shared foundation for the lspeasy SDK. It contains
everything needed to build custom LSP integrations, and re-exports the
most-used pieces from @lspeasy/client and @lspeasy/server.
MethodNotFound when a capability was not declared, or InvalidParams when schema validation fails).Key APIs: DedicatedWorkerTransport, SharedWorkerTransport, WebSocketTransport, getCapabilityForRequestMethod, getClientCapabilityForRequestMethod
lspeasy-serverUse @lspeasy/server when you need to build the provider side of the
Language Server Protocol — a daemon that editors and language-client tooling
connect to in order to get diagnostics, completions, hover, go-to-definition,
and other language intelligence features.
partialResultToken in the request params and you want to stream intermediate results (e.g. symbols found so far) rather than waiting for the complete set.MethodNotFound when a capability was not declared, or InvalidParams when schema validation fails).Key APIs: MessageDispatcher, PartialResultSender, ResponseError
Top pitfall per package:
CapabilityGuard before the initialize handshake completes. Server capabilities are only known after the InitializeResult is received; instantiating the guard too early will treat all methods as unsupported. (client)enableReconnect: true in server mode (socket provided) — the option is silently ignored (reconnect has no URL to reconnect to), but the intent is misleading and suggests lifecycle management will be handled when it is not. (core)| Thought | Reality |
|---------|---------|
| "I'll just use client for everything" | client is for documentation site for lspeasy. The transport already provides its own keep-alive mechanism (e.g. WebSocket ping frames) — adding a heartbeat on top creates redundant round-trips and may interfere with the transport's own timeout logic. |
| "I'll just use core for everything" | core is for documentation site for lspeasy. You are building a CLI language server — StdioTransport (from @lspeasy/core/node) is the conventional choice and avoids the overhead of a network stack. For same-process workers prefer DedicatedWorkerTransport or SharedWorkerTransport. |
| "I'll just use server for everything" | server is for documentation site for lspeasy. You want to log a server-side error without sending an error to the client — throw a plain Error and handle it via server.onError() instead. |
User: "I need to documentation site for lspeasy"
→ Load lspeasy-client
User: "I need to documentation site for lspeasy"
→ Load lspeasy-core
User: "I need to documentation site for lspeasy"
→ Load lspeasy-server
tools
Use for ANY rename, file-move, or move-symbol refactor — especially rename-heavy work across multiple files. Claude Code's built-in LSP tool is READ-ONLY (find references, but no rename / file-move / move-symbol). Hand-editing those refactors silently misses re-exports, aliased imports, type-only imports, and {@link} doc references. This skill drives a real language server via the `lspeasy` CLI to apply a correct WorkspaceEdit that catches every reference. Trigger when the user asks to rename a function/class/variable/type project-wide, move a file and fix its importers, or pull a symbol out into another module.
tools
Documentation site for lspeasy Use when: You are building a browser-based LSP client, a WebSocket-backed language....
tools
Documentation site for lspeasy Use when: You are implementing a custom client layer and need the same validation....
tools
Use when working with lspeasy (client, core, server). Covers: lsp, language-server-protocol, lsp-client, language-client, jsonrpc, transport, lsp-server, language-server.