code-yeongyu/oh-my-openagent/lsp-setup
Claude Code and agent skill by code-yeongyu/oh-my-openagent
- community
Checking that the SKILL.md file is still in the repository.
Configures a language server so editor/agent tooling (diagnostics, go-to-definition, references, rename) works. Use when a project needs an LSP installed or wired, or a 'no LSP server configured' error appears.
Install
npx vskill@latest install code-yeongyu/oh-my-openagent/lsp-setupSKILL.md
LSP Setup
Configure the right Language Server for a project so the lsp MCP tools (diagnostics, goto_definition, find_references, symbols, rename) actually work. This skill is an index: detect what a project needs, install the server, write the config, then verify with a real roundtrip.
The list of servers we ship as builtin is the source of truth in packages/lsp-tools-mcp/src/lsp/server-definitions.ts (BUILTIN_SERVERS + LSP_INSTALL_HINTS). The per-language references below mirror it.
PHASE 0 — LANGUAGE GATE (run first)
Identify the language from the file extension, then read the matching reference before installing or configuring anything.
| Extension(s) | Reference | |
|---|---|---|
.ts .tsx .js .jsx .mjs .cjs .mts .cts .vue .svelte .astro | references/typescript/README.md | |
.py .pyi | references/python/README.md | |
.go | references/go/README.md | |
.rs | references/rust/README.md | |
.c .cpp .cc .cxx .c++ .h .hpp .hh .hxx .h++ | references/c-cpp/README.md | |
.java | references/java/README.md | |
.kt .kts | references/kotlin/README.md | |
.cs .razor .cshtml | references/csharp/README.md | |
.swift .m .mm | references/swift/README.md | |
.rb .rake .gemspec .ru | references/ruby/README.md | |
.php | references/php/README.md | |
.dart | references/dart/README.md | |
.ex .exs | references/elixir/README.md | |
.zig .zon | references/zig/README.md | |
.lua | references/lua/README.md | |
.sh .bash .zsh .ksh | references/bash/README.md | |
.yaml .yml | references/yaml/README.md | |
.tf .tfvars | references/terraform/README.md | |
.hs .lhs | references/haskell/README.md | |
.jl | references/julia/README.md |
WORKFLOW — detect → install → configure → verify
1. Detect
Scan the project to see which languages are present and whether each server is installed and configured:
For each detected language it prints the builtin server id, the executable it needs on PATH, whether that executable is installed, an install hint, and whether a project config file already references it.
2. Install
Open references/<language>/README.md and run the install command for your OS. Then confirm the executable resolves:
3. Configure
Most builtin servers need no config — they are resolved automatically by file extension. Write config only to: pick between competing servers, set a priority, pass initialization options, override extensions, set env (user config only), or disable a server.
Config files per harness, identical JSON shape. Each harness reads the first project file that exists, plus one user file:
| Harness | Project config | User config | |
|---|---|---|---|
| Codex | .codex/lsp-client.json | $CODEX_HOME/lsp-client.json (default ~/.codex/lsp-client.json) | |
| OpenCode | .opencode/lsp.json, then .omo/lsp.json, then .omo/lsp-client.json | lsp.json in the OpenCode config dir (default ~/.config/opencode/lsp.json) | |
| OmO native | .omo/lsp-client.json, then .pi/lsp-client.json | ~/.omo/lsp-client.json (~/.pi/lsp-client.json when only that one exists) |
A standalone lsp-tools-mcp launch reads the paths in LSP_TOOLS_MCP_PROJECT_CONFIG / LSP_TOOLS_MCP_USER_CONFIG instead.
Rules enforced by config-loader.ts:
- In a project config an entry whose id is a builtin server inherits
command automatically — you only override extensions / priority / initialization / disabled. Its env is dropped, and a non-builtin id in a project config is ignored.
- To set
env, or to define a fully custom (non-builtin) server with its
own command, put it in the user config from the table above, where command + extensions + env are honored.
- Project entries win over user entries; both win over builtin defaults. A user
entry is skipped when an enabled project entry has the same id, so keep an id that needs env out of the project config.
Each language reference gives a ready-to-paste snippet.
4. Verify
Run a real diagnostics roundtrip against a source file. This spawns the server, opens the file, requests diagnostics, and reports OK/FAIL:
OK = the server started and answered. FAIL: language server not installed = go back to step 2. Other FAIL text carries the server/startup error. SKIP = the engine source could not be located; run from inside the omo repo/worktree, or call the lsp MCP diagnostics tool directly.
Scripts
| Script | Purpose | |
|---|---|---|
scripts/detect-lsp.ts | Scan a directory; per detected language report server id, install status, install hint, config status. --json for machine output. | |
scripts/verify-lsp.ts | Real LSP diagnostics roundtrip for one file via the lsp-tools-mcp engine; OK/FAIL/SKIP + exit code 0/1/3. | |
scripts/lsp-server-table.ts | Embedded snapshot of the primary builtin server per language (mirrors server-definitions.ts). |
Run with Bun: curl -fsSL https://bun.sh/install | bash.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingpackages/shared-skills/skills/lsp-setup/SKILL.md
Popularity
- Repository stars
- 68,791
- Repository forks
- 5,650
- 7-day trend score
- 56
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/code-yeongyu/oh-my-openagent/lsp-setup)