{"id":"c2e5e559-6839-43f1-a8a8-6967f49c3fb4","shortId":"bsWDW6","kind":"skill","title":"lsp-setup","tagline":"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","description":"# LSP Setup for GitHub Copilot CLI\n\n**UTILITY SKILL** — installs and configures Language Server Protocol servers for Copilot CLI.\nUSE FOR: \"setup LSP\", \"install language server\", \"configure LSP for Java\", \"add TypeScript LSP\", \"enable code intelligence\", \"I need go-to-definition\", \"find references not working\", \"need better code understanding\"\nDO NOT USE FOR: general coding tasks, IDE/editor LSP configuration, non-Copilot-CLI setups\n\n## Workflow\n\n1. **Ask the language** — use `ask_user` to ask which programming language(s) the user wants LSP support for\n2. **Detect the OS** — run `uname -s` (or check for Windows via `$env:OS` / `%OS%`) to determine macOS, Linux, or Windows\n3. **Look up the LSP server** — read `references/lsp-servers.md` for known servers, install commands, and config snippets\n4. **Ask scope** — use `ask_user` to ask whether the config should be user-level (`~/.copilot/lsp-config.json`) or repo-level (`lsp.json` at the repo root or `.github/lsp.json`)\n5. **Install the server** — run the appropriate install command for the detected OS\n6. **Write the config** — merge the new server entry into the chosen config file (`~/.copilot/lsp-config.json` for user-level; `lsp.json` or `.github/lsp.json` for repo-level). If a repo-level config already exists, keep using that location; otherwise ask the user which repo-level location they prefer. Create the file if missing and preserve existing entries.\n7. **Verify** — confirm the LSP binary is on `$PATH` and the config file is valid JSON\n\n## Configuration Format\n\nCopilot CLI reads LSP configuration from user-level or repo-level locations, and repo-level config takes precedence over user-level config:\n\n- **User-level**: `~/.copilot/lsp-config.json`\n- **Repo-level**: `lsp.json` (repo root) or `.github/lsp.json`\n\nThe JSON structure:\n\n```json\n{\n  \"lspServers\": {\n    \"<server-key>\": {\n      \"command\": \"<binary>\",\n      \"args\": [\"--stdio\"],\n      \"fileExtensions\": {\n        \".<ext>\": \"<languageId>\",\n        \".<ext2>\": \"<languageId>\"\n      }\n    }\n  }\n}\n```\n\n### Key rules\n\n- `command` is the binary name (must be on `$PATH`) or an absolute path.\n- `args` almost always includes `\"--stdio\"` to use standard I/O transport.\n- `fileExtensions` maps each file extension (with leading dot) to a [Language ID](https://code.visualstudio.com/docs/languages/identifiers#_known-language-identifiers).\n- Multiple servers can coexist in `lspServers`.\n- When merging into an existing file, **never overwrite** other server entries — only add or update the target language key.\n\n## Behavior\n\n- Always use `ask_user` with `choices` when asking the user to pick a language or scope.\n- 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.\n- If a package manager is not available (e.g. no Homebrew on macOS), suggest alternative install methods from the reference file.\n- After installation, run `which <binary>` (or `where.exe` on Windows) to confirm the binary is accessible.\n- Show the user the final config JSON before writing it.\n- If the config file already exists, read it first and merge — do not clobber.\n\n## Verification\n\nAfter setup, tell the user:\n\n1. Type `/exit` to quit Copilot CLI — this is **required** so the new LSP configuration is loaded on next launch\n2. Re-launch `copilot` in a project with files of the configured language\n3. Run `/lsp` to check the server status\n4. Try code intelligence features like go-to-definition or hover","tags":["lsp","setup","awesome","copilot","github","agent-skills","agents","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"capabilities":["skill","source-github","skill-lsp-setup","topic-agent-skills","topic-agents","topic-awesome","topic-custom-agents","topic-github-copilot","topic-hacktoberfest","topic-prompt-engineering"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/lsp-setup","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add github/awesome-copilot","source_repo":"https://github.com/github/awesome-copilot","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 30743 github stars · SKILL.md body (3,516 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:52:11.943Z","embedding":null,"createdAt":"2026-04-18T21:50:02.825Z","updatedAt":"2026-04-22T00:52:11.943Z","lastSeenAt":"2026-04-22T00:52:11.943Z","tsv":"'/.copilot/lsp-config.json':188,227,318 '/docs/languages/identifiers#_known-language-identifiers).':375 '/exit':505 '/lsp':539 '1':116,503 '2':135,523 '3':156,537 '4':172,545 '5':200 '6':213 '7':271 'absolut':349 'access':472 'add':80,394 'almost':352 'alreadi':245,487 'altern':452 'alway':353,402 'appropri':206 'arg':333,351 'ask':117,121,124,173,176,179,252,404,409 'avail':445 'behavior':401 'better':97 'binari':276,341,470 'check':143,541 'choic':407 'chosen':224 'cli':30,56,68,113,290,509 'clobber':496 'code':5,84,98,105,547 'code.visualstudio.com':374 'code.visualstudio.com/docs/languages/identifiers#_known-language-identifiers).':373 'coexist':379 'command':168,208,332,338 'config':170,182,216,225,244,282,307,314,478,485 'configur':24,42,61,76,109,287,293,438,517,535 'confirm':273,468 'copilot':29,55,67,112,289,508,527 'creat':262 'definit':10,91,554 'detect':31,136,211 'determin':151 'dot':368 'e.g':446 'enabl':4,83 'entri':221,270,392 'env':147 'exist':246,269,386,488 'extens':365 'featur':549 'file':226,264,283,364,387,458,486,532 'fileextens':335,361 'final':477 'find':12,92 'find-refer':11 'first':491 'format':288 'general':104 'generat':39 'github':54 'github/lsp.json':199,234,326 'go':8,89,552 'go-to-definit':7,88,551 'guid':433 'homebrew':448 'hover':14,556 'i/o':359 'id':372 'ide/editor':107 'includ':354 'info':16 'instal':22,34,59,73,167,201,207,453,460 'intellig':6,85,548 'java':79 'json':41,286,328,330,479 'keep':247 'key':336,400 'known':165 'languag':20,62,74,119,127,371,399,415,420,536 'launch':522,526 'lead':367 'level':45,49,187,192,231,238,243,258,297,301,306,313,317,321 'like':550 'linux':153 'list':423 'load':519 'locat':250,259,302 'look':157 'lsp':2,26,51,72,77,82,108,132,160,275,292,430,516 'lsp-setup':1 'lsp.json':193,232,322 'lspserver':331,381 'maco':152,450 'manag':442 'manual':437 'map':362 'merg':217,383,493 'method':454 'miss':266 'multipl':376 'must':343 'name':342 'need':87,96 'never':388 'new':219,515 'next':521 'non':111 'non-copilot-c':110 'os':33,138,148,149,212 'otherwis':251 'overwrit':389 'packag':441 'path':279,346,350 'pick':413 'preced':309 'prefer':261 'preserv':268 'program':19,126 'project':530 'protocol':64 'quit':507 're':525 're-launch':524 'read':162,291,489 'refer':13,93,457 'references/lsp-servers.md':163,425 'repo':48,191,196,237,242,257,300,305,320,323 'repo-level':47,190,236,241,256,299,304,319 'requir':512 'right':36 'root':197,324 'rule':337 'run':139,204,461,538 'scope':174,417 'search':426 'server':27,37,63,65,75,161,166,203,220,377,391,431,543 'setup':3,52,71,114,499 'show':473 'skill':58 'skill-lsp-setup' 'snippet':171 'source-github' 'standard':358 'status':544 'stdio':334,355 'structur':329 'suggest':451 'support':133 'take':308 'target':398 'task':106 'tell':500 'topic-agent-skills' 'topic-agents' 'topic-awesome' 'topic-custom-agents' 'topic-github-copilot' 'topic-hacktoberfest' 'topic-prompt-engineering' 'transport':360 'tri':546 'type':15,504 'typescript':81 'unam':140 'understand':99 'updat':396 'use':50,69,102,120,175,248,357,403 'user':44,122,130,177,186,230,254,296,312,316,405,411,435,475,502 'user-level':43,185,229,295,311,315 'util':57 'valid':285 'verif':497 'verifi':272 'via':146 'want':131 'web':428 'where.exe':464 'whether':180 'window':145,155,466 'work':95 'workflow':115 'write':214,481","prices":[{"id":"1ffcddb1-6386-41b4-85ce-f36b978a5cc2","listingId":"c2e5e559-6839-43f1-a8a8-6967f49c3fb4","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T21:50:02.825Z"}],"sources":[{"listingId":"c2e5e559-6839-43f1-a8a8-6967f49c3fb4","source":"github","sourceId":"github/awesome-copilot/lsp-setup","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/lsp-setup","isPrimary":false,"firstSeenAt":"2026-04-18T21:50:02.825Z","lastSeenAt":"2026-04-22T00:52:11.943Z"}],"details":{"listingId":"c2e5e559-6839-43f1-a8a8-6967f49c3fb4","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"lsp-setup","github":{"repo":"github/awesome-copilot","stars":30743,"topics":["agent-skills","agents","ai","awesome","custom-agents","github-copilot","hacktoberfest","prompt-engineering"],"license":"mit","html_url":"https://github.com/github/awesome-copilot","pushed_at":"2026-04-21T22:20:21Z","description":"Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.","skill_md_sha":"3a0a5159616efe96891fe8764ce0b1b6a9d810d7","skill_md_path":"skills/lsp-setup/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/github/awesome-copilot/tree/main/skills/lsp-setup"},"layout":"multi","source":"github","category":"awesome-copilot","frontmatter":{"name":"lsp-setup","description":"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."},"skills_sh_url":"https://skills.sh/github/awesome-copilot/lsp-setup"},"updatedAt":"2026-04-22T00:52:11.943Z"}}