[BUG] Windows: Native installer (irm) and WinGet install to different locations, creating duplicate installations with no warning

Resolved 💬 4 comments Opened Mar 8, 2026 by tahlyn Closed Apr 5, 2026

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?

  1. Both installers should install to the same location, OR
  2. Each installer should detect if the other version exists and warn the user before proceeding, OR
  3. 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

  1. Install Claude Code via WinGet: winget install Anthropic.ClaudeCode
  2. Confirm installation: Get-Command claude | Format-List (shows C:\Users\<user>\AppData\Local\Microsoft\WinGet\Links\claude.exe)
  3. Run claude update - it reports a newer version is available but winget upgrade doesn't have it yet
  4. Run the native installer: irm https://claude.ai/install.ps1 | iex
  5. Native installer reports success and installs to C:\Users\<user>\.local\bin\claude.exe
  6. Run claude --version - still shows the OLD version because WinGet's PATH entry takes priority
  7. 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.

View original on GitHub ↗

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