lsp-setup
Skill4 starsChanged 6 months agoMITView on GitHub
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.
6 other projects use a version of this, 2 of them edited.
Adopted by
Most recently taken up by
- github/awesome-copilotedited, first seen Oct 25, 2026
- microsoft/devsquad-copilottheir own version, first seen Oct 20, 2026
- Robbyfree24/ai-dev-pipeline-their own version, first seen Oct 20, 2026
- wjgoarxiv/litopencodetheir own version, first seen Oct 13, 2026
- trac3r00/agent-skillstheir own version, first seen Aug 26, 2026
- ReaperOAK/ForgeOSedited, first seen Jun 8, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 2
- github/awesome-copilot★ 41k66% same
- ReaperOAK/ForgeOS★ 076% same
Wrote their own version · 4
- microsoft/devsquad-copilot★ 50same name
- wjgoarxiv/litopencode★ 2same name
- Robbyfree24/ai-dev-pipeline-★ 0same name
- trac3r00/agent-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository124 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/AGENTS.mdAGENTS.md
- .github/workflows/AGENTS.mdAGENTS.md
- .vscode/AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- agent-log-analysisSkill
- agent-mdSkill
- agent-md-writerSkill
- agent-skill-md-writerSkill
- agentskillsSkill
- agents-md-writerSkill
- ai-prompt-writerSkill
- ansibleSkill
- apache-airflow-apiSkill
- apache-airflow-dagsSkill
- astro-cliSkill
- astronomer-docsSkill
- awesome-copilotSkill
- brainstorm-agent-runsSkill
- brainstorm-github-prSkill
- brainstormSkill
- catSkill
- chrome-devtoolsSkill
- claude-docsSkill
- codeqlSkill
- code-reviewSkill
- code-tourSkill
- coding-standard-writerSkill
- context-aware-opsSkill
- copilot-cliSkill
- copilot-docsSkill
- critical-thinkingSkill
- datadog-agentSkill
- datadog-apiSkill
- datadog-mcpSkill
- datadog-monitorsSkill
- datadog-pulumiSkill
- devcontainerSkill
- dictationSkill
- direnvSkill
- dockerfileSkill
- dockerSkill
- docs-reviewSkill
- docs-writerSkill
- dot-claudeSkill
- dotfilesSkill
- dot-githubSkill
- editorconfigSkill
- fact-writerSkill
- gdpr-compliantSkill
- gh-agent-taskSkill
- gh-apiSkill
- gh-aw-compileSkill
- gh-aw-firewall-debugSkill
- gh-aw-firewallSkill
- gh-aw-newSkill
- gh-awSkill
- gh-aw-troubleshootingSkill
- gh-codespaceSkill
- gh-issueSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. 0 are common, 12 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
12
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
When the user asks to enable code intelligence, go-to-definition, or hover information for Copilot CLI.
- Distinctive: line 16
When configuring a new development environment that lacks Language Server Protocol support.
- Distinctive: line 17
If Copilot CLI fails to provide contextual code completions due to a missing language server.
- Distinctive: line 21
When configuring LSP servers for a full IDE like VS Code or Neovim (this is specifically for Copilot CLI).
- Distinctive: line 22
If the language does not have a widely supported or functioning Language Server Protocol implementation.
- Very specific: line 43
Always use ask_user with choices when asking the user to pick a language or scope.
- Very specific: line 44
If the language is not listed in references/lsp-servers.md, search the web for "<language> LSP server" and guide the user through manual …
- Distinctive: line 45
If a package manager is not available (e.g.
- Very specific: line 46
After installation, run which <binary> (or where.exe on Windows) to confirm the binary is accessible.
- Distinctive: line 48
If the config file already exists, read it first and merge — do not clobber.
- Distinctive: line 78
When merging into an existing file, never overwrite other server entries — only add or update the target language key.
- Distinctive: line 82
After setup, tell the user:
- Very specific: line 86
Run /lsp to check the server status.
- Distinctive: line 91
Do not overwrite existing servers inside the configuration.
- Distinctive: line 92
Do not assume a package manager is installed.
- Distinctive: line 93
Do not use for IDE/editor LSP configuration, only for Copilot CLI setups.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
LSP Setup for GitHub Copilot CLI
<!-- markdownlint-disable MD013 MD023 MD031 MD032 -->UTILITY SKILL — installs and configures Language Server Protocol servers for Copilot CLI.
When to Use
- When the user asks to enable code intelligence, go-to-definition, or hover information for Copilot CLI.
- When configuring a new development environment that lacks Language Server Protocol support.
- If Copilot CLI fails to provide contextual code completions due to a missing language server.
When Not to Use
- When configuring LSP servers for a full IDE like VS Code or Neovim (this is specifically for Copilot CLI).
- If the language does not have a widely supported or functioning Language Server Protocol implementation.
- For simple syntax highlighting tasks.
Common Pitfalls
- Missing Binary on PATH: Configuring the LSP JSON correctly but failing to ensure the installed binary is actually accessible in the system
$PATH. - Overwriting Configs: Using
>to write the config file instead of safely merging, thereby destroying previously configured LSP servers for other languages. - Forgetting to Restart: Assuming the new configuration takes effect immediately without instructing the user to exit and restart the Copilot CLI session.
Core Process
- Ask the language — use
ask_userto ask which programming language(s) the user wants LSP support for. - Detect the OS — run
uname -s(or check for Windows via$env:OS/%OS%) to determine macOS, Linux, or Windows. - Look up the LSP server — read
references/lsp-servers.mdfor known servers, install commands, and config snippets. - Ask scope — use
ask_userto ask whether the config should be user-level (~/.copilot/lsp-config.json) or repo-level (lsp.jsonat the repo root or.github/lsp.json). - Install the server — run the appropriate install command for the detected OS.
- Write the config — merge the new server entry into the chosen config file (
~/.copilot/lsp-config.jsonfor user-level;lsp.jsonor.github/lsp.jsonfor repo-level). Create the file if missing and preserve existing entries. - Verify — confirm the LSP binary is on
$PATHand the config file is valid JSON.
Core Principles
- Always use
ask_userwithchoiceswhen asking the user to pick a language or scope. - If the language is not listed in
references/lsp-servers.md, search the web for"<language> LSP server"and guide the user through manual configuration. - If a package manager is not available (e.g. no Homebrew on macOS), suggest alternative install methods from the reference file.
- After installation, run
which <binary>(orwhere.exeon Windows) to confirm the binary is accessible. - Show the user the final config JSON before writing it.
- If the config file already exists, read it first and merge — do not clobber.
Commands / Usage Patterns
Copilot CLI reads LSP configuration from user-level or repo-level locations, and repo-level config takes precedence over user-level config:
- User-level:
~/.copilot/lsp-config.json - Repo-level:
lsp.json(repo root) or.github/lsp.json
The JSON structure:
{
"lspServers": {
"<server-key>": {
"command": "<binary>",
"args": ["--stdio"],
"fileExtensions": {
".<ext>": "<languageId>",
".<ext2>": "<languageId>"
}
}
}
}commandis the binary name (must be on$PATH) or an absolute path.argsalmost always includes"--stdio"to use standard I/O transport.fileExtensionsmaps each file extension (with leading dot) to a Language ID.- Multiple servers can coexist in
lspServers. - When merging into an existing file, never overwrite other server entries — only add or update the target language key.
Diagnostics and Troubleshooting
After setup, tell the user:
- Type
/exitto quit Copilot CLI — this is required so the new LSP configuration is loaded on next launch. - Re-launch
copilotin a project with files of the configured language. - Run
/lspto check the server status. - Try code intelligence features like go-to-definition or hover.
What to Avoid
- Do not overwrite existing servers inside the configuration.
- Do not assume a package manager is installed; verify first.
- Do not use for IDE/editor LSP configuration, only for Copilot CLI setups.
Limitations
- Some LSP servers might require additional dependencies (like Node.js, Python) which should be checked.
References
copilot-cli/set-up-copilot-clilsp-setup/SKILL.md- Adding LSP servers for GitHub Copilot CLI
- Using LSP servers with GitHub Copilot CLI
Related Skills
- critical-thinking: You MUST load this skill when troubleshooting why an LSP isn't working or properly registering.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

