[BUG] /desktop fails on Windows when Claude Desktop is installed as MSIX/Store package (refile of #36079)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet (an earlier report — #36079 — was auto-closed by the stale-bot on 2026-04-16 with the explicit instruction "Please open a new issue if this is still relevant." That issue is now auto-locked, so this is a refile per the bot's instruction).
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
/desktop fails on Windows when Claude Desktop is installed as an MSIX/Appx package — which is the delivery method when installing from https://claude.ai/download today.
The launcher appears to look for either:
- A Win32 install at
%LocalAppData%\AnthropicClaude\app-X.X.X\claude.exe(or similar Squirrel path), or - A classic
HKCR:\claude\shell\open\commandregistry key.
Neither exists for MSIX installs:
- The binary lives at
C:\Program Files\WindowsApps\Claude_<ver>_x64__pzs8sxrjxfjjc\app\Claude.exe— a protected directory that user-space processes can't enumerate. - The MSIX package registers the
claude://URI handler through its manifest'swindows.protocolextension (URI Activation), not via a classicshell\open\commandkey — so neitherHKCR:\claude\shell\open\commandnorHKCU:\Software\Classes\claude\shell\open\commandexists.
Despite the failure, Windows URI activation for the claude:// scheme is fully working — see verification below.
What Should Happen?
/desktop opens Claude Desktop and hands off the current session.
As a fallback when no Win32 install / HKCR:\claude registration is found, the launcher should ShellExecute the claude://... URL (or cmd /c start "" "claude://..."). Windows will route the URI activation through whichever handler is registered — MSIX or Win32 — and the MSIX package's protocol extension handles it correctly.
Error Messages/Logs
Failed to open Claude Desktop. Please try opening it manually.
Steps to Reproduce
- Install Claude Desktop on Windows by downloading from https://claude.ai/download (delivered as an MSIX/Appx package).
- Confirm install —
Get-AppxPackage -Name "*Claude*"returnsClaude_pzs8sxrjxfjjcand the executable is atC:\Program Files\WindowsApps\Claude_<ver>_x64__pzs8sxrjxfjjc\app\Claude.exe. - Confirm URI activation works —
Start-Process "claude://"from PowerShell launches the app. - Run
/desktopin Claude Code CLI → fails with the message above.
Diagnostic Evidence (collected on my machine)
- Running Claude Desktop process path:
C:\Program Files\WindowsApps\Claude_1.7196.1.0_x64__pzs8sxrjxfjjc\app\Claude.exe(confirmed viaGet-ProcessandGet-CimInstance Win32_Process). - Package family name:
Claude_pzs8sxrjxfjjc(AUMID:Claude_pzs8sxrjxfjjc!Claude). - Manifest declares
claudeprotocol:Get-AppxPackage Claude | manifest readshowswindows.protocolextension withName="claude". - No
Claude.exeunder any of:%LocalAppData%\Programs\claude,%LocalAppData%\AnthropicClaude,%ProgramFiles%\Claude,%ProgramFiles(x86)%\Claude. - No
Claude*entry in Windows uninstall registry (HKLM\...\UninstallorHKCU\...\Uninstall). reg query "HKCR\claude\shell\open\command"→ "The system was unable to find the specified registry key or value."Start-Process "claude://"→ succeeds, brings the running Claude Desktop to focus.
Suggested Fix
When the existing Win32-path / HKCR:\claude detection fails on Windows, fall back to ShellExecute (or cmd /c start "" "claude://...") on the claude:// URL with the session payload. Windows resolves the URI activation through whichever handler is registered — MSIX or Win32. As a belt-and-braces option, also detect MSIX installs via Get-AppxPackage (package name Claude, family Claude_pzs8sxrjxfjjc) for a clearer "found"/"not found" signal in error messages.
Claude Code Version
2.1.143
Platform
Anthropic API
Operating System
Windows 11 Home 10.0.26200
Terminal/Shell
PowerShell 7
Additional Information
- Claude Desktop package:
Claude_1.7196.1.0_x64__pzs8sxrjxfjjc(MSIX, installed via the installer downloaded from https://claude.ai/download) - Related: #36079 (original report, auto-closed by stale-bot 2026-04-16, locked 2026-04-23)
Showing cached comments. Read the full discussion on GitHub ↗
9 Comments
Confirmed Workaround (tested on Windows 11 Pro, CLI 2.1.143, Store package 1.7196.0.0)
Hit the same issue independently and found that a protocol-forwarding shim at the expected path fully resolves it. This also fixes a related problem: the Desktop app's local session discovery (
LocalSessions) failing to show active CLI sessions in the sidebar via Remote Control.The fix (takes 30 seconds)
1. Compile a 3KB shim executable:
2. Create the registry entry the CLI uses for discovery:
3. (Belt and braces) Add to user PATH:
Restart any open Claude Code sessions after this.
What this fixes
| Before | After |
|--------|-------|
|
/desktop→ "Failed to open Claude Desktop" |/desktop→ session opens in Desktop app || Desktop app sidebar shows no active CLI sessions | Desktop discovers and displays active CLI sessions via Remote Control |
Why it works
The CLI checks for a Claude Desktop installation via filesystem paths and/or the Uninstall registry. The MSIX package creates neither. The shim executable simply forwards any arguments to the
claude://protocol handler that the MSIX package does register — so Windows routes it to the running Store app. This bridges the gap between the CLI's Win32-era discovery logic and the MSIX packaging model.Regarding the upstream fix
+1 to the proposed
ShellExecutefallback onclaude://. The shim approach proves the protocol handler path works perfectly. The proper fix in the CLI should be:Get-AppxPackage -Name "Claude"or just attemptShellExecute("claude://code/<sessionId>")See also: #59883 (my independent report of the same issue, filed before finding this one)
Confirming this bug is still present on the latest Claude Code and Claude Desktop as of 2026-05-25 — over a week after #61194 was filed and auto-closed as a duplicate of this thread.
Environment
Claude_1.8555.2.0_x64__pzs8sxrjxfjjc(installed via the.exeinstaller from https://claude.ai/download — which delivers as MSIX)Symptom
/desktop→Error: Failed to open Claude Desktop. Please try opening it manually.Verified working alternatives on the same machine (so install + protocol handler are healthy, the CLI launcher is the broken piece):
Start-Process "claude://"→ opens the appStart-Process "shell:AppsFolder\Claude_pzs8sxrjxfjjc!Claude"→ opens the appThe MSIX-aware diagnosis in this issue still matches current behaviour exactly. The official installer at https://claude.ai/download continues to deliver Claude Desktop as an MSIX package, so every new Windows install hits this immediately on first
/desktop.Confirming on Windows 11 + adding a secondary finding
Environment
Claude_1.11187.4.0_x64__pzs8sxrjxfjjcClaude_pzs8sxrjxfjjcClaude_pzs8sxrjxfjjc!ClaudeC:\Program Files\WindowsApps\Claude_1.11187.4.0_x64__pzs8sxrjxfjjc/desktopreturns:Confirmed root cause (matches the issue): the launcher only resolves Win32
installs (
%LocalAppData%\AnthropicClaude\app-*\claude.exe) and the classicHKCR\claude\shell\open\commandregistry handler. An MSIX install has neither —it lives in protected
WindowsAppsand registers a modern packaged protocolhandler instead.
Confirming this also affects installs from the official website installer, not only the Microsoft Store:
ClaudeSetup.exe(~6.7 MB bootstrapper) downloaded from claude.com/downloadGet-AppxPackage ClaudeshowsSignatureKind: Developer— i.e. a sideloaded MSIX from the website bootstrapper, not a Store install. On this machine there is:%LOCALAPPDATA%\AnthropicClaudedirectory (legacy Squirrel path),claude.exeexecution alias in%LOCALAPPDATA%\Microsoft\WindowsApps,...\CurrentVersion\Uninstall./desktopfails with "Failed to open Claude Desktop. Please try opening it manually."Launching via AUMID works fine as a workaround:
Since the website installer now ships MSIX, this presumably affects all new Windows installs, not just Store users.
Still reproducing. Claude Code CLI v2.1.77, Claude Desktop MSIX package Claude_1.12603.1.0_x64__pzs8sxrjxfjjc (confirmed via Get-AppxPackage Claude), Windows. /desktop returns "Failed to open Claude Desktop. Please try opening it manually." despite the desktop app being installed and running. The claude:// protocol handler works correctly on this machine (Start-Process "claude://" launches the app), so the one-line ShellExecute("claude://...") fallback suggested in #59692 would resolve this. Adding a current-version data point since the prior reports were on earlier builds.
Still reproduces on current versions — confirming this is not fixed as of:
Claude_1.14271.0.0_x64__pzs8sxrjxfjjc(MSIX / Microsoft Store)/desktopfails withError: Failed to open Claude Desktop. Please try opening it manually.—both when typed manually in the TUI and when sent programmatically.
+1 — would really appreciate a fix or a timeline. Thanks!
Still repro on Claude Code 2.1.187 + Claude Desktop MSIX 1.15200.0.0 (Claude_…pzs8sxrjxfjjc, Get-AppxPackage status=Ok), Windows 10. Start-Process "claude://" and AUMID activation both work manually, but /desktop always fails with “Failed to open Claude Desktop.” A shim placed at %LOCALAPPDATA%\AnthropicClaude\app-X.X.X\claude.exe is never invoked, so even the Win32-path detection isn’t firing. The one-line ShellExecute("claude://") fallback would fix all MSIX installs.
Additional data point: the suggested
cmd /c startfix is already shipping in 2.1.196 and still fails — root cause is the Bun child_process exit codeOn current Claude Code (2.1.196, native/Bun build) the desktop handoff already does exactly what this issue suggested:
…and it still reports
Failed to open Claude Desktop. I traced it with--debug-file:There is no following
execFileNoThrow spawn failedline — i.e. the spawn does not throw. Socmd /c start "" "<url>"runs and returns a non-zero exit code under the Bun-compiled CLI, andMOf(which gates success onexitCode === 0) treats that as failure.The exact same command returns exit 0 and successfully launches the app when run from any external shell —
cmd, PowerShell, hidden window, piped stdio, with the project cwd, and via both MSIX protocol activation and a classicshell\open\command. I could not reproduce a non-zero exit anywhere outside the CLI's ownchild_processinvocation. Sostart's exit code is simply not a reliable success signal here.Install type is irrelevant. This reproduces on MSIX (my setup,
Claude_pzs8sxrjxfjjcv1.15962.1) and on Squirrel/%LOCALAPPDATA%\AnthropicClaude(see #61194).Start-Process "claude://..."works in both. The bug is purely in how the launcher interprets thecmd /c startresult.Suggested fix: on Windows, don't gate success on the
cmd /c startexit code. Options:ShellExecuteEx/Start-Processon theclaude://URL directly and treat a non-throwing launch as success, orexplorer.exe "claude://...", orexitCode === 0check for this code path).Env: Claude Code 2.1.196 (native/Bun), Windows 11 Enterprise 10.0.26200, Claude Desktop MSIX v1.15962.1.
I'm hitting the same issue.
Running
/desktopfails with:"Failed to open Claude Desktop. Please try opening it manually."
+1 for prioritizing a fix.