Skip to content
Agent Orchestration
Skill

/lsp-guide

Recipes for the lsp tool — resolving where a symbol is defined, every place it is used, type signatures and docs, file outlines, and compiler/type errors through a real language server (Go, TypeScript/JavaScript, Python, Rust). Use when navigating or explaining code by symbol,

From plugin
router
5.6k3 skills14 commands

Claude Code

$ npx -y skills add weave-os/router --skill lsp-guide --agent claude-code

SKILL.md

lsp-guide.SKILL.md
name: lsp-guide
description: Recipes for the lsp tool — resolving where a symbol is defined, every place it is used, type signatures and docs, file outlines, and compiler/type errors through a real language server (Go, TypeScript/JavaScript, Python, Rust). Use when navigating or explaining code by symbol, finding callers or usages, checking what broke after an edit, or deciding between lsp and text search.

Using the lsp tool

The `lsp` tool answers *semantic* questions through the language's own server: it resolves through imports, types, and aliases, where grep only matches text. Reach for it whenever the question is about a **symbol**; keep grep for plain strings, comments, and file types no server supports.

Operations

| Operation | Answers | Needs | |---|---|---| | `definition` | where the symbol at a position is defined | `path`, `line`, `column` | | `references` | every place the symbol at a position is used | `path`, `line`, `column` | | `hover` | type signature + docs for the symbol at a position | `path`, `line`, `column` | | `documentSymbol` | the outline (types, functions, methods) of one file | `path` | | `diagnostics` | compiler/type errors and warnings for one file | `path` |

Positions are 1-based, and `column` must point **at the identifier** (its first character works). All paths resolve against the working directory.

Recipes

**"Where is X defined?"** — from any usage site of X: `{"operation": "definition", "path": "<file>", "line": <L>, "column": <C>}`. Don't know a usage site? Find one first (see next recipe's step 1).

**"Everywhere X is used"** — two steps, always:

1. Locate the declaration: `rg -n --column '\bX\b'` (the `--column` output is exactly the coordinate the next call needs), or `documentSymbol` when you already know the file. 2. `{"operation": "references", "path": "<decl file>", "line": <L>, "column": <C>}`.

A grep hit list is **not** a references answer: it includes comments and strings, misses aliased imports, and can't distinguish same-named symbols. Step 2 is what makes the answer authoritative.

**"What is this / what's its signature?"** — `hover` at the symbol. Prefer it over reading the definition file when you only need the type or doc comment.

**"What's in this file?"** — `documentSymbol` before reading a large file; jump straight to the line the outline gives you.

**"Did my edit break anything here?"** — `diagnostics` on the file after editing. It reports the server's current analysis of the saved file.

Behavior worth knowing

  • **First query per workspace is slow** (the server indexes — up to a minute

in a big repo). Later queries on that workspace are fast; don't give up after one timeout, retry once.

  • **References are capped** (default 100, header says how many exist).
  • **Unsupported file type or missing server** returns advice text, not an

error — fall back to grep for that file. A missing server can be installed with the user's consent via `lsp_enable` (see the install-lsps skill for toolchain prerequisites).

  • Works inside dispatch subagents too (they share the parent's warm servers),

so symbol lookups are safe to fan out.

Read more
@weave-os
Ships withrouter

Weave Router is a proxy that selects a model for each API request. It works with Anthropic, OpenAI, and Gemini APIs, so you can use it with coding tools or your own application. You can use the hosted router or run it yourself with your own provider keys.

Stars on GitHub

Momentum

stars in total
5.6k
Star history of weave-os/router on GitHub, a chart by star-history.com

Other skills on router.

install-lsps

install-lsps

Install language servers (gopls, typescript-language-server, pyright, rust-analyzer) and their prerequisite toolchains (Go,…

@weave-os@weave-osInstall Skill
build

build

Build a requested change end to end with routed subagents: research, interview, approval, implementation, verification,…

@weave-os@weave-osInstall Skill

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis11d393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca11d111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip11d109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about lsp-guide.

Which coding agents can use lsp-guide?
lsp-guide installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.