Adds a new skill that helps users install and configure Language Server Protocol servers for GitHub Copilot CLI. Includes: - Interactive workflow: detect OS, install server, write config, verify - Bundled reference with 14 languages (Java/jdtls, TypeScript, Python, Go, Rust, C/C++, C#, Ruby, PHP, Kotlin, Swift, Lua, YAML, Bash) - Per-OS install commands and ready-to-use lsp-config.json snippets - Support for both user-level and repo-level configuration Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
8.6 KiB
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.
TypeScript / JavaScript
Server: typescript-language-server
Install
| OS | Command |
|---|---|
| Any | npm install -g typescript-language-server |
Config snippet
{
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"fileExtensions": {
".ts": "typescript",
".tsx": "typescriptreact",
".js": "javascript",
".jsx": "javascriptreact"
}
}
}
Java
Server: Eclipse JDT Language Server (jdtls)
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
{
"java": {
"command": "jdtls",
"args": [],
"fileExtensions": {
".java": "java"
}
}
}
Note
: The
jdtlswrapper script handles--stdiomode internally. If using a manual install, you may need to invoke the launcher jar directly — see the jdtls README for details.
Python
Server: pylsp (python-lsp-server)
Install
| OS | Command |
|---|---|
| Any | pip install python-lsp-server |
| macOS | brew install python-lsp-server |
Config snippet
{
"python": {
"command": "pylsp",
"args": [],
"fileExtensions": {
".py": "python"
}
}
}
Alternative: Pyright
Server: pyright (via basedpyright or pyright)
| OS | Command |
|---|---|
| Any | npm install -g pyright |
| Any | pip install basedpyright (for basedpyright fork) |
{
"python": {
"command": "pyright-langserver",
"args": ["--stdio"],
"fileExtensions": {
".py": "python"
}
}
}
Go
Server: gopls
Install
| OS | Command |
|---|---|
| Any | go install golang.org/x/tools/gopls@latest |
| macOS | brew install gopls |
Config snippet
{
"go": {
"command": "gopls",
"args": ["serve"],
"fileExtensions": {
".go": "go"
}
}
}
Rust
Server: 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
{
"rust": {
"command": "rust-analyzer",
"args": [],
"fileExtensions": {
".rs": "rust"
}
}
}
C / C++
Server: clangd
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://releases.llvm.org/ |
Config snippet
{
"cpp": {
"command": "clangd",
"args": ["--background-index"],
"fileExtensions": {
".c": "c",
".h": "c",
".cpp": "cpp",
".cxx": "cpp",
".cc": "cpp",
".hpp": "cpp",
".hxx": "cpp"
}
}
}
C# (.NET)
Server: OmniSharp or csharp-ls
Install (csharp-ls)
| OS | Command |
|---|---|
| Any | dotnet tool install --global csharp-ls |
Config snippet
{
"csharp": {
"command": "csharp-ls",
"args": [],
"fileExtensions": {
".cs": "csharp"
}
}
}
Ruby
Server: solargraph
Install
| OS | Command |
|---|---|
| Any | gem install solargraph |
Config snippet
{
"ruby": {
"command": "solargraph",
"args": ["stdio"],
"fileExtensions": {
".rb": "ruby",
".rake": "ruby",
".gemspec": "ruby"
}
}
}
PHP
Server: intelephense
Install
| OS | Command |
|---|---|
| Any | npm install -g intelephense |
Config snippet
{
"php": {
"command": "intelephense",
"args": ["--stdio"],
"fileExtensions": {
".php": "php"
}
}
}
Kotlin
Server: kotlin-language-server
Install
| OS | Command |
|---|---|
| macOS | brew install kotlin-language-server |
| Any | Download from GitHub releases and add to PATH |
Config snippet
{
"kotlin": {
"command": "kotlin-language-server",
"args": [],
"fileExtensions": {
".kt": "kotlin",
".kts": "kotlin"
}
}
}
Swift
Server: sourcekit-lsp (bundled with Swift toolchain)
Install
| OS | Command |
|---|---|
| macOS | Included with Xcode; binary at xcrun sourcekit-lsp |
| Linux | Included with Swift toolchain; install from https://swift.org |
Config snippet
{
"swift": {
"command": "sourcekit-lsp",
"args": [],
"fileExtensions": {
".swift": "swift"
}
}
}
On macOS you may need to use the full path:
/usr/bin/sourcekit-lspor setcommandtoxcrunwithargs: ["sourcekit-lsp"].
Lua
Server: lua-language-server
Install
| OS | Command |
|---|---|
| macOS | brew install lua-language-server |
| Linux | Download from GitHub releases |
| Windows | Download from GitHub releases |
Config snippet
{
"lua": {
"command": "lua-language-server",
"args": [],
"fileExtensions": {
".lua": "lua"
}
}
}
YAML
Server: yaml-language-server
Install
| OS | Command |
|---|---|
| Any | npm install -g yaml-language-server |
Config snippet
{
"yaml": {
"command": "yaml-language-server",
"args": ["--stdio"],
"fileExtensions": {
".yaml": "yaml",
".yml": "yaml"
}
}
}
Bash / Shell
Server: bash-language-server
Install
| OS | Command |
|---|---|
| Any | npm install -g bash-language-server |
Config snippet
{
"bash": {
"command": "bash-language-server",
"args": ["start"],
"fileExtensions": {
".sh": "shellscript",
".bash": "shellscript",
".zsh": "shellscript"
}
}
}