All skills
github avatar

/lsp-setup

@9d8c98e official
by githubgithub/awesome-copilot40k stars
5,040

Enable code intelligence (go-to-definition, find-references, hover, type info) for any programming language by installing and configuring an LSP server for Copilot CLI. Detects the OS, installs the right server, and generates the JSON configuration (user-level or repo-level). Use when you need deeper code understanding and no LSP server is configured, or when the user asks to set up, install, or configure an LSP server.

Use this Skill: https://skilld.dev/gh/github/awesome-copilot/lsp-setup

This session only. Nothing lands on disk.

referenceslsp-servers.md

≈2.2k tokens on demand. Your agent reads this file only when SKILL.md points to it.

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

Install

OS Command
Any npm install -g typescript 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 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 for details.


Python

Server: pyright

Install

OS Command
Any npm install -g pyright
Any pip install pyright

Config snippet

{
  "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: Roslyn Language Server (via dotnet dnx)

Install

OS Command
Any Requires the .NET SDK installed

Config snippet

{
  "csharp": {
    "command": "dotnet",
    "args": ["dnx", "roslyn-language-server", "--yes", "--prerelease", "--", "--stdio", "--autoLoadProjects"],
    "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
Windows 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-lsp or set command to xcrun with args: ["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"
    }
  }
}

Source: SKILL.md on GitHub

1 warning16d4 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    The skill is a configuration utility designed to set up Language Server Protocol (LSP) servers for the GitHub Copilot CLI. It uses standard package managers and official software sources to install the necessary tools and manages configuration files in a way that preserves existing user settings.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: MEDIUM · 1 issue

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 9d8c98e. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 6 months ago
  • TypeScript
  • Python
  • lsp
  • language-server
  • copilot-cli
  • code-intelligence
  • setup
  • configuration
  • go-to-definition
  • java

README badge

README badge for github/awesome-copilot/lsp-setup

Installs and configures Language Server Protocol servers for Copilot CLI, enabling go-to-definition, find-references, and hover information. Detects the OS, installs the appropriate LSP binary, and writes the configuration (user-level or repo-level) in the format Copilot CLI expects.

Generated from the current SKILL.md.

Does this configure LSP for my editor or IDE?
No. This skill configures LSP servers specifically for Copilot CLI, not for VS Code, Neovim, or other editors. Use it when you need code intelligence features (go-to-definition, find-references, hover) within the Copilot CLI workflow.
What happens if my language isn't in the reference file?
The skill searches the web for a suitable LSP server for that language and guides you through manual configuration with the JSON format.
Can I have multiple language servers configured at once?
Yes. The JSON structure supports multiple servers in the same `lspServers` object, and the skill merges new entries without overwriting existing ones.
Do I need to restart Copilot CLI after setup?
Yes. You must type `/exit` to quit Copilot CLI so the new LSP configuration is loaded on the next launch.
Can I use both user-level and repo-level LSP config?
Yes. Repo-level config takes precedence over user-level, so you can set defaults at user-level and override them per repository.

Generated from the current SKILL.md. These answers refresh after source changes.