Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Elixir code intelligence via Expert LSP — the official unified Elixir language server. Gives Claude auto-diagnostics, go-to-definition, find-references, and type info for .ex, .exs, and .heex files.
npx claudepluginhub chrisohalloran/elixir-expert-lspShare bugs, ideas, or general feedback.
A Claude Code plugin that connects Expert LSP — the official unified Elixir language server — to give Claude real-time code intelligence while working on Elixir projects.
| Capability | Status |
|---|---|
| File change sync | Yes |
| Code completion | Yes |
| Hover / type info | Yes |
| Go to definition | Yes |
| Find references | Yes |
| Document symbols | Yes |
| Workspace symbols | Yes |
| Code actions (quick fixes) | Yes |
| Code lens | Yes |
| Formatting | Yes |
| Execute commands | Yes |
Tested against an Elixir project (Rig, 8 lib files). Results are from a single project and may vary based on project size, hardware, and Expert version:
| Metric | Expert LSP | ElixirLS v0.30.0 |
|---|---|---|
| Project compile | 12s | 30s |
| Diagnostic latency | 1.0s | Did not return diagnostics in test window |
| Incremental recompile | 58ms | N/A |
In this test, Expert detected an undefined function run/3 error within 1 second of saving. ElixirLS did not return diagnostics within the test window. Expert is in release candidate status; ElixirLS is more mature. Your results will vary.
On first use, Expert builds an analysis engine (~30 seconds). This is a one-time cost cached at ~/Library/Caches/expert/. Subsequent starts take under 1 second.
To warm the cache before using in Claude Code:
cd your-project
expert --stdio
# Wait until you see "Engine initialized" in .expert/expert.log (~30s)
# Then Ctrl+C
Each project also needs an initial compile on first open (~5-10s with warm engine). After that, incremental recompiles take milliseconds.
$PATHelixir --version)# From the Claude Code CLI
claude plugin install elixir-expert-lsp@<marketplace>
# Or load locally for development
claude --plugin-dir /path/to/expert-lsp
The plugin configures the connection but doesn't include the server binary. Install Expert using one of these methods:
Download the latest release for your platform from github.com/elixir-lang/expert/releases and place it in your $PATH:
# macOS ARM (Apple Silicon)
gh release download v0.1.0-rc.6 --pattern 'expert_darwin_arm64' --repo elixir-lang/expert --dir /tmp
cp /tmp/expert_darwin_arm64 ~/.local/bin/expert
chmod +x ~/.local/bin/expert
# macOS Intel
gh release download v0.1.0-rc.6 --pattern 'expert_darwin_amd64' --repo elixir-lang/expert --dir /tmp
cp /tmp/expert_darwin_amd64 ~/.local/bin/expert
chmod +x ~/.local/bin/expert
# Linux
gh release download v0.1.0-rc.6 --pattern 'expert_linux_amd64' --repo elixir-lang/expert --dir /tmp
cp /tmp/expert_linux_amd64 ~/.local/bin/expert
chmod +x ~/.local/bin/expert
gh release download nightly --pattern 'expert_darwin_arm64' --repo elixir-lang/expert --dir /tmp
cp /tmp/expert_darwin_arm64 ~/.local/bin/expert
chmod +x ~/.local/bin/expert
expert --version
# Should output: 0.1.0-rc.6 (or newer)
Make sure ~/.local/bin is in your $PATH. Add this to your ~/.zshrc if needed:
export PATH="$HOME/.local/bin:$PATH"
| Extension | Language ID |
|---|---|
.ex | elixir |
.exs | elixir |
.heex | phoenix-heex |
.leex | elixir |
This plugin provides an .lsp.json configuration that tells Claude Code how to connect to Expert via stdio transport. Expert runs as a subprocess spawned by Claude Code, analyzing your project files and providing real-time diagnostics and navigation.
When you edit an Elixir file, Expert analyzes the changes and pushes diagnostics back to Claude Code. Claude sees type errors, missing imports, and compilation warnings immediately and can fix them in the same turn — without you running mix compile manually.
Expert is the official unified Elixir language server, created by the Elixir core team by merging the three previous implementations (ElixirLS, Lexical, Next LS). It's built on the Lexical codebase with Next LS components for single-binary releases and protocol abstraction.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimElixir Language Server integration for Claude Code
Elixir language server
Dexter language server for Elixir (.ex, .exs, .heex)
Advanced Elixir skills for OTP, pattern matching, and Ecto.
Elixir, Phoenix, and LiveView code review and documentation skills
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Elixir/Phoenix/LiveView development with specialist agents, Iron Laws, and Tidewave MCP integration