powershell-editor-services
stdiopowershell
Used by 1 plugin
Requires Language Server Binary
This LSP server requires pwsh to be installed on your system. Make sure it's available in your PATH before enabling.
Install
1
Run in your terminal$
npx claudepluginhub bedolla/enrilspAdd to Your Project
Add to your .lsp.json or plugin.json:
{
"lspServers": {
"powershell-editor-services": {
"command": "pwsh",
"extensionToLanguage": {
".ps1": "powershell",
".psd1": "powershell",
".psm1": "powershell"
},
"args": [
"-NoLogo",
"-NoProfile",
"-NonInteractive",
"-ExecutionPolicy",
"Bypass",
"-Command",
"$ErrorActionPreference='Stop';$ProgressPreference='SilentlyContinue';$proxy=$null;$proxyCandidate=$null;if($env:CLAUDE_PLUGIN_ROOT){$proxyCandidate=[IO.Path]::Combine($env:CLAUDE_PLUGIN_ROOT,'hooks','enrilsp-lsp-proxy.ps1');if(Test-Path $proxyCandidate){$proxy=$proxyCandidate}};if(-not $proxy){$proxyCandidate=[IO.Path]::Combine($env:LOCALAPPDATA,'EnriLSP','bin','enrilsp-lsp-proxy.ps1');if(Test-Path $proxyCandidate){$proxy=$proxyCandidate}};if(-not $proxy){$proxyCandidate=[IO.Path]::Combine((Get-Location).Path,'hooks','enrilsp-lsp-proxy.ps1');if(Test-Path $proxyCandidate){$proxy=$proxyCandidate}};$root=[IO.Path]::Combine($env:LOCALAPPDATA,'PowerShellEditorServices','PowerShellEditorServices');$start=[IO.Path]::Combine($root,'Start-EditorServices.ps1');for($i=0;$i -lt 480 -and -not (Test-Path $start);$i++){Start-Sleep -Milliseconds 250};if(-not (Test-Path $start)){exit 127};$logDir=[IO.Path]::Combine($env:LOCALAPPDATA,'EnriLSP','logs');New-Item -ItemType Directory -Force -Path $logDir | Out-Null;$logPath=[IO.Path]::Combine($logDir,'powershell-editor-services.log');$sessionDetailsPath=[IO.Path]::Combine($logDir,'PowerShellEditorServices.json');$serverExe=[IO.Path]::Combine($PSHOME,'pwsh.exe');if(-not (Test-Path $serverExe)){$serverExe='pwsh'};$serverArgs=@('-NoLogo','-NoProfile','-NonInteractive','-ExecutionPolicy','Bypass','-File',$start,'-HostName','Claude Code','-HostProfileId','claude','-HostVersion','1.0.0','-BundledModulesPath',$root,'-LogPath',$logPath,'-LogLevel','Normal','-SessionDetailsPath',$sessionDetailsPath,'-Stdio');if(Test-Path $proxy){& $proxy $serverExe @serverArgs}else{& $serverExe @serverArgs}"
]
}
}
}Supported Languages
powershell
.ps1.psd1.psm1
Command
pwshTransport
stdioArguments
-NoLogo-NoProfile-NonInteractive-ExecutionPolicyBypass-Command$ErrorActionPreference='Stop';$ProgressPreference='SilentlyContinue';$proxy=$null;$proxyCandidate=$null;if($env:CLAUDE_PLUGIN_ROOT){$proxyCandidate=[IO.Path]::Combine($env:CLAUDE_PLUGIN_ROOT,'hooks','enrilsp-lsp-proxy.ps1');if(Test-Path $proxyCandidate){$proxy=$proxyCandidate}};if(-not $proxy){$proxyCandidate=[IO.Path]::Combine($env:LOCALAPPDATA,'EnriLSP','bin','enrilsp-lsp-proxy.ps1');if(Test-Path $proxyCandidate){$proxy=$proxyCandidate}};if(-not $proxy){$proxyCandidate=[IO.Path]::Combine((Get-Location).Path,'hooks','enrilsp-lsp-proxy.ps1');if(Test-Path $proxyCandidate){$proxy=$proxyCandidate}};$root=[IO.Path]::Combine($env:LOCALAPPDATA,'PowerShellEditorServices','PowerShellEditorServices');$start=[IO.Path]::Combine($root,'Start-EditorServices.ps1');for($i=0;$i -lt 480 -and -not (Test-Path $start);$i++){Start-Sleep -Milliseconds 250};if(-not (Test-Path $start)){exit 127};$logDir=[IO.Path]::Combine($env:LOCALAPPDATA,'EnriLSP','logs');New-Item -ItemType Directory -Force -Path $logDir | Out-Null;$logPath=[IO.Path]::Combine($logDir,'powershell-editor-services.log');$sessionDetailsPath=[IO.Path]::Combine($logDir,'PowerShellEditorServices.json');$serverExe=[IO.Path]::Combine($PSHOME,'pwsh.exe');if(-not (Test-Path $serverExe)){$serverExe='pwsh'};$serverArgs=@('-NoLogo','-NoProfile','-NonInteractive','-ExecutionPolicy','Bypass','-File',$start,'-HostName','Claude Code','-HostProfileId','claude','-HostVersion','1.0.0','-BundledModulesPath',$root,'-LogPath',$logPath,'-LogLevel','Normal','-SessionDetailsPath',$sessionDetailsPath,'-Stdio');if(Test-Path $proxy){& $proxy $serverExe @serverArgs}else{& $serverExe @serverArgs}
Advanced Configuration
Restart on Crash:Yes