Skip to content

Get started ​

Install ​

Prerequisite: Codex CLI or Claude Code. On macOS and Linux, also use Bash, curl and tar.

macOS and Linux:

sh
curl -fsSL https://raw.githubusercontent.com/thomas-fazzari/roslyn-for-clankers/master/install.sh | bash

Windows x64, in PowerShell:

powershell
& ([scriptblock]::Create((Invoke-RestMethod https://raw.githubusercontent.com/thomas-fazzari/roslyn-for-clankers/master/install.ps1)))

The installer downloads the latest stable release, verifies its SHA-256 checksum and registers roslyn globally in each installed client among Codex and Claude Code. Use --client codex or --client claude (-Client in PowerShell) to set up only one of them. Before making changes, it asks for an installation directory and offers an optional skill for C# diagnostics, navigation and edits. The skill includes SKILL.md, plus agents/openai.yaml for Codex. Both come from master, independently of the binary version. Skill updates do not require a new binary release. Files are stored in $XDG_DATA_HOME/roslyn-for-clankers, or ~/.local/share/roslyn-for-clankers when unset. Windows uses %LOCALAPPDATA%\roslyn-for-clankers. Run the same command to update the bridge and skill.

Releases target macOS x64 and ARM64, Linux x64 and ARM64 with glibc, and Windows x64.

Use --version vX.Y.Z to select a release, or --yes for unattended installation. When piping the shell installer, pass options through bash -s -- --yes. PowerShell accepts -Version vX.Y.Z and -Yes. Use --no-skill or -NoSkill to skip skill installation.

Language server ​

The installer offers to install the official Roslyn language server. This optional step requires the .NET 10 SDK to run dotnet tool install. Roslyn itself uses the .NET 10 runtime. The native bridge has no .NET runtime requirement.

If Roslyn is already installed, choose its executable during setup or pass --server /path/to/roslyn-language-server (-Server in PowerShell). The installer then skips the .NET SDK check and server installation.

Your C# project can target a different .NET version. Keep its required SDK and workloads installed, including any SDK pinned in its global.json.

Use it ​

Restore your C# solution with dotnet restore, then open a new Codex or Claude Code session in that project. In the CLI, use /mcp to check that roslyn is connected.

text
Use the Roslyn MCP to report diagnostics for a C# file, find definitions and
implementations, then preview a rename and a suggested fix. Do not apply changes.

Approve the tool call if prompted. The bridge uses the session's working directory as its workspace. Save editor changes before requesting diagnostics.

Configuration ​

Codex stores the global registration in ~/.codex/config.toml, or under CODEX_HOME when set. A project-level .codex/config.toml can override it. See Codex MCP configuration for client settings and tool approvals.

Claude Code stores the user-scope registration in ~/.claude.json, or under CLAUDE_CONFIG_DIR when set. Allow the tools without prompts by adding mcp__roslyn__* to permissions.allow in ~/.claude/settings.json. See Claude Code MCP for client settings.

Roslyn loads the solution on the first language request. For large projects, set tool_timeout_sec = 200 under [mcp_servers.roslyn] in Codex. In Claude Code, set the MCP_TOOL_TIMEOUT environment variable in milliseconds, for example 200000.

Bridge argumentDefault
--workspaceCurrent working directory
--serverroslyn-language-server on PATH
--startup-timeout120 seconds
--request-timeout60 seconds

Timeout arguments accept 1 to 600 seconds. Keep the client's tool timeout above the startup and request timeout sum when increasing these limits.

Remove ​

Run codex mcp remove roslyn or claude mcp remove roslyn --scope user, then delete the installation directory and optional skill directory printed by the installer.