Testing Changes
pnpm/pnpm
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…
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.
$ npx skills add weave-os/router --skill install-lsps -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install weave-os/router install-lsps --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "install-lsps" agent skill from https://github.com/weave-os/router/tree/main/install/pi-router/skills/install-lsps into .claude/skills/install-lsps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-lsps", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/weave-os/router/tree/main/install/pi-router/skills/install-lspsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add weave-os/router --skill install-lsps -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install weave-os/router install-lsps --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/weave-os/router.git skills-src && mkdir -p .agents/skills && cp -r skills-src/install/pi-router/skills/install-lsps .agents/skills/install-lsps && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "install-lsps" agent skill from https://github.com/weave-os/router/tree/main/install/pi-router/skills/install-lsps into .agents/skills/install-lsps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-lsps", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add weave-os/router --skill install-lsps -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install weave-os/router install-lsps --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/weave-os/router.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/install/pi-router/skills/install-lsps .cursor/skills/install-lsps && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "install-lsps" agent skill from https://github.com/weave-os/router/tree/main/install/pi-router/skills/install-lsps into .cursor/skills/install-lsps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-lsps", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/weave-os/router.git --path install/pi-router/skills/install-lsps--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add weave-os/router --skill install-lsps -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install weave-os/router install-lsps --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/weave-os/router.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/install/pi-router/skills/install-lsps .gemini/skills/install-lsps && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "install-lsps" agent skill from https://github.com/weave-os/router/tree/main/install/pi-router/skills/install-lsps into .gemini/skills/install-lsps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-lsps", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install weave-os/router install-lspsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add weave-os/router --skill install-lsps -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/weave-os/router.git skills-src && mkdir -p .github/skills && cp -r skills-src/install/pi-router/skills/install-lsps .github/skills/install-lsps && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "install-lsps" agent skill from https://github.com/weave-os/router/tree/main/install/pi-router/skills/install-lsps into .github/skills/install-lsps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-lsps", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add weave-os/router --skill install-lsps -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install weave-os/router install-lsps --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/weave-os/router.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/install/pi-router/skills/install-lsps .opencode/skills/install-lsps && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "install-lsps" agent skill from https://github.com/weave-os/router/tree/main/install/pi-router/skills/install-lsps into .opencode/skills/install-lsps/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install-lsps", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
install-lspsInstalls 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.
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.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 21c83ab. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
brewapt-getcurlshpythongonpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
sh.rustup.rsAlso links to:
go.devgithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
sudo apt-get install -y golang-go # Debian/Ubuntu; or dnf install golangsudo apt-get install -y nodejs npm # Debian/Ubuntucurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shAutomated 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.
The full file from weave-os/router at commit 21c83ab, republished under its Apache-2.0 licence (© weave-os). 317 words, ~745 tokens.
.claude/skills/install-lsps/SKILL.md (or your agent's skills folder).Enable the lsp tool for a language by installing its language server — and,
when the server install needs it, the underlying toolchain.
lsp_enable with {"language": "<language>", "action": "dismiss"}.lsp_enable tool over bash whenever the toolchain already
exists; reach for bash only for the prerequisites lsp_enable refuses to
install itself.Work the ladder for each language the user wants:
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.lsp_enable with
{"language": "<go|typescript|python|rust>"} and you are done; it runs the
right server install and verifies the binary resolves.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.Go (for gopls):
brew install go # macOS
sudo apt-get install -y golang-go # Debian/Ubuntu; or dnf install golangOr the official downloads at https://go.dev/dl for anything else.
Node/npm (for typescript-language-server and pyright):
brew install node # macOS
sudo apt-get install -y nodejs npm # Debian/UbuntuOr nvm (https://github.com/nvm-sh/nvm) when the user prefers per-user installs.
rustup (for rust-analyzer):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shThis is the official rust installer; show the user the command before running it and follow its printed PATH instructions afterwards.
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.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
Just SKILL.md in install/pi-router/skills/install-lsps of weave-os/router.
Open the folder on GitHubat commit 21c83ab
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Install Language Servers this skillweave-os/router | 5.6k | — | ~745 | Automated safety check: Notes | Apache-2.0 | |
| Testing Changespnpm/pnpm | 37k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Prepare Rslint npm Releaseweb-infra-dev/rslint | 460 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Swpm Code Reviewdeinsoftware/swpm | 125 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Pump Build Releasenirholas/pump-fun-sdk | 133 | — | ~620 | Automated safety check: Pass | Custom licence | |
| ReleaseBloom-Engine/engine | 134 | — | ~1.4k | Automated safety check: Notes | MIT |
pnpm/pnpm
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…
web-infra-dev/rslint
Prepare a stable release PR for the unified rslint npm packages by updating package versions and rule/TypeScript release metadata.
deinsoftware/swpm
Automated code review bash script for SWPM. An agent skill from deinsoftware/swpm.
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…
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
MaplePrivacyLabs/Maple
Develop and review the Maple TypeScript/React and Rust SDKs under Maple's sdk directory.
weave-os/router
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.
weave-os/router
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.
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.
weave-os/router
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.
weave-os/router
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.
weave-os/router
Shows when to answer a code question through a real language server instead of grep, covering definitions, references, hover, outlines, and errors.
Works with
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.