LSP tool: uv_spawn cannot find typescript-language-server despite being in PATH (Windows)

Open 💬 8 comments Opened May 14, 2026 by ytchenak

Description

The LSP tool fails with ENOENT: no such file or directory, uv_spawn 'typescript-language-server' even though the binary is globally installed and available in PATH.

Environment

  • OS: Windows 11 Pro 10.0.26100
  • Shell: bash (Git Bash)
  • Node manager: nvm via scoop
  • typescript-language-server: 5.2.0 (installed globally via npm + locally as devDep)
  • Plugin: typescript-lsp@claude-plugins-official v1.0.0 enabled

Steps to Reproduce

  1. Install typescript-language-server globally: npm install -g typescript-language-server typescript
  2. Verify it's in PATH: which typescript-language-server/c/Users/<user>/scoop/apps/nvm/current/nodejs/nodejs/typescript-language-server
  3. Enable typescript-lsp@claude-plugins-official plugin
  4. Use the LSP tool:

``
LSP({ operation: "documentSymbol", filePath: "libs/ui/src/lib/button/button.ts", line: 1, character: 1 })
``

Expected Behavior

LSP tool finds and spawns typescript-language-server using the same PATH available to Bash tool.

Actual Behavior

Error performing documentSymbol: ENOENT: no such file or directory, uv_spawn 'typescript-language-server'

Analysis

  • which typescript-language-server works in Bash tool → binary is in PATH
  • echo $PATH shows /c/Users/<user>/scoop/apps/nvm/current/nodejs/nodejs is present
  • The binary also exists at node_modules/.bin/typescript-language-server (installed as devDep)
  • uv_spawn used by the LSP tool does not appear to inherit the same PATH that the Bash tool uses
  • Restarting the Claude Code session does not resolve the issue

Workaround

None found. The LSP tool appears to use a different PATH resolution mechanism (uv_spawn) than the Bash tool.

View original on GitHub ↗

This issue has 8 comments on GitHub. Read the full discussion on GitHub ↗