Advanced setup
> ## Documentation Index > Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt > Use this file to discover all available pages before exploring further.
Overview
Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt Use this file to discover all available pages before exploring further.
Advanced setup
System requirements, platform-specific installation, version management, and uninstallation for Claude Code.
This page covers system requirements, platform-specific installation details, updates, and uninstallation. For a guided walkthrough of your first session, see the quickstart. If you've never used a terminal before, see the terminal guide.
System requirements
Claude Code runs on the following platforms and configurations:
- Operating system:
- macOS 13.0+
- Windows 10 1809+ or Windows Server 2019+
- Ubuntu 20.04+
- Debian 10+
- Alpine Linux 3.19+
- Hardware: 4 GB+ RAM, x64 or ARM64 processor
- Network: internet connection required. See network configuration.
- Shell: Bash, Zsh, PowerShell, or CMD. Native Windows setups require Git for Windows. WSL setups do not.
- Location: Anthropic supported countries
Additional dependencies
- ripgrep: usually included with Claude Code. If search fails, see search troubleshooting.
Install Claude Code
Prefer a graphical interface? The Desktop app lets you use Claude Code without the terminal. Download it for macOS or Windows.
New to the terminal? See the terminal guide for step-by-step instructions.
To install Claude Code, use one of the following methods:
**macOS, Linux, WSL:**
```bash theme={null}
curl -fsSL https://claude.ai/install.sh | bash
```
**Windows PowerShell:**
```powershell theme={null}
irm https://claude.ai/install.ps1 | iex
```
**Windows CMD:**
```batch theme={null}
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
```
If you see `The token '&&' is not a valid statement separator`, you're in PowerShell, not CMD. If you see `'irm' is not recognized as an internal or external command`, you're in CMD, not PowerShell. Your prompt shows `PS C:\\` when you're in PowerShell and `C:\\` without the `PS` when you're in CMD.
**Native Windows setups require [Git for Windows](https://git-scm.com/downloads/win).** Install it first if you don't have it. WSL setups do not need it.
Native installations automatically update in the background to keep you on the latest version.
```bash theme={null}
brew install --cask claude-code
```
Homebrew offers two casks. `claude-code` tracks the stable release channel, which is typically about a week behind and skips releases with major regressions. `claude-code@latest` tracks the latest channel and receives new versions as soon as they ship.
Homebrew installations do not auto-update. Run `brew upgrade claude-code` or `brew upgrade claude-code@latest`, depending on which cask you installed, to get the latest features and security fixes.
```powershell theme={null}
winget install Anthropic.ClaudeCode
```
WinGet installations do not auto-update. Run `winget upgrade Anthropic.ClaudeCode` periodically to get the latest features and security fixes.
You can also install with apt, dnf, or apk on Debian, Fedora, RHEL, and Alpine.
After installation completes, open a terminal in the project you want to work in and start Claude Code:
claude
If you encounter any issues during installation, see the troubleshooting guide.
Set up on Windows
You can run Claude Code natively on Windows or inside WSL. Pick based on where your projects are located and which features you need:
| Option | Requires | Sandboxing | When to use |
|---|---|---|---|
| Native Windows | Git for Windows | Not supported | Windows-native projects and tools |
| WSL 2 | WSL 2 enabled | Supported | Linux toolchains or sandboxed command execution |
| WSL 1 | WSL 1 enabled | Not supported | If WSL 2 is unavailable |
Option 1: Native Windows with Git Bash
Install Git for Windows, then run the install command from PowerShell or CMD. You do not need to run as Administrator.
Whether you install from PowerShell or CMD only affects which install command you run. Your prompt shows PS C:\\Users\\YourName> in PowerShell and C:\\Users\\YourName> without the PS in CMD. If you're new to the terminal, the terminal guide walks through each step.
After installation, launch claude from PowerShell, CMD, or Git Bash. Claude Code uses Git Bash internally to execute commands regardless of where you launched it. If Claude Code can't find your Git Bash installation, set the path in your settings.json file:
{
"env": {
"CLAUDE_CODE_GIT_BASH_PATH": "C:\\\\Program Files\\\\Git\\\\bin\\\\bash.exe"
}
}
Claude Code can also run PowerShell natively on Windows. The PowerShell tool is rolling out progressively; set CLAUDE_CODE_USE_POWERSHELL_TOOL=1 to opt in or 0 to opt out. See PowerShell tool for setup and limitations.
Option 2: WSL
Open your WSL distribution and run the Linux installer from the install instructions above. You install and launch claude inside the WSL terminal, not from PowerShell or CMD.
Alpine Linux and musl-based distributions
The native installer on Alpine and other musl/uClibc-based distributions requires libgcc, libstdc++, and ripgrep. Install these using your distribution's package manager, then set USE_BUILTIN_RIPGREP=0.
This example installs the required packages on Alpine:
apk add libgcc libstdc++ ripgrep
Then set USE_BUILTIN_RIPGREP to 0 in your settings.json file:
{
"env": {
"USE_BUILTIN_RIPGREP": "0"
}
}
Verify your installation
After installing, confirm Claude Code is working:
claude --version
For a more detailed check of your installation and configuration, run claude doctor:
claude doctor
Authenticate
Claude Code requires a Pro, Max, Team, Enterprise, or Console account. The free Claude.ai plan does not include Claude Code access. You can also use Claude Code with a third-party API provider like Amazon Bedrock, Google Vertex AI, or Microsoft Foundry.
After installing, log in by running claude and following the browser prompts. See Authentication for all account types and team setup options.
Update Claude Code
Native installations automatically update in the background. You can configure the release channel to control whether you receive updates immediately or on a delayed stable schedule, or disable auto-updates entirely. Homebrew, WinGet, and Linux package manager installations require manual updates.
Auto-updates
Claude Code checks for updates on startup and periodically while running. Updates download and install in the background, then take effect the next time you start Claude Code.
Homebrew, WinGet, apt, dnf, and apk installations do not auto-update. For Homebrew, run brew upgrade claude-code or brew upgrade claude-code@latest, depending on which cask you installed. For WinGet, run winget upgrade Anthropic.ClaudeCode. For Linux package managers, see the upgrade commands in Install with Linux package managers.
Known issue: Claude Code may notify you of updates before the new version is available in these package managers. If an upgrade fails, wait and try again later.
Homebrew keeps old versions on disk after upgrades. Run brew cleanup periodically to reclaim disk space.
Configure release channel
Control which release channel Claude Code follows for auto-updates and claude update with the autoUpdatesChannel setting:
"latest", the default: receive new features as soon as they're released"stable": use a version that is typically about one week old, skipping releases with major regressions
Configure this via /config → Auto-update channel, or add it to your settings.json file:
{
"autoUpdatesChannel": "stable"
}
For enterprise deployments, you can enforce a consistent release channel across your organization using managed settings.
Homebrew installations choose a channel by cask name instead of this setting: claude-code tracks stable and claude-code@latest tracks latest.
Pin a minimum version
The minimumVersion setting establishes a floor. Background auto-updates and claude update refuse to install any version below this value, so moving to the "stable" channel does not downgrade you if you are already on a newer "latest" build.
Switching from "latest" to "stable" via /config prompts you to either stay on the current version or allow the downgrade. Choosing to stay sets minimumVersion to that version. Switching back to "latest" clears it.
Add it to your settings.json file to pin a floor explicitly:
{
"autoUpdatesChannel": "stable",
"minimumVersion": "2.1.100"
}
In managed settings, this enforces an organization-wide minimum that user and project settings cannot override.
Disable auto-updates
Set DISABLE_AUTOUPDATER to "1" in the env key of your settings.json file:
{
"env": {
"DISABLE_AUTOUPDATER": "1"
}
}
DISABLE_AUTOUPDATER only stops the background check; claude update and claude install still work. To block all update paths, including manual updates, set DISABLE_UPDATES instead. Use this when you distribute Claude Code through your own channels and need users to stay on the version you provide.
Update manually
To apply an update immediately without waiting for the next background check, run:
claude update
Advanced installation options
These options are for version pinning, Linux package managers, npm, and verifying binary integrity.
Install a specific version
The native installer accepts either a specific version number or a release channel (latest or stable). The channel you choose at install time becomes your default for auto-updates. See configure release channel for more information.
To install the latest version (default):
```bash theme={null}
curl -fsSL https://claude.ai/install.sh | bash
```
```powershell theme={null}
irm https://claude.ai/install.ps1 | iex
```
```batch theme={null}
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
```
To install the stable version:
```bash theme={null}
curl -fsSL https://claude.ai/install.sh | bash -s stable
```
```powershell theme={null}
& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stable
```
```batch theme={null}
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd stable && del install.cmd
```
To install a specific version number:
```bash theme={null}
curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89
```
```powershell theme={null}
& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89
```
```batch theme={null}
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd 2.1.89 && del install.cmd
```
Install with Linux package managers
Claude Code publishes signed apt, dnf, and apk repositories. Replace stable with latest for the rolling channel. Package manager installations do not auto-update through Claude Code; updates arrive through your normal system upgrade workflow.
All repositories are signed with the Claude Code release signing key. Before trusting the key, verify it as described in each tab.
For Debian and Ubuntu. To use the rolling channel, change both `stable` occurrences in the `deb` line: the URL path and the suite name.
```bash theme={null}
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \\
-o /etc/apt/keyrings/claude-code.asc
echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \\
| sudo tee /etc/apt/sources.list.d/claude-code.list
sudo apt update
sudo apt install claude-code
```
Verify the GPG key fingerprint before trusting it: `gpg --show-keys /etc/apt/keyrings/claude-code.asc` should report `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE`.
To upgrade later, run `sudo apt update && sudo apt upgrade claude-code`.
For Fedora and RHEL:
```bash theme={null}
sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'
[claude-code]
name=Claude Code
baseurl=https://downloads.claude.ai/claude