Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Agent Skills Language ServerNew to Visual Studio Code? Get it now.
Agent Skills Language Server

Agent Skills Language Server

Cyrus Nouroozi

|
2 installs
| (0) | Free
Go-to-definition, find-references, completion, and cross-file rename for agent skills (SKILL.md)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Agent Skills Language Server

/skill-name and $skill-name become real symbols — in Cursor, Antigravity, VSCodium, Windsurf, and VS Code.

▸ completion w/ descriptions on / and $
▸ "did you mean" on typos
▸ go to definition, find references
▸ F2 rename w/ editor undo — folder, frontmatter name:, and every reference update as one edit
▸ clickable links + semantic highlighting on resolved references

Your skill library now has tooling. Nothing else to install — the server is bundled.

Why

Skills, CLAUDE.md/AGENTS.md, and agent files reference each other by name — a dependency graph with all the refactoring hazards of code and none of the tooling. Rename a skill by hand and stale references look like ordinary prose: nothing errors, the agent silently stops loading the skill.

Quiet by design — a false reference in prose costs more than a missed one:

  • Fenced code blocks are never parsed; inline code spans are (that's how people write skill names in prose)
  • /usr/bin, $PATH, docs/ — never references, never popups
  • Near miss of a real skill (edit distance ≤ 2) → did you mean warning; other unresolved /name → info hint; unresolved $name → silent
  • Built-in commands (/help, /compact, …) and your own .claude/commands/.codex/prompts are commands, not skills — never flagged

It's a language server, not a linter — pair with skill-lint or agnix for structural/security linting.

How it scans

The server's world is the folder your editor opened — it never reads outside it. A rename touches exactly the tree you have open, never another checkout or your home directory. Open ~/.claude itself as a workspace to refactor your global library.

  • Skills = any **/skills/<name>/SKILL.md. Folder name is canonical; a disagreeing frontmatter name: is an error, not an alias
  • References are scanned in .md files under .claude/, .agents/, .codex/, or skills/, plus every CLAUDE.md/AGENTS.md. Markdown elsewhere is never touched
  • .skillignore (gitignore syntax, workspace root) excludes paths from everything
  • Multi-root workspaces: only the first folder is indexed

Other editors

The same server runs in Zed, Neovim 0.11+, and Helix — setup for each is in the repository.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft