BeClaude

pyright

52Community RegistryDevelopmentby Jan Kott

Python language server

First seen 4/17/2026

Summary

Pyright is a fast Python language server that provides IDE-like intelligence within Claude Code, including type checking, code navigation, and symbol search.

  • It helps developers catch type errors early, understand codebases faster, and navigate Python projects more efficiently.

Overview

A collection of Language Server Protocol (LSP) plugins for Claude Code.

!LSP Demo

What is LSP Integration?

[!NOTE]

LSP Integration: If you're on v2.0.69 through v2.0.x, LSP integration is broken due to a race condition (#14803, #13952). This has been fixed in v2.1.0+. Please upgrade to the latest version.

The Language Server Protocol provides IDE-like intelligence to Claude Code. On startup, Claude Code automatically starts LSP servers from installed plugins and exposes them to Claude in two ways:

LSP Tool - A builtin tool with 9 operations mapping directly to LSP commands:

OperationDescription
goToDefinitionFind where a symbol is defined
findReferencesFind all references to a symbol
hoverGet hover info (docs, type info) for a symbol
documentSymbolGet all symbols (functions, classes, variables) in a document
workspaceSymbolSearch for symbols across the entire workspace
goToImplementationFind implementations of an interface/abstract method
prepareCallHierarchyGet call hierarchy item at a position
incomingCallsFind all functions/methods that call the function at a position
outgoingCallsFind all functions/methods called by the function at a position

Automatic Diagnostics - Real-time error and warning detection similar to the VS Code integration, but operating independently. These diagnostics tend to be faster and more comprehensive than the VS Code equivalent.

Available Plugins

PluginLanguageExtensionsLSP
bash-language-serverBash/Shell.sh .bash .zsh .kshbash-language-server
clangdC/C++/Objective-C.c .h .cpp .hpp .cc .cxx .hxx .m .mmclangd
clojure-lspClojure.clj .cljs .cljc .ednclojure-lsp
dart-analyzerDart/Flutter.dartDart SDK
elixir-lsElixir.ex .exselixir-ls
gleamGleam.gleamgleam
goplsGo.gogopls
intelephensePHP.php .phtmlIntelephense
jdtlsJava.javajdtls
kotlin-lspKotlin.kt .ktskotlin-lsp
lua-language-serverLua.lualua-language-server
nixdNix.nixnixd
ocaml-lspOCaml.ml .mliocaml-lsp
omnisharpC#.cs .csxOmniSharp
pyrightPython.py .pyipyright
rust-analyzerRust.rsrust-analyzer
solargraphRuby.rb .rake .gemspecSolargraph
sourcekit-lspSwift.swiftsourcekit-lsp
terraform-lsTerraform.tf .tfvarsterraform-ls
vtslsTypeScript/JavaScript.ts .tsx .js .jsx .mjs .cjsvtsls
yaml-language-serverYAML.yaml .ymlyaml-language-server
zlsZig.zig .zonzls

Getting Started

1. Add the Marketplace

bash
claude
/plugin marketplace add boostvolt/claude-code-lsps

2. Install Plugins

Install individual plugins:

bash
/plugin install bash-language-server@claude-code-lsps
/plugin install clangd@claude-code-lsps
/plugin install clojure-lsp@claude-code-lsps
/plugin install dart-analyzer@claude-code-lsps
/plugin install elixir-ls@claude-code-lsps
/plugin install gleam@claude-code-lsps
/plugin install gopls@claude-code-lsps
/plugin install intelephense@claude-code-lsps
/plugin install jdtls@claude-code-lsps
/plugin install kotlin-lsp@claude-code-lsps
/plugin install lua-language-server@claude-code-lsps
/plugin install nixd@claude-code-lsps
/plugin install ocaml-lsp@claude-code-lsps
/plugin install omnisharp@claude-code-lsps
/plugin install pyright@claude-code-lsps
/plugin install rust-analyzer@claude-code-lsps
/plugin install solargraph@claude-code-lsps
/plugin install sourcekit-lsp@claude-code-lsps
/plugin install terraform-ls@claude-code-lsps
/plugin install vtsls@claude-code-lsps
/plugin install yaml-language-server@claude-code-lsps
/plugin install zls@claude-code-lsps

Or browse and install interactively:

bash
/plugin

Manual LSP Installation

Each plugin will attempt to auto-install its LSP server on first use. If auto-install fails, use the manual instructions below.

<details> <summary><strong>Bash/Shell (bash-language-server)</strong></summary>

bash
brew install bash-language-server

Or via npm:

bash
npm install -g bash-language-server

</details>

<details> <summary><strong>C/C++/Objective-C (clangd)</strong></summary>

bash
brew install llvm

Or via Xcode Command Line Tools:

bash
xcode-select --install

Supports C, C++, Objective-C (.m), and Objective-C++ (.mm) files.

</details>

<details> <summary><strong>C# (omnisharp)</strong></summary>

bash
brew install omnisharp/omnisharp-roslyn/omnisharp-mono

Or via dotnet:

bash
dotnet tool install -g csharp-ls

</details>

<details> <summary><strong>Clojure (clojure-lsp)</strong></summary>

bash
brew install clojure-lsp

Or download from GitHub releases.

</details>

<details> <summary><strong>Dart/Flutter (dart-analyzer)</strong></summary>

Install Dart SDK:

bash
brew tap dart-lang/dart
brew install dart

Or install Flutter (includes Dart):

bash
# See https://docs.flutter.dev/get-started/install

Ensure dart is in your PATH.

</details>

<details> <summary><strong>Elixir (elixir-ls)</strong></summary>

bash
brew install elixir-ls

Requires Elixir to be installed:

bash
brew install elixir

</details>

<details> <summary><strong>Gleam (gleam)</strong></summary>

bash
brew install gleam

Or download from GitHub releases.

</details>

<details> <summary><strong>Go (gopls)</strong></summary>

bash
go install golang.org/x/tools/gopls@latest

Ensure ~/go/bin is in your PATH.

</details>

<details> <summary><strong>Java (jdtls)</strong></summary>

bash
brew install jdtls

Or download manually from Eclipse JDT Language Server.

Requires Java 21+ runtime.

</details>

<details> <summary><strong>Kotlin (kotlin-lsp)</strong></summary>

bash
brew install JetBrains/utils/kotlin-lsp

Or download from GitHub releases.

Requires Java 17+.

</details>

<details> <summary><strong>Lua (lua-language-server)</strong></summary>

bash
brew install lua-language-server

Or download from GitHub releases.

</details>

<details> <summary><strong>Nix (nixd)</strong></summary>

bash
nix profile install nixpkgs#nixd

Requires Nix to be installed. See nixos.org.

</details>

<details> <summary><strong>OCaml (ocaml-lsp)</strong></summary>

bash
opam install ocaml-lsp-server

Requires opam to be installed:

bash
brew install opam
opam init

</details>

<details> <summary><strong>PHP (intelephense)</strong></summary>

bash
npm install -g intelephense

</details>

<details> <summary><strong>Python (pyright)</strong></summary>

bash
pip install pyright

</details>

<details> <summary><strong>Ruby (solargraph)</strong></summary>

bash
gem install solargraph

</details>

<details> <summary><strong>Rust (rust-analyzer)</strong></summary>

bash
brew install rust-analyzer

Or via rustup:

bash
rustup component add rust-analyzer

</details>

<details> <summary><strong>Swift (sourcekit-lsp)</strong></summary>

sourcekit-lsp is bundled with Xcode. Install Xcode from the App Store:

bash
# Verify installation
xcrun --find sourcekit-lsp

Or install a Swift toolchain from swift.org/install.

</details>

<details> <summary><strong>Terraform (terraform-ls)</strong></summary>

bash
brew install terraform-ls

Or download from GitHub releases.

</details>

<details> <summary><strong>TypeScript/JavaScript (vtsls)</strong></summary>

bash
npm install -g @vtsls/language-server typescript

</details>

<details> <summary><strong>YAML (yaml-language-server)</strong></summary>

bash
brew install yaml-language-server

Or via npm:

bash
npm install -g yaml-language-server

</details>

