[BUG] Windows: Native installer (irm) and WinGet install to different locations, creating duplicate installations with no warning
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [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?
On Windows, Anthropic provides two official installation methods: the native PowerShell installer (irm https://claude.ai/install.ps1 | iex) and WinGet (winget install Anthropic.ClaudeCode). These install Claude Code to two completely different locations with no awareness of each other:
- WinGet installs to: C:\Users\<user>\AppData\Local\Microsoft\WinGet\Links\claude.exe
- Native installer installs to: C:\Users\<user>\.local\bin\claude.exe
When a user has the WinGet version installed and runs the native installer (for example, to get a new version before WinGet's catalog updates), both copies coexist silently. PowerShell continues using the WinGet version because of PATH priority, so the user appears stuck on the old version even though the new version was installed successfully.
Neither installer detects or warns about the other installation.
What Should Happen?
- Both installers should install to the same location, OR
- Each installer should detect if the other version exists and warn the user before proceeding, OR
- At minimum, the native installer should check PATH priority and warn if another claude.exe will take precedence after installation
The Mac experience is one installer, one location, one updater. Windows users should have the same consistency.
Error Messages/Logs
No errors are displayed. Both installations succeed silently, which is the core problem. The only way to discover the issue is by running:
Get-Command claude | Format-List
This reveals which claude.exe PowerShell is actually using and its version, exposing that the newer native installation is being ignored in favor of the older WinGet installation due to PATH priority.
Steps to Reproduce
- Install Claude Code via WinGet: winget install Anthropic.ClaudeCode
- Confirm installation: Get-Command claude | Format-List (shows C:\Users\<user>\AppData\Local\Microsoft\WinGet\Links\claude.exe)
- Run claude update - it reports a newer version is available but winget upgrade doesn't have it yet
- Run the native installer: irm https://claude.ai/install.ps1 | iex
- Native installer reports success and installs to C:\Users\<user>\.local\bin\claude.exe
- Run claude --version - still shows the OLD version because WinGet's PATH entry takes priority
- User now has two separate Claude Code installations with no warning
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.70
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
PowerShell
Additional Information
Related existing issues about Windows installation confusion:
- #6920 (no uninstall documentation for native build on Windows)
- #6349 (how to completely uninstall on Windows)
- #11571 (requesting WinGet docs instead of PS1 script)
WinGet supports specifying install locations via installer manifest arguments. Anthropic could configure both methods to use the same path. This would eliminate the dual-installation problem entirely.
The delay between Anthropic publishing a new version and WinGet's catalog updating is what drives users to try the native installer in the first place, making this collision likely for any Windows user who wants the latest version promptly.
Running 2.1.70 because 2.1.71 is not yet available via WinGet, which is precisely what led to discovering this bug.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