VS Code extension v2.1.51: commands not found (claude-vscode.editor.openLast)

Resolved 💬 19 comments Opened Feb 24, 2026 by dev-WRS Closed Feb 24, 2026

Description

After updating to Claude Code VS Code extension v2.1.51, all Claude commands stopped working. The commands are registered in package.json but VS Code reports them as not found:

command 'claude-vscode.editor.openLast' not found

Steps to Reproduce

  1. Update Claude Code VS Code extension to v2.1.51 (win32-x64)
  2. Restart VS Code / reload window
  3. Try any Claude command via Command Palette (e.g., "Claude Code: Open in New Tab")

Expected Behavior

Commands should work as they did in previous versions.

Actual Behavior

All Claude commands fail with "command not found". The extension appears to not activate properly.

Workaround

Rolling back to a previous version via "Install Another Version..." restores functionality.

Environment

  • VS Code: Windows 11
  • Extension version: 2.1.51 (win32-x64)
  • Platform: Windows 11 Home 10.0.26200

View original on GitHub ↗

19 Comments

cubicj · 4 months ago

Got the same issue

github-actions[bot] · 4 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/28053
  2. https://github.com/anthropics/claude-code/issues/28054
  3. https://github.com/anthropics/claude-code/issues/28056

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

davidjoshua7692-code · 4 months ago

same issue here

gemron · 4 months ago

same

gemron · 4 months ago

