code-yeongyu/oh-my-openagent/lsp-setup

Claude Code and agent skill by code-yeongyu/oh-my-openagent

Trust tier 3
  • community
Source check pending

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-setup

SKILL.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 .astroreferences/typescript/README.md
.py .pyireferences/python/README.md
.goreferences/go/README.md
.rsreferences/rust/README.md
.c .cpp .cc .cxx .c++ .h .hpp .hh .hxx .h++references/c-cpp/README.md
.javareferences/java/README.md
.kt .ktsreferences/kotlin/README.md
.cs .razor .cshtmlreferences/csharp/README.md
.swift .m .mmreferences/swift/README.md
.rb .rake .gemspec .rureferences/ruby/README.md
.phpreferences/php/README.md
.dartreferences/dart/README.md
.ex .exsreferences/elixir/README.md
.zig .zonreferences/zig/README.md
.luareferences/lua/README.md
.sh .bash .zsh .kshreferences/bash/README.md
.yaml .ymlreferences/yaml/README.md
.tf .tfvarsreferences/terraform/README.md
.hs .lhsreferences/haskell/README.md
.jlreferences/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:

bash
bun scripts/detect-lsp.ts <projectDir> # human report (default: cwd)
bun scripts/detect-lsp.ts <projectDir> --json

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:

bash
command -v <server-executable> # e.g. typescript-language-server, gopls, rust-analyzer
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:

HarnessProject configUser 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.jsonlsp.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.

jsonc
{
"lsp": {
"<server-id>": {
"command": ["<bin>", "<args>"], // optional for builtin ids (supplied automatically)
"extensions": [".ext"], // optional override
"priority": 100, // higher wins when several servers match an extension
"initialization": { }, // server-specific initializationOptions
"env": { "KEY": "value" }, // optional
"disabled": false // set true to turn a server off
}
}
}

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:

bash
bun scripts/verify-lsp.ts <path/to/file.ext>
bun scripts/verify-lsp.ts <file> --timeout=90000

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

ScriptPurpose
scripts/detect-lsp.tsScan a directory; per detected language report server id, install status, install hint, config status. --json for machine output.
scripts/verify-lsp.tsReal LSP diagnostics roundtrip for one file via the lsp-tools-mcp engine; OK/FAIL/SKIP + exit code 0/1/3.
scripts/lsp-server-table.tsEmbedded 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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/code-yeongyu/oh-my-openagent/lsp-setup/badge)](https://verified-skill.com/skills/code-yeongyu/oh-my-openagent/lsp-setup)

Something wrong with this skill or its page? Tell us.