
Lsp Setup
Wire language servers into GitHub Copilot CLI so TypeScript, Java, and other stacks get completions and diagnostics in the agent session.
Overview
lsp-setup is an agent skill for the Build phase that documents install steps and Copilot CLI `lspServers` JSON for common language servers including TypeScript/JavaScript and Java JDTLS.
Install
npx skills add https://github.com/github/awesome-copilot --skill lsp-setupWhat is this skill?
- Reference catalog of known LSP servers with install commands split by OS (npm global, Homebrew jdtls, and distro paths)
- Copy-paste `lspServers` JSON snippets—TypeScript/JavaScript via typescript-language-server with .ts/.tsx/.js/.jsx mappin
- Documents merge pattern: sibling keys under one top-level `lspServers` object when adding multiple languages
- Java section calls out Eclipse JDTLS (jdtls) with Java 21+ on JAVA_HOME or PATH
- stdio `--stdio` args and fileExtensions blocks ready for Copilot CLI config files
- Documents typescript-language-server with four file extensions (.ts, .tsx, .js, .jsx)
- Java JDTLS section requires Java 21+ on JAVA_HOME or PATH
Adoption & trust: 699 installs on skills.sh; 34.6k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You enabled Copilot CLI but completions and go-to-definition fail because you do not know which LSP binary to install or how to shape the `lspServers` config per language.
Who is it for?
Solo builders standardizing Copilot CLI across TypeScript/JavaScript and JVM projects who want copy-paste configs instead of piecing together upstream READMEs.
Skip if: Teams on editors that manage LSP automatically (VS Code only, no Copilot CLI) or anyone who only needs a single-language setup with no multi-language merge guidance.
When should I use this skill?
Setting up or extending GitHub Copilot CLI language-server support for a new stack or fixing missing LSP diagnostics in CLI agent sessions.
What do I get? / Deliverables
You get OS-specific install commands and merge-ready JSON snippets under `lspServers` so the agent can write a complete Copilot CLI LSP config for your stack.
- Per-language LSP install command list for the target OS
- Merged `lspServers` JSON block ready to paste into Copilot CLI config
Recommended Skills
Journey fit
LSP setup is a one-time environment step while you are building and configuring the coding agent toolchain, not a launch or growth activity. Copilot CLI `lspServers` JSON and per-language install commands belong on the agent-tooling shelf alongside other agent IDE/runtime setup skills.
How it compares
Reference skill for Copilot CLI LSP wiring—not an MCP server and not a live LSP installer daemon.
Common Questions / FAQ
Who is lsp-setup for?
Indie and solo developers using GitHub Copilot CLI who need language-server install paths and config snippets for multiple languages in one place.
When should I use lsp-setup?
During Build agent-tooling setup when onboarding a machine, adding Java or TypeScript to an existing Copilot CLI config, or when diagnostics never appear in CLI sessions.
Is lsp-setup safe to install?
It is documentation-only procedural knowledge; review the Security Audits panel on this Prism page and vet any shell install commands before running them locally.
SKILL.md
READMESKILL.md - Lsp Setup
# Known LSP Servers for Copilot CLI Reference data for the `lsp-setup` skill. Each section contains install commands per OS and a ready-to-use config snippet. > **Config snippet format**: Each snippet below shows the object to insert as a value under the top-level `lspServers` key. A complete config file looks like: `{ "lspServers": { <snippet here> } }`. When adding multiple languages, merge their snippets as sibling keys under `lspServers`. --- ## TypeScript / JavaScript **Server**: [typescript-language-server](https://github.com/typescript-language-server/typescript-language-server) ### Install | OS | Command | |---------|-------------------------------------------------------| | Any | `npm install -g typescript typescript-language-server` | ### Config snippet ```json { "typescript": { "command": "typescript-language-server", "args": ["--stdio"], "fileExtensions": { ".ts": "typescript", ".tsx": "typescriptreact", ".js": "javascript", ".jsx": "javascriptreact" } } } ``` --- ## Java **Server**: [Eclipse JDT Language Server (jdtls)](https://github.com/eclipse-jdtls/eclipse.jdt.ls) Requires **Java 21+** on `JAVA_HOME` or `$PATH`. ### Install | OS | Command | |---------|-----------------------------------| | macOS | `brew install jdtls` | | Linux | Check distro repos for `jdtls` or `eclipse.jdt.ls`; alternatively download from https://download.eclipse.org/jdtls/milestones/ | | Windows | Download from https://download.eclipse.org/jdtls/milestones/ and add `bin/` to `PATH` | On macOS with Homebrew, the binary is installed as `jdtls` on `$PATH`. ### Config snippet ```json { "java": { "command": "jdtls", "args": [], "fileExtensions": { ".java": "java" } } } ``` > **Note**: The `jdtls` wrapper script handles `--stdio` mode internally. If using a manual install, you may need to invoke the launcher jar directly — see the [jdtls README](https://github.com/eclipse-jdtls/eclipse.jdt.ls#running-from-command-line-with-wrapper-script) for details. --- ## Python **Server**: [pyright](https://github.com/microsoft/pyright) ### Install | OS | Command | |---------|----------------------------| | Any | `npm install -g pyright` | | Any | `pip install pyright` | ### Config snippet ```json { "python": { "command": "pyright-langserver", "args": ["--stdio"], "fileExtensions": { ".py": "python" } } } ``` --- ## Go **Server**: [gopls](https://github.com/golang/tools/tree/master/gopls) ### Install | OS | Command | |---------|--------------------------------------------| | Any | `go install golang.org/x/tools/gopls@latest` | | macOS | `brew install gopls` | ### Config snippet ```json { "go": { "command": "gopls", "args": ["serve"], "fileExtensions": { ".go": "go" } } } ``` --- ## Rust **Server**: [rust-analyzer](https://github.com/rust-lang/rust-analyzer) ### Install | OS | Command | |---------|--------------------------------| | Any | `rustup component add rust-analyzer` | | macOS | `brew install rust-analyzer` | | Linux | Distribution package or `rustup` | | Windows | `rustup component add rust-analyzer` or download from GitHub releases | ### Config snippet ```json { "rust": { "command": "rust-analyzer", "args": [], "fileExtensions": { ".rs": "rust" } } } ``` --- ## C / C++ **Server**: [clangd](https://clangd.llvm.org/) ### Install | OS | Command | |---------|----------------------------------------| | macOS | `brew install llvm` (clangd included) or Xcode command line tools | | Linux | `apt install clangd` / `dnf install clang-tools-extra` | | Windows | Download LLVM from https://r