Open PowerShell, run irm https://claude.ai/install.ps1 | iex, close the window, open a new one, and run claude in your project. That is the whole native install: no Node.js, no WSL, no administrator rights. WinGet (winget install Anthropic.ClaudeCode) is the alternative if you manage software that way. Install inside WSL2 instead when your toolchain is Linux or when you want the Bash sandbox, which native Windows does not support. Claude Code requires Windows 10 version 1809 or later, 64-bit, with 4 GB of RAM, as of August 2026.
- Native install is one line in PowerShell and needs no WSL and no Node.js.
- Open a new terminal after installing. This is the number one Windows report.
- Use WSL2 if your project already lives there, or if you want the Bash sandbox.
- Never work on
/mnt/c/...from WSL. Microsoft says so, and the agent reads constantly. - Git for Windows is optional now: without it Claude Code uses the PowerShell tool.
claude doctorreports install health, PATH, and settings errors without starting a session.
Pick a route in ten seconds
Four routes are supported as of August 2026. They install the same native binary, so the choice is about update mechanics and which shell your code lives next to, not about capability.
Pick by where your code lives, not by preference.
| Route | Command | Pick it when | Auto-updates |
|---|---|---|---|
| Native, PowerShell | irm https://claude.ai/install.ps1 | iex | Default. Your project is on C:\ | Yes |
| Native, CMD | curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd | Same, but you are in Command Prompt | Yes |
| WinGet | winget install Anthropic.ClaudeCode | Your org manages software through WinGet | No, run winget upgrade |
| WSL2 | curl -fsSL https://claude.ai/install.sh | bash | Linux toolchain, or you want the Bash sandbox | Yes |
Install natively on Windows
Work out which shell you are in
PowerShell and CMD take different install commands, and the error you get from using the wrong one is confusing rather than descriptive. Look at your prompt.
| Your prompt shows | You are in | Wrong-command error |
|---|---|---|
PS C:\Users\You> | PowerShell | The token '&&' is not a valid statement separator |
C:\Users\You> | CMD | 'irm' is not recognized as an internal or external command |
Run the installer
irm https://claude.ai/install.ps1 | iex
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
The installer writes a self-contained binary to %USERPROFILE%\.local\bin\claude.exe. There is no Node.js in this path at any point. On success it prints Claude Code successfully installed!
Close the terminal and open a new one
The installer edits your user PATH, and a window that was already open keeps the PATH it started with. Every "I installed it but the command is not found" report on Windows starts here, and reopening the terminal ends most of them.
Verify
claude --version
# 2.1.211 (Claude Code)
claude doctor
claude doctor prints read-only installation and settings diagnostics without starting a session: install health, settings-file validation errors, the result of the last update attempt, and suggested fixes. Run it before you conclude anything is broken.
Optionally install Git for Windows
winget install --id Git.Git -e
This is no longer required. With Git for Windows present, Claude Code uses Git Bash for the Bash tool. Without it, it runs shell commands through the PowerShell tool instead. Install it if your project's scripts and tooling are Bash-based; skip it if you are working in a Windows-native toolchain.
Start in your project
cd C:\code\your-project
claude
First run sends you to a browser to authenticate. Claude Code needs a Pro, Max, Team, Enterprise, or Console account, as of August 2026; the free Claude.ai plan does not include it.
{
"env": {
"CLAUDE_CODE_GIT_BASH_PATH": "C:\\Program Files\\Git\\bin\\bash.exe"
}
}
When Windows says claude is not recognized
The installer puts the binary at %USERPROFILE%\.local\bin\claude.exe. If that directory is not on your user PATH, the install succeeded and the shell still cannot find it. Check, then add.
$env:PATH -split ';' | Select-String '\.local\\bin'
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')
where.exe claude
Test-Path "$env:USERPROFILE\.local\bin\claude.exe"
The WinGet route
winget install Anthropic.ClaudeCode
# WinGet installs do not auto-update. Do this periodically:
winget upgrade Anthropic.ClaudeCode
# Remove it:
winget uninstall Anthropic.ClaudeCode
The package installs the same binary the script does. The difference is who owns updates: native installs update themselves in the background, WinGet installs do not.
Native Windows against WSL2
What actually differs, as of August 2026.
| Native Windows | WSL2 | WSL1 | |
|---|---|---|---|
| Requires | Nothing | WSL 2 enabled | WSL 1 enabled |
| Bash sandbox | Not supported | Supported | Not supported |
| Shell tool | PowerShell, or Git Bash if installed | Bash | Bash |
| Best for projects on | C:\ | The Linux filesystem | The Linux filesystem |
| Known native-binary issue | None | None | Exec format error |
The sandbox row is the one worth reading twice. Claude Code's sandboxed Bash tool runs on macOS, Linux, and WSL2, and native Windows is not supported. If you want the agent to run most shell commands without stopping to ask, and you want the operating system rather than a prompt to enforce the boundary, you need WSL2.
# in your WSL terminal, not PowerShell
curl -fsSL https://claude.ai/install.sh | bash
exec $SHELL -l
claude --version
# sandbox dependencies, if you want them
sudo apt-get install bubblewrap socat
# work in the Linux filesystem
cd ~/projects/your-project
claude
The Windows failures, in the order they happen
Match the message, not the symptom.
| What you see | Cause | Fix |
|---|---|---|
'claude' is not recognized | Terminal predates the PATH edit | Open a new terminal; then add %USERPROFILE%\.local\bin to User PATH |
'irm' is not recognized | You are in CMD, not PowerShell | Use the install.cmd command, or switch shells |
The token '&&' is not a valid statement separator | You are in PowerShell, not CMD | Use irm ... | iex |
Claude Code does not support 32-bit Windows | You opened Windows PowerShell (x86) | Open the entry without (x86); check with [Environment]::Is64BitOperatingSystem |
Could not create SSL/TLS secure channel | Older Windows 10 TLS defaults | Run [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 first |
syntax error near unexpected token '<' | The URL returned a web page | Retry; if the page says region unavailable, Claude Code is not available in your country |
cannot execute binary file: Exec format error | WSL1 | wsl --set-version <Distro> 2 |
exec: node: not found in WSL | WSL is using Windows Node via /mnt/c | Install Node inside the distribution, or use the native installer |
claude opens the desktop app | Old Claude.exe in WindowsApps wins PATH | where.exe claude, then reorder or remove |
| Everything is slow inside WSL | Working on /mnt/c | Move the project into the Linux filesystem |
Removing it, and removing the second copy
Multiple installations are the cause of most "it updated but the version did not change" reports. Find them first, keep one, remove the rest.
where.exe claude
# native install
Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force
Remove-Item -Path "$env:USERPROFILE\.local\share\claude" -Recurse -Force
# winget install
winget uninstall Anthropic.ClaudeCode
# npm global install
npm uninstall -g @anthropic-ai/claude-code
Questions people ask
Yes. The native PowerShell and CMD installers produce a self-contained install that needs no WSL and no Node.js. WSL is a preference now, not a requirement. The one capability you give up natively is the sandboxed Bash tool, which runs only on macOS, Linux, and WSL2.
No. The native installer downloads a prebuilt binary that does not use Node at runtime. You only need Node if you deliberately install the npm package, and even that package just delivers the same native binary.
Almost always because the terminal was already open when the installer edited your PATH. Close it, open a new one, and try again. If it persists, add %USERPROFILE%\.local\bin to your User PATH and check where.exe claude for a competing install.
No. It is optional as of August 2026. With it installed, Claude Code uses Git Bash for the Bash tool. Without it, it uses the PowerShell tool. Install it if your project scripts are Bash-based.
Not natively. It is dramatically slower if you run it inside WSL against a project on /mnt/c, because every file read crosses the Windows and Linux filesystem boundary and an agent reads constantly. Microsoft recommends against working across the boundary for the same reason.
Windows 10 version 1809 or later, or Windows Server 2019 or later, on a 64-bit x64 or ARM64 processor with at least 4 GB of RAM, as of August 2026. A 32-bit PowerShell window produces a specific error even on a 64-bit machine.
Whichever matches where your code lives. Native for projects on C:, WSL2 for projects already in the Linux filesystem or when you want the sandbox. Mixing the two, so that a WSL agent works on a Windows path, is the only genuinely bad choice.
Native installs update themselves in the background and can be forced with claude update. WinGet installs need winget upgrade Anthropic.ClaudeCode, or set CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1 to have Claude Code run that upgrade for you.
Sources
Every figure above was read from these pages on August 2026. Vendors reprice without notice; if you find a stale number, tell us.