Activating extension Anthropic.claude-code failed due to an error:
2026-02-24 11:05:05.686 [error] TypeError: The argument 'filename' must be a file URL object, file URL string, or absolute path string. Received 'file:///home/runner/work/claude-cli-internal/claude-cli-internal/build-agent-sdk/sdk.mjs'
at Module.createRequire (node:internal/modules/cjs/loader:1915:13)
at Object.<anonymous> (c:\Users\guome\.vscode\extensions\anthropic.claude-code-2.1.51-win32-x64\extension.js:45:4602)
at Module._compile (node:internal/modules/cjs/loader:1714:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1848:10)
at Module.load (node:internal/modules/cjs/loader:1448:32)
at Module._load (node:internal/modules/cjs/loader:1270:12)
at c._load (node:electron/js2c/node_init:2:17993)
at e._load (file:///c:/Users/guome/AppData/Local/Programs/Microsoft%20VS%20Code/072586267e/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:405:6055)
at t._load (file:///c:/Users/guome/AppData/Local/Programs/Microsoft%20VS%20Code/072586267e/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:223:22773)
at s._load (file:///c:/Users/guome/AppData/Local/Programs/Microsoft%20VS%20Code/072586267e/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:215:24706)
at TracingChannel.traceSync (node:diagnostics_channel:328:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:244:24)
at Module.require (node:internal/modules/cjs/loader:1470:12)
at Module.require (c:\Users\guome\.vscode\extensions\github.copilot-chat-0.37.8\dist\extension.js:382:36169)
at require (node:internal/modules/helpers:147:16)
at pee.Cb (file:///c:/Users/guome/AppData/Local/Programs/Microsoft%20VS%20Code/072586267e/resources/app/out/vs/workbench/api/node/extensionHostProcess.js:254:1256)

Yunyang599 · 4 months ago

downgrade the claude version to 2.1.49 in VS, and it works, the new version 2.1.51 has problems

SlothClient · 4 months ago

same

justdying · 4 months ago

the same

StealUrKill · 4 months ago

Used Claude to Fix Claude, works great.

PS C:\Users\HSS> powershell.exe -ExecutionPolicy Bypass -File .\fix-claude-code-extension.ps1 Found 1 Claude Code extension(s): [anthropic.claude-code-2.1.51-win32-x64] Found 2 occurrence(s) of the bad CI path. Patching... [anthropic.claude-code-2.1.51-win32-x64] Backup saved -> extension.js.bak [anthropic.claude-code-2.1.51-win32-x64] Fix 1 (createRequire): replaced 1 occurrence(s) [anthropic.claude-code-2.1.51-win32-x64] Fix 2 (path resolver): replaced 1 occurrence(s) [anthropic.claude-code-2.1.51-win32-x64] Patched successfully Done. Reload VSCode to apply: Ctrl+Shift+P -> 'Developer: Reload Window'

<img width="232" height="217" alt="Image" src="https://github.com/user-attachments/assets/f40b30da-23e8-4174-bf99-da8ba0a5b9fe" />

```# fix-claude-code-extension.ps1
#

Fixes Claude Code VSCode extension activation failure on Windows.

#

Error:

Activating extension 'Anthropic.claude-code' failed:

The argument 'filename' must be a file URL object, file URL string,

or absolute path string. Received 'file:///home/runner/work/...'

#

Root cause:

The extension bundle contains two hardcoded Linux CI build paths

(file:///home/runner/work/...). On Windows, Node.js rejects these

URLs in fileURLToPath() because they have no Windows drive letter.

This crashes the extension immediately at activation.

#

What this script patches:

Fix 1 - createRequire call: crashes at activation time

.createRequire("file:///home/runner/.../sdk.mjs")

-> .createRequire(__filename) (use actual file path instead)

#

Fix 2 - path resolution call: crashes when agent SDK is invoked

SomeFunc("file:///home/runner/.../sdk.mjs")

-> inline child_process lookup for the claude CLI on PATH

#

Usage:

Right-click -> "Run with PowerShell"

OR from a PowerShell prompt: .\fix-claude-code-extension.ps1

$ErrorActionPreference = "Stop"

$extensionRoot = "$env:USERPROFILE\.vscode\extensions"
$badUrl = 'file:///home/runner/work/claude-cli-internal/claude-cli-internal/build-agent-sdk/sdk.mjs'

---- Regex patterns (stable across minified versions) ----

Fix 1: .createRequire("file:///home/...sdk.mjs")

The method name createRequire is stable even in minified code.

$pattern1 = '\.createRequire\("file:///home/runner/work/claude-cli-internal/claude-cli-internal/build-agent-sdk/sdk\.mjs"\)'
$replacement1 = '.createRequire(__filename)'

Fix 2: anyMinifiedName("file:///home/...sdk.mjs")

After fix 1 removes the createRequire case, any remaining call

with this URL is the fileURLToPath wrapper (Ye or similar).

Replace it with an inline lookup that finds the claude CLI on PATH.

$pattern2 = '[a-zA-Z_$][a-zA-Z0-9_$]*\("file:///home/runner/work/claude-cli-internal/claude-cli-internal/build-agent-sdk/sdk\.mjs"\)'
$replacement2 = '(function(){try{return(require("child_process").spawnSync(process.platform==="win32"?"where.exe":"which",["claude"],{encoding:"utf8"}).stdout||"").split(/[\r\n]+/).filter(Boolean)[0]}catch(e){}})()'

---- Find extension directories ----

if (-not (Test-Path $extensionRoot)) {
Write-Host "VSCode extensions directory not found: $extensionRoot" -ForegroundColor Red
exit 1
}

$dirs = Get-ChildItem $extensionRoot -Directory | Where-Object { $_.Name -like 'anthropic.claude-code-*' }

if ($dirs.Count -eq 0) {
Write-Host "No Claude Code extension found in: $extensionRoot" -ForegroundColor Yellow
exit 1
}

Write-Host "Found $($dirs.Count) Claude Code extension(s):`n"

foreach ($dir in $dirs) {
$label = $dir.Name
$file = Join-Path $dir.FullName 'extension.js'

if (-not (Test-Path $file)) {
Write-Host "[$label] extension.js not found, skipping" -ForegroundColor Yellow
continue
}

$content = [System.IO.File]::ReadAllText($file, [System.Text.Encoding]::UTF8)

if ($content.IndexOf($badUrl) -lt 0) {
Write-Host "[$label] Not affected (bad URL not found) - already patched or different version" -ForegroundColor Green
continue
}

# Count occurrences before patching
$count = ([regex]::Matches($content, [regex]::Escape($badUrl))).Count
Write-Host "[$label] Found $count occurrence(s) of the bad CI path. Patching..." -ForegroundColor Cyan

# Backup original
$backup = "$file.bak"
Copy-Item $file $backup
Write-Host "[$label] Backup saved -> extension.js.bak"

# Apply Fix 1: createRequire
$patched = [regex]::Replace($content, $pattern1, $replacement1)
$fix1count = $count - ([regex]::Matches($patched, [regex]::Escape($badUrl))).Count
Write-Host "[$label] Fix 1 (createRequire): replaced $fix1count occurrence(s)"

# Apply Fix 2: fileURLToPath wrapper
$patched2 = [regex]::Replace($patched, $pattern2, $replacement2)
$fix2count = ([regex]::Matches($patched, [regex]::Escape($badUrl))).Count `

  • ([regex]::Matches($patched2, [regex]::Escape($badUrl))).Count

Write-Host "[$label] Fix 2 (path resolver): replaced $fix2count occurrence(s)"

# Verify no bad URLs remain
$remaining = ([regex]::Matches($patched2, [regex]::Escape($badUrl))).Count
if ($remaining -gt 0) {
Write-Host "[$label] WARNING: $remaining occurrence(s) still remain after patching!" -ForegroundColor Yellow
}

# Write patched file
[System.IO.File]::WriteAllText($file, $patched2, [System.Text.Encoding]::UTF8)
Write-Host "[$label] Patched successfully" -ForegroundColor Green
Write-Host ""
}

Write-Host "Done. Reload VSCode to apply: Ctrl+Shift+P -> 'Developer: Reload Window'" -ForegroundColor White

SlothClient · 4 months ago

I undergraded plugin's version to v2.1.49, it runs, however, sometimes thorw error like this "Error: Claude Code process exited with code 3
View output logs · Troubleshooting resources"

StealUrKill · 4 months ago
I undergraded plugin's version to v2.1.49, it runs, however, sometimes thorw error like this "Error: Claude Code process exited with code 3 View output logs · Troubleshooting resources"

run the powershell above if on windows. will fix the .51 plugin error.

Noiden · 4 months ago

Same problem here. The PowerShell script above fix it.

shawnm-anthropic · 4 months ago

Hi, sorry about the disruption. We just published v2.1.52 which should hopefully work better.

scarydakis · 4 months ago

To fix this I had to both roll back to previous extension version and delete or rename .vscode\extensions\extensions.json. This was rebuilt on next VSC start and it worked from there.

johnlomat · 4 months ago

same issue

mysorenarayan1 · 4 months ago

I see the same problem, Had to revert to 2.1.49

georgiou77 · 4 months ago

This is still an issue in 2.1.55 as well @bug command 'claude-vscode.editor.openLast' its fine in 2.1.49

Artemarius · 4 months ago

I still have this issue in 2.1.56, but i can make it go away by pressing "Restart extensions" button.

github-actions[bot] · 4 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.