Install
openclaw skills install csharp-lspC# language server providing code intelligence, diagnostics, and navigation for .cs and .csx files. Uses csharp-ls (lightweight Roslyn-based). Requires .sln...
openclaw skills install csharp-lspC# code intelligence via csharp-ls — a lightweight Roslyn-based language server.
Supported extensions: .cs, .csx
.sln or .csproj: Project file is required (loose .cs files give limited results)Run the one-time setup script (idempotent — safe to re-run):
bash {baseDir}/scripts/setup.sh # setup only
bash {baseDir}/scripts/setup.sh --verify # setup + verification test
What it does:
csharp-ls via dotnet tool install --global~/.dotnet/tools in PATHlsp-query symlink# Set workspace to the directory containing .sln/.csproj
export LSP_WORKSPACE=/path/to/project
# Go to definition
lsp-query definition src/Program.cs 15 8
# Find all references
lsp-query references src/Models/User.cs 42 10
# Type info / hover
lsp-query hover src/Services/AuthService.cs 30 22
# List symbols in a file
lsp-query symbols src/Program.cs
# Search symbols across workspace
lsp-query workspace-symbols "UserService"
# Compiler diagnostics
lsp-query diagnostics src/Program.cs
# Check running servers
lsp-query servers
# Shut down daemon
lsp-query shutdown
Line/column numbers are 1-indexed.
lsp-query CLI → Unix Socket → lsp-query daemon (Python)
↓
csharp-ls (subprocess, stdin/stdout JSON-RPC)
↓
Roslyn (.sln → full type system)
.sln) — best: enables cross-project references.csproj) — good: single project analysis.cs files — limited: basic syntax only{baseDir}/
├── SKILL.md # This file
└── scripts/
├── setup.sh # One-time setup (idempotent)
└── lsp-query.py # LSP daemon + CLI (self-contained)
DotnetToolSettings.xml): Pin version with dotnet tool install --global csharp-ls --version 0.20.0LSP_WORKSPACE points to a directory with .sln or .csprojexport PATH="$PATH:$HOME/.dotnet/tools" to your shell profilelsp-query shutdown and retry