Agent skill

Install Language Servers

by weave-os in weave-os/router

Installs a language server such as gopls, typescript-language-server, pyright or rust-analyzer and, with explicit confirmation, its underlying toolchain so the lsp tool can use it.

Apache-2.0Auto-check: notesDevelopment

Install Install Language Servers

skills CLI
$ npx skills add weave-os/router --skill install-lsps -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install weave-os/router install-lsps --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/weave-os/router.git skills-src && mkdir -p .claude/skills && cp -r skills-src/install/pi-router/skills/install-lsps .claude/skills/install-lsps && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
install-lsps
GitHub stars
5.6k
Token cost
~745 tokens
SKILL.md length
317 words
Files
1
Skills in repo
19
Repo updated
First seen
Licence
Apache-2.0

At a glance

Installs a language server such as gopls, typescript-language-server, pyright or rust-analyzer and, with explicit confirmation, its underlying toolchain so the lsp tool can use it.

  • Works in 4 steps: Check what is missing. Server binaries:… → Toolchain present → call lsp_enable with → Toolchain missing → show the user the… → …
  • Enabling language server support for Go, TypeScript, Python or Rust
  • SKILL.md covers Rules, Per language, Toolchain installs (step 3… and Notes
  • Calls brew, apt-get and curl; reaches sh.rustup.rs

What it does

Every action here is consent-gated: nothing runs without the user's explicit go-ahead, and each toolchain install is confirmed separately from whatever task prompted it, since installing Go, Node or rustup is a system-level change. If the user declines, the skill stops, and a request not to be asked again calls lsp_enable with a dismiss action for that language.

For each language it checks whether the server binary is already present, including in ~/go/bin and ~/.cargo/bin which the lsp tool searches even off PATH, and whether the underlying toolchain (go, npm, rustup) exists. When the toolchain is present it calls lsp_enable, which runs the right server install and verifies the binary resolves.

When the toolchain is missing it shows the user the exact install command, such as a brew or apt-get line or the official rustup script, waits for confirmation, runs it, then returns to the lsp_enable step. It verifies success with a real documentSymbol query on an actual source file, noting that the first query per workspace can take up to a minute while the server indexes.

When your agent uses it

  • Enabling language server support for Go, TypeScript, Python or Rust
  • Fixing a missing toolchain reported by lsp_enable
  • Installing rust-analyzer, gopls or pyright and their prerequisites with confirmation at each step

Example prompts

  • “Enable the Go language server; install the toolchain if it's missing.”
  • “The lsp tool says no Rust language server is installed. Set it up.”
  • “Install pyright for this Python project and confirm with me before installing Node.”

Requirements

  • bash, to run toolchain installers with the user's confirmation

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Check what is missing. Server binaries: gopls,
  2. Toolchain present → call lsp_enable with
  3. Toolchain missing → show the user the command you intend to run, get
  4. Verify with a real lsp query (documentSymbol on an actual source

What it can do on your machine

Read from SKILL.md and the folder at commit 21c83ab. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • brew
    • apt-get
    • curl
    • sh
    • python
    • go
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • sh.rustup.rs

    Also links to:

    • go.dev
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Install Language Servers loads about 745 tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 317 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~90
When it runs · the whole SKILL.md, loaded when a task matches
~745

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteRuns commands with sudoSKILL.md:46
    sudo apt-get install -y golang-go   # Debian/Ubuntu; or dnf install golang
  • NoteRuns commands with sudoSKILL.md:55
    sudo apt-get install -y nodejs npm  # Debian/Ubuntu
  • NotePipes a well-known installer script into a shellSKILL.md:63
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from weave-os/router at commit 21c83ab, republished under its Apache-2.0 licence (© weave-os). 317 words, ~745 tokens.

Download SKILL.mdSave it as .claude/skills/install-lsps/SKILL.md (or your agent's skills folder).
name
install-lsps
description
Install language servers (gopls, typescript-language-server, pyright, rust-analyzer) and their prerequisite toolchains (Go, Node/npm, rustup) so the lsp tool works. Use when the user asks to enable or install LSP / language-server support, when lsp_enable reports a missing toolchain, or when the lsp tool reports no language server is installed.

Install LSPs

Enable the lsp tool for a language by installing its language server — and, when the server install needs it, the underlying toolchain.

Rules

  • Everything here is consent-gated: only act on the user's explicit go-ahead, and confirm each toolchain install separately — those are system-level changes, not part of whatever task prompted this.
  • If the user declines, stop. If they ask not to be offered again, call lsp_enable with {"language": "<language>", "action": "dismiss"}.
  • Prefer the lsp_enable tool over bash whenever the toolchain already exists; reach for bash only for the prerequisites lsp_enable refuses to install itself.

Per language

Work the ladder for each language the user wants:

  1. Check what is missing. Server binaries: gopls, typescript-language-server, pyright-langserver (or basedpyright-langserver), rust-analyzer — also look in ~/go/bin and ~/.cargo/bin, which the lsp tool searches even when they are off PATH. Toolchains: go, npm, rustup.
  2. Toolchain present → call lsp_enable with {"language": "<go|typescript|python|rust>"} and you are done; it runs the right server install and verifies the binary resolves.
  3. Toolchain missing → show the user the command you intend to run, get their confirmation, run it in bash, then return to step 2.
  4. Verify with a real lsp query (documentSymbol on an actual source file). The first query per workspace can take up to a minute while the server indexes; that is normal.

Toolchain installs (step 3 reference)

Go (for gopls):

bash
brew install go            # macOS
sudo apt-get install -y golang-go   # Debian/Ubuntu; or dnf install golang

Or the official downloads at https://go.dev/dl for anything else.

Node/npm (for typescript-language-server and pyright):

bash
brew install node          # macOS
sudo apt-get install -y nodejs npm  # Debian/Ubuntu

Or nvm (https://github.com/nvm-sh/nvm) when the user prefers per-user installs.

rustup (for rust-analyzer):

bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

This is the official rust installer; show the user the command before running it and follow its printed PATH instructions afterwards.

Notes

  • go install drops gopls in ~/go/bin and rustup drops rust-analyzer in ~/.cargo/bin. The lsp tool finds both without PATH changes; other tools may still want a PATH entry.
  • All of this can also happen at install time: npx @weave-os/router --pi --lsp go,typescript,python,rust.

© weave-os, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in install/pi-router/skills/install-lsps of weave-os/router.

Open the folder on GitHubat commit 21c83ab

Compare with similar skills

Install Language Servers next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Install Language Servers compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Install Language Servers this skillweave-os/router5.6k—~745Automated safety check: NotesApache-2.0
Testing Changespnpm/pnpm37k—~1.1kAutomated safety check: PassMIT
Prepare Rslint npm Releaseweb-infra-dev/rslint460—~1.5kAutomated safety check: PassMIT
Swpm Code Reviewdeinsoftware/swpm125—~1.1kAutomated safety check: PassMIT
Pump Build Releasenirholas/pump-fun-sdk133—~620Automated safety check: PassCustom licence
ReleaseBloom-Engine/engine134—~1.4kAutomated safety check: NotesMIT

Similar skills

  • Run the tests that cover a change in the pnpm repository, in the Rust workspace (pnpm/, pnpr/) or the TypeScript CLI (pnpm11/), and recognize the cases where a scoped run passes without testing…

    37k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Prepare Rslint npm Release

    web-infra-dev/rslint

    Prepare a stable release PR for the unified rslint npm packages by updating package versions and rule/TypeScript release metadata.

    460 GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Swpm Code Review

    deinsoftware/swpm

    Automated code review bash script for SWPM. An agent skill from deinsoftware/swpm.

    125 GitHub stars~1.1k tokensUpdated 4 mo ago
    DevelopmentAuto-check passed
  • Pump Build Release

    nirholas/pump-fun-sdk

    Build and release pipeline for the Pump SDK — tsup TypeScript builds, Cargo release profiles, semantic release with commitizen, npm publishing, linting, Makefile targets, Vercel deployment, and MCP…

    133 GitHub stars~620 tokensUpdated 18 days ago
    DevelopmentAuto-check passed
  • Release

    Bloom-Engine/engine

    Cut a new Bloom Engine release — bump package.json if requested, commit, tag, push, create GitHub Release, and watch the gated release pipeline

    134 GitHub stars~1.4k tokensUpdated 26 days ago
    Game DevelopmentAuto-check: notes
  • Develop Opensecret SDK

    MaplePrivacyLabs/Maple

    Develop and review the Maple TypeScript/React and Rust SDKs under Maple's sdk directory.

    100 GitHub stars~1.8k tokensUpdated today
    Backend & APIsAuto-check passed

More from weave-os/router

All 19 skills in this repo
  • Stands up the Weave model router in Docker Compose and drives it with claude -p against a real or mocked upstream to reproduce and verify routing and streaming behavior.

    5.6k GitHub stars~3.1k tokensUpdated today
    Auto-check: notes
  • Local test harness for the Weave router: a docker compose stack plus codex exec runs that confirm how Codex requests are routed, translated and marked.

    5.6k GitHub stars~4.7k tokensUpdated today
    Auto-check: notes
  • PR Merge Ready

    weave-os/router

    Works through every review comment on a pull request in one pass, fixes what it can, escalates human decisions and keeps CI churn to a single push.

    5.6k GitHub stars~10k tokensUpdated today
    Auto-check passed
  • Correlates a Claude Code session's local transcript with a model router's production cloud logs to explain why a specific response rendered the way it did.

    5.6k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Correlates a Codex CLI session's local transcript with a model router's production logs to explain why a reply rendered the way it did.

    5.6k GitHub stars~4.5k tokensUpdated today
    Auto-check: warnings
  • Shows when to answer a code question through a real language server instead of grep, covering definitions, references, hover, outlines, and errors.

    5.6k GitHub stars~794 tokensUpdated today
    Auto-check passed

Categories

Questions about Install Language Servers

What does Install Language Servers do?

Installs a language server such as gopls, typescript-language-server, pyright or rust-analyzer and, with explicit confirmation, its underlying toolchain so the lsp tool can use it. Every action here is consent-gated: nothing runs without the user's explicit go-ahead, and each toolchain install is confirmed separately from whatever task prompted it, since installing Go, Node or rustup is a system-level change. If the user declines, the skill stops, and a request not to be asked again calls lsp_enable with a dismiss action for that language.

When should I use Install Language Servers?

Install Language Servers fits situations like: enabling language server support for Go, TypeScript, Python or Rust; fixing a missing toolchain reported by lsp_enable; installing rust-analyzer, gopls or pyright and their prerequisites with confirmation at each step.

How do I install Install Language Servers in Claude Code?

Run `npx skills add weave-os/router --skill install-lsps -a claude-code`. Or copy the skill folder (install/pi-router/skills/install-lsps in weave-os/router) into .claude/skills/install-lsps in your project. Claude Code loads it when a task matches its description.

How do I install Install Language Servers in Codex?

Run `npx skills add weave-os/router --skill install-lsps -a codex`. Or copy the skill folder (install/pi-router/skills/install-lsps in weave-os/router) into .agents/skills/install-lsps in your project. Codex loads it when a task matches its description.

Can I use Install Language Servers in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add weave-os/router --skill install-lsps -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/install-lsps, .gemini/skills/install-lsps, .github/skills/install-lsps and .opencode/skills/install-lsps in your project.

What does Install Language Servers need to run?

Going by SKILL.md and its folder, Install Language Servers needs the command-line tools its instructions call (brew, apt-get, curl, sh, python and go). Our summary lists: bash, to run toolchain installers with the user's confirmation.

Does Install Language Servers access the network?

SKILL.md names 3 domains. In commands or code: sh.rustup.rs; the agent is likely to contact it when it follows the instructions. As links in the text: go.dev and github.com. This is read from the text; nothing was executed.

Is Install Language Servers safe to install?

Our automated static check of SKILL.md found notes only (runs commands with sudo; pipes a well-known installer script into a shell), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Install Language Servers use?

Install Language Servers is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Install Language Servers use?

About 745 tokens (SKILL.md is roughly 3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Install Language Servers?

Skills that share tags, products or a category with Install Language Servers: Testing Changes (pnpm/pnpm, 37k stars), Prepare Rslint npm Release (web-infra-dev/rslint, 460 stars), Swpm Code Review (deinsoftware/swpm, 125 stars) and Pump Build Release (nirholas/pump-fun-sdk, 133 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Install Language Servers?

weave-os (a GitHub organization) maintains it in weave-os/router, which has 5,575 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 7, 2026.

Source: weave-os/router on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.