apps/cli/skills/lsproxy-cli/SKILL.md
Standalone refactor CLI driving any LSP server: project-wide rename, file-move with importer updates, and code actions. Also: lsp, language-server-protocol, refactor, rename, codemod, cli.
npx skillsauth add pradeepmouli/lspeasy lsproxy-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.
Standalone refactor CLI driving any LSP server: project-wide rename, file-move with importer updates, and code actions.
--code-action-only or trigger-kind with --code-action-trigger-kind instead of writing raw --params JSONlsp.json--dry-run prints diffs without writing; safe to inspect before committingnpx @lsproxy/cli config import/export/diff/list bridges lsp.json with Copilot CLI, Claude Code, and Codex; --user targets ~/.claude/lsp.json for user-level scopenpx @lsproxy/cli lists configured languages with live daemon status; npx @lsproxy/cli --help <language> <namespace> <request> shows parameter schema, flag list, and illustrative example input/output; add --json for machine-readable output for agentsnpx @lsproxy/cli status groups every configured server by process, showing its resolved binary location, config source (lsp.json, Claude Code, Codex, Copilot CLI), live connection status/uptime, and which languages it serves# Preview a rename before writing (always do this first)
npx @lsproxy/cli src/auth/login.ts textDocument rename --dry-run 42:15 "signIn"
# Find all references to a symbol
npx @lsproxy/cli src/auth/login.ts textDocument references 42:15
# List available code actions at a range, then apply the chosen one
npx @lsproxy/cli src/foo.ts textDocument codeAction 12:1-12:20
# Send any LSP method directly (useful for probing capabilities)
npx @lsproxy/cli typescript call workspace/executeCommand --params '{"command":"typescript.reloadProjects"}'
Positions are 1-based (line:col, editor-style).
Write-side commands apply changes to disk automatically — use --dry-run to preview first.
Commands missing from --help — npx @lsproxy/cli only registers commands for capabilities the
server actually advertises. If textDocument rename doesn't appear, the server doesn't
support renameProvider. Use npx @lsproxy/cli <language-or-file> 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 npx @lsproxy/cli converts for you.
Passing 0-based values shifts edits by one line/column.
Server not found — Without --server, npx @lsproxy/cli 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.
references returns only the declaration (or nothing) — In a multi-package TypeScript
monorepo (especially with a solution-style root tsconfig.json that has references but no
include), textDocument references can come back with only the symbol's own declaration —
or an empty result — even when cross-file callers exist. This happens when the language
server has not loaded the full workspace project. npx @lsproxy/cli flags this case as partial:true
with a warning (and a stderr note) instead of a bare ok:true. Do not treat a
partial/empty result as "no callers" for a deletion or a file move; verify with a
build/type-check, or re-run against a warmed proxy daemon so the project is fully indexed.
callHierarchy operations
Usage:
npx @lsproxy/cli callHierarchy [options] [command]
Usage:
npx @lsproxy/cli callHierarchy incomingCalls [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
Usage:
npx @lsproxy/cli callHierarchy outgoingCalls [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
codeAction operations
Usage:
npx @lsproxy/cli codeAction [options] [command]
Usage:
npx @lsproxy/cli codeAction resolve [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
codeLens operations
Usage:
npx @lsproxy/cli codeLens [options] [command]
Usage:
npx @lsproxy/cli codeLens resolve [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
completionItem operations
Usage:
npx @lsproxy/cli completionItem [options] [command]
Usage:
npx @lsproxy/cli completionItem resolve [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
documentLink operations
Usage:
npx @lsproxy/cli documentLink [options] [command]
Usage:
npx @lsproxy/cli documentLink resolve [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
inlayHint operations
Usage:
npx @lsproxy/cli inlayHint [options] [command]
Usage:
npx @lsproxy/cli inlayHint resolve [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
textDocument operations
Usage:
npx @lsproxy/cli textDocument [options] [command]
Usage:
npx @lsproxy/cli textDocument codeAction [options] <file> <range>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
| --code-action-only | string | no | — | — | code-action-only (comma-separated) |
| --code-action-trigger-kind | string | no | — | — | code-action-trigger-kind |
Arguments:
file (required) — file path (relative to --root)range (required) — range as startLine:col-endLine:col, e.g. 2:1-4:5Usage:
npx @lsproxy/cli textDocument codeLens [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument colorPresentation [options] <file> <range>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
| --color-presentation-color-red | string | no | — | — | color-presentation-color-red |
| --color-presentation-color-green | string | no | — | — | color-presentation-color-green |
| --color-presentation-color-blue | string | no | — | — | color-presentation-color-blue |
| --color-presentation-color-alpha | string | no | — | — | color-presentation-color-alpha |
Arguments:
file (required) — file path (relative to --root)range (required) — range as startLine:col-endLine:col, e.g. 2:1-4:5Usage:
npx @lsproxy/cli textDocument completion [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
| --completion-trigger-kind | string | no | — | — | completion-trigger-kind |
| --completion-trigger-character | string | no | — | — | completion-trigger-character |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument declaration [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument definition [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument diagnostic [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
| --identifier | string | no | — | — | identifier |
| --previous-result-id | string | no | — | — | previous-result-id |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument documentColor [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument documentHighlight [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument documentLink [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument documentSymbol [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument foldingRange [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument formatting [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --formatting-tab-size | string | no | — | — | formatting-tab-size |
| --formatting-insert-spaces | string | no | — | — | formatting-insert-spaces |
| --formatting-trim-trailing-whitespace | string | no | — | — | formatting-trim-trailing-whitespace |
| --formatting-insert-final-newline | string | no | — | — | formatting-insert-final-newline |
| --formatting-trim-final-newlines | string | no | — | — | formatting-trim-final-newlines |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument hover [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument implementation [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument inlayHint [options] <file> <range>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
Arguments:
file (required) — file path (relative to --root)range (required) — range as startLine:col-endLine:col, e.g. 2:1-4:5Usage:
npx @lsproxy/cli textDocument inlineCompletion [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --inline-completion-trigger-kind | string | no | — | — | inline-completion-trigger-kind |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument inlineValue [options] <file> <range>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --inline-value-frame-id | string | no | — | — | inline-value-frame-id |
Arguments:
file (required) — file path (relative to --root)range (required) — range as startLine:col-endLine:col, e.g. 2:1-4:5Usage:
npx @lsproxy/cli textDocument linkedEditingRange [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument moniker [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument onTypeFormatting [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --ch | string | no | — | — | ch |
| --on-type-formatting-tab-size | string | no | — | — | on-type-formatting-tab-size |
| --on-type-formatting-insert-spaces | string | no | — | — | on-type-formatting-insert-spaces |
| --on-type-formatting-trim-trailing-whitespace | string | no | — | — | on-type-formatting-trim-trailing-whitespace |
| --on-type-formatting-insert-final-newline | string | no | — | — | on-type-formatting-insert-final-newline |
| --on-type-formatting-trim-final-newlines | string | no | — | — | on-type-formatting-trim-final-newlines |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument prepareCallHierarchy [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument prepareRename [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument prepareTypeHierarchy [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument rangeFormatting [options] <file> <range>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --range-formatting-tab-size | string | no | — | — | range-formatting-tab-size |
| --range-formatting-insert-spaces | string | no | — | — | range-formatting-insert-spaces |
| --range-formatting-trim-trailing-whitespace | string | no | — | — | range-formatting-trim-trailing-whitespace |
| --range-formatting-insert-final-newline | string | no | — | — | range-formatting-insert-final-newline |
| --range-formatting-trim-final-newlines | string | no | — | — | range-formatting-trim-final-newlines |
Arguments:
file (required) — file path (relative to --root)range (required) — range as startLine:col-endLine:col, e.g. 2:1-4:5Usage:
npx @lsproxy/cli textDocument rangesFormatting [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --ranges-formatting-tab-size | string | no | — | — | ranges-formatting-tab-size |
| --ranges-formatting-insert-spaces | string | no | — | — | ranges-formatting-insert-spaces |
| --ranges-formatting-trim-trailing-whitespace | string | no | — | — | ranges-formatting-trim-trailing-whitespace |
| --ranges-formatting-insert-final-newline | string | no | — | — | ranges-formatting-insert-final-newline |
| --ranges-formatting-trim-final-newlines | string | no | — | — | ranges-formatting-trim-final-newlines |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument references [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
| --references-include-declaration | string | no | — | — | references-include-declaration |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument rename [options] <file> <line:col> <newName>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7newName (required) — new symbol nameUsage:
npx @lsproxy/cli textDocument selectionRange [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument semanticTokens-full [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument semanticTokens-full-delta [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
| --previous-result-id | string | no | — | — | previous-result-id |
Arguments:
file (required) — file path (relative to --root)Usage:
npx @lsproxy/cli textDocument semanticTokens-range [options] <file> <range>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)range (required) — range as startLine:col-endLine:col, e.g. 2:1-4:5Usage:
npx @lsproxy/cli textDocument signatureHelp [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --signature-help-trigger-kind | string | no | — | — | signature-help-trigger-kind |
| --signature-help-trigger-character | string | no | — | — | signature-help-trigger-character |
| --signature-help-is-retrigger | string | no | — | — | signature-help-is-retrigger |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument typeDefinition [options] <file> <line:col>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
file (required) — file path (relative to --root)line:col (required) — 1-based position, e.g. 12:7Usage:
npx @lsproxy/cli textDocument willSaveWaitUntil [options] <file>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --reason | string | no | — | — | reason |
Arguments:
file (required) — file path (relative to --root)workspace operations
Usage:
npx @lsproxy/cli workspace [options] [command]
Usage:
npx @lsproxy/cli workspace diagnostic [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
Usage:
npx @lsproxy/cli workspace executeCommand [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
Usage:
npx @lsproxy/cli workspace symbol [options] <query>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
| --work-done-token | string | no | — | — | work-done-token |
| --partial-result-token | string | no | — | — | partial-result-token |
Arguments:
query (required) — search query stringUsage:
npx @lsproxy/cli workspace textDocumentContent [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
Usage:
npx @lsproxy/cli workspace willCreateFiles [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
Usage:
npx @lsproxy/cli workspace willDeleteFiles [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
Usage:
npx @lsproxy/cli workspace willRenameFiles [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
workspaceSymbol operations
Usage:
npx @lsproxy/cli workspaceSymbol [options] [command]
Usage:
npx @lsproxy/cli workspaceSymbol resolve [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | extra LSP params as JSON, deep-merged over positional args + flags (for raw methods, the full params) |
Send any LSP request by method name with raw JSON params
Usage:
npx @lsproxy/cli call [options] <method>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --params | string | no | — | — | LSP params as JSON |
Arguments:
method (required)Read/write LSP server config across platforms (lsp.json, Copilot CLI, Claude Code, Codex; VS Code is detected-but-unsupported)
Usage:
npx @lsproxy/cli config [options] [command]
List detected platforms and their configured servers
Usage:
npx @lsproxy/cli config list [options]
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --user | boolean | no | — | — | User-level config (~/.claude/lsp.json) instead of project |
Import a platform's LSP servers into lsp.json
Usage:
npx @lsproxy/cli config import [options] <platform>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --user | boolean | no | — | — | User-level config instead of project |
Arguments:
platform (required)Export lsp.json servers to a platform's native config
Usage:
npx @lsproxy/cli config export [options] <platform>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --user | boolean | no | — | — | User-level config instead of project |
Arguments:
platform (required)Diff lsp.json against a platform's config
Usage:
npx @lsproxy/cli config diff [options] <platform>
| Flag | Type | Required | Default | Env | Description |
| --- | --- | --- | --- | --- | --- |
| --user | boolean | no | — | — | User-level config instead of project |
Arguments:
platform (required)Manage the per-root proxy daemon (otherwise starts lazily on first request)
Usage:
npx @lsproxy/cli daemon [options] [command]
Start the proxy daemon for --root (no-op if already running)
Usage:
npx @lsproxy/cli daemon start [options]
Stop the proxy daemon for --root
Usage:
npx @lsproxy/cli daemon stop [options]
Show daemon status for --root
Usage:
npx @lsproxy/cli daemon status [options]
Show configured language servers grouped by process, with location and config source
Usage:
npx @lsproxy/cli status [options]
See references/docs/ for full guides (6 total).
Load these on demand — do NOT read all at once:
references/commands.md for flags, arguments, and defaultsreferences/docs/ by categorytools
API reference for 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
LSP server package for hosting Language Server Protocol (LSP) servers. Use when: The client sets `partialResultToken` in the request params and you want to....
tools
LSP client package for connecting to language servers. Use when: You are implementing a custom client layer and need the same validation....