npx skillsauth add pradeepmouli/lspeasy cliInstall 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.
lsp.json--dry-run prints diffs without writing; safe to inspect before committinglsproxy <namespace> <command> [args] [flags]
lsproxy call <method> --params <json>
Commands are built from the server's capabilities at startup. Available namespaces:
callHierarchy, codeAction, codeLens, completionItem, documentLink,
inlayHint, textDocument, workspace, workspaceSymbol.
lsproxy textDocument hover src/foo.ts 12:7
lsproxy textDocument rename src/foo.ts 12:7 newName
lsproxy textDocument references src/foo.ts 12:7
lsproxy textDocument definition src/foo.ts 12:7
lsproxy textDocument formatting src/foo.ts
lsproxy textDocument rangeFormatting src/foo.ts 1:1-50:1
lsproxy workspace symbol MyClass
lsproxy call textDocument/semanticTokens/full --params '{"textDocument":{"uri":"file:///…"}}'
codeAction returns a JSON array of available fixes and refactors for a range.
When exactly one action carries an edit it is applied automatically; when zero or
multiple carry edits the array is printed and no files are changed.
lsproxy textDocument codeAction --dry-run src/foo.ts 12:1-12:20
Commands missing from --help — lsproxy only registers commands for capabilities the
server actually advertises. If textDocument rename doesn't appear, the server doesn't
support renameProvider. Use lsproxy call initialize --params '{}' to inspect the
server's capability response.
Wrong positions — Positions must be 1-based (line:col). Most editors display
1-based positions; LSP protocol is 0-based internally but lsproxy converts for you.
Passing 0-based values shifts edits by one line/column.
Server not found — Without --server, lsproxy walks up from --root looking for
lsp.json. If it can't find one it will time out. Either add lsp.json to the project
root or pass --server <cmd> explicitly.
Write commands applied unexpectedly — rename, formatting, and code actions that
produce edits write to disk immediately. Always run with --dry-run first on an
unfamiliar codebase.
callHierarchy operations
Usage:
lsproxy callHierarchy [options] [command]
codeAction operations
Usage:
lsproxy codeAction [options] [command]
codeLens operations
Usage:
lsproxy codeLens [options] [command]
completionItem operations
Usage:
lsproxy completionItem [options] [command]
documentLink operations
Usage:
lsproxy documentLink [options] [command]
inlayHint operations
Usage:
lsproxy inlayHint [options] [command]
textDocument operations
Usage:
lsproxy textDocument [options] [command]
workspace operations
Usage:
lsproxy workspace [options] [command]
workspaceSymbol operations
Usage:
lsproxy workspaceSymbol [options] [command]
Send any LSP request by method name with raw JSON params
Usage:
lsproxy call [options] <method>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | LSP params as JSON |
Arguments:
method (required)Load these on demand — do NOT read all at once:
references/commands.md for flags, arguments, and defaultstools
`@lspeasy/cli` — programmatic entry point. Exposes the reusable refactor internals (session pipeline + WorkspaceEdit applier) so the same machinery can be embedded in scripts, not just invoked through the `lspeasy` bin. Also: lsp, language-server-protocol, refactor, rename, codemod, move-symbol, cli.
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
Use when working with lspeasy (client, core, server).
tools
Documentation site for lspeasy Use when: The client sets `partialResultToken` in the request params and you want to....