<details> <summary><strong>Zig (zls)</strong></summary>

bash
brew install zls

Requires Zig to be installed. Download from ziglang.org.

</details>


Creating Your Own Plugin

<details> <summary><strong>Plugin Structure</strong></summary>

code
my-lsp/
├── .claude-plugin/
│   └── plugin.json
├── .lsp.json
└── hooks/
    ├── hooks.json
    └── check-my-lsp.sh

</details>

<details> <summary><strong>.lsp.json Schema</strong></summary>

The .lsp.json file configures the language server:

json
{
  "language-id": {
    "command": "lsp-server-command",
    "extensionToLanguage": {
      ".ext": "language-id"
    }
  }
}

Required Fields

FieldTypeDescription
commandstringCommand to start the LSP server
extensionToLanguageobjectMaps file extensions to language IDs

Optional Fields

FieldTypeDescription
argsstring[]Arguments passed to the command
transportstringCommunication method: "stdio" (default) or "socket"
envobjectEnvironment variables to set when starting the server
initializationOptionsobjectOptions passed during LSP initialization
settingsobjectServer-specific settings via workspace/didChangeConfiguration
workspaceFolderstringWorkspace folder path for the server
startupTimeoutnumberMax time to wait for server startup (milliseconds)
shutdownTimeoutnumberMax time to wait for graceful shutdown (milliseconds)
restartOnCrashbooleanWhether to automatically restart the server if it crashes
maxRestartsnumberMax restart attempts before giving up (default: 3)

</details>

<details> <summary><strong>Example: gopls</strong></summary>

.lsp.json:

json
{
  "go": {
    "command": "gopls",
    "extensionToLanguage": {
      ".go": "go"
    }
  }
}

.claude-plugin/plugin.json:

json
{
  "name": "gopls",
  "description": "Go language server",
  "version": "1.0.0",
  "author": {
    "name": "Your Name"
  },
  "license": "MIT",
  "repository": "https://github.com/boostvolt/claude-code-lsps"
}

hooks/hooks.json (optional auto-install):

json
{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/check-gopls.sh",
            "timeout": 30
          }
        ]
      }
    ]
  }
}

</details>


License

MIT

Install & Usage

1
Add a marketplace
/plugin marketplace add <org/repo>
2
Install the plugin

Add the configuration to /plugin install pyright@<marketplace>

3
Manage with /plugin
/plugin

Use Cases

Navigate to the definition of a function or class in a large Python codebase without leaving the terminal.
Find all references to a variable or function across the entire workspace to understand its usage.
Get hover information with type signatures and documentation for any symbol in your Python code.
List all symbols (functions, classes, variables) in a Python file to quickly understand its structure.
Search for symbols by name across the workspace when you can't remember exactly where something is defined.
Find all implementations of an interface or abstract method in a codebase using object-oriented patterns.

Usage Examples

1

/pyright goToDefinition main.py:42

2

/pyright findReferences calculate_total

3

/pyright hover app/utils.py:15

View source on GitHub
pythonlsp

Security Audits

LicenseUnknownSourceWarnRepositoryPass

Frequently Asked Questions

What is pyright?

Pyright is a fast Python language server that provides IDE-like intelligence within Claude Code, including type checking, code navigation, and symbol search. It helps developers catch type errors early, understand codebases faster, and navigate Python projects more efficiently.

How to install pyright?

To install pyright: add a marketplace (/plugin marketplace add <org/repo>), then add the config to /plugin install pyright@<marketplace>. Finally, /plugin in Claude Code.

What is pyright best for?

pyright is a plugin categorized under Development. It is designed for: python, lsp. Created by Jan Kott.

What can I use pyright for?

pyright is useful for: Navigate to the definition of a function or class in a large Python codebase without leaving the terminal.; Find all references to a variable or function across the entire workspace to understand its usage.; Get hover information with type signatures and documentation for any symbol in your Python code.; List all symbols (functions, classes, variables) in a Python file to quickly understand its structure.; Search for symbols by name across the workspace when you can't remember exactly where something is defined.; Find all implementations of an interface or abstract method in a codebase using object-oriented patterns..