Advanced setup changedsetup
Nearest release: v2.1.300, published 2 hours before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Upstream edited this page at 14 Oct 2026 17:25 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 20 Oct 2026 18:37 UTC.
Upstream edited
Recorded here
Lines+340added
Lines−370removed
From line
25
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits27to this page, all time
The whole hunk
from line 25, old and new numbered
/
The two sides of this change are more than 400 edits apart, too far apart to line up, so this is the differ's own diff of it and the words inside a line are not marked.
from line 25
2525
2626## Install Claude Code
2727
28<Tip>
29 Prefer a graphical interface? The [Desktop app](/docs/en/desktop-quickstart) lets you use Claude Code without the terminal. Download it for [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs), [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs), or [Linux](/docs/en/desktop-linux).
30</Tip>
28> [!TIP]
29>
30> Prefer a graphical interface? The [Desktop app](/docs/en/desktop-quickstart) lets you use Claude Code without the terminal. Download it for [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs), [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs), or [Linux](/docs/en/desktop-linux).
3131
3232To install Claude Code, open a terminal and run the command for your system. If you haven't used a terminal before, the [terminal guide](/docs/en/terminal-guide) shows how to open one and paste the command.
3333
34<Tabs>
35 <Tab title="Native Install (Recommended)">
36 **macOS, Linux, WSL:**
37
38 ```bash theme={null}
39 curl -fsSL https://claude.ai/install.sh | bash
40 ```
41
42 On Windows, your prompt shows `PS C:\` when you're in PowerShell and `C:\` without the `PS` when you're in CMD.
43
44 **Windows PowerShell:**
45
46 ```powershell theme={null}
47 irm https://claude.ai/install.ps1 | iex
48 ```
49
50 **Windows CMD:**
51
52 ```batch theme={null}
53 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
54 ```
55
56 The install command shows no progress while it downloads Claude Code. When the installer finishes, open a new terminal window and run `claude --version`. A working installation prints a version number. If your shell says `claude` isn't found or isn't recognized, the install directory isn't on your PATH yet: see [Fix your PATH](/docs/en/troubleshoot-install#command-not-found-claude-after-installation).
57
58 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.
59
60 If the install command fails with `syntax error near unexpected token '<'`, a `403`, or any other error, see [Troubleshoot installation](/docs/en/troubleshoot-install#find-your-error) to match the error to a fix and for alternative install methods.
61
62 [Git for Windows](https://git-scm.com/downloads/win) is recommended on native Windows so Claude Code can use the Bash tool. If Git for Windows is not installed, Claude Code uses PowerShell as the shell tool instead. WSL setups do not need Git for Windows.
63
64 <Info>
65 Native installations automatically update in the background to keep you on the latest version.
66 </Info>
67 </Tab>
68
69 <Tab title="Homebrew">
70 ```bash theme={null}
71 brew install --cask claude-code
72 ```
73
74 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.
75
76 <Info>
77 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.
78 </Info>
79 </Tab>
80
81 <Tab title="WinGet">
82 ```powershell theme={null}
83 winget install Anthropic.ClaudeCode
84 ```
85
86 <Info>
87 WinGet installations do not auto-update. Run `winget upgrade Anthropic.ClaudeCode` periodically to get the latest features and security fixes.
88 </Info>
89 </Tab>
90</Tabs>
34**Native Install (Recommended)**
35
36**macOS, Linux, WSL:**
37
38```bash theme={null}
39curl -fsSL https://claude.ai/install.sh | bash
40```
41
42On Windows, your prompt shows `PS C:\` when you're in PowerShell and `C:\` without the `PS` when you're in CMD.
43
44**Windows PowerShell:**
45
46```powershell theme={null}
47irm https://claude.ai/install.ps1 | iex
48```
49
50**Windows CMD:**
51
52```batch theme={null}
53curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
54```
55
56The install command shows no progress while it downloads Claude Code. When the installer finishes, open a new terminal window and run `claude --version`. A working installation prints a version number. If your shell says `claude` isn't found or isn't recognized, the install directory isn't on your PATH yet: see [Fix your PATH](/docs/en/troubleshoot-install#command-not-found-claude-after-installation).
57
58If 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.
59
60If the install command fails with `syntax error near unexpected token '<'`, a `403`, or any other error, see [Troubleshoot installation](/docs/en/troubleshoot-install#find-your-error) to match the error to a fix and for alternative install methods.
61
62[Git for Windows](https://git-scm.com/downloads/win) is recommended on native Windows so Claude Code can use the Bash tool. If Git for Windows is not installed, Claude Code uses PowerShell as the shell tool instead. WSL setups do not need Git for Windows.
63
64> [!NOTE]
65>
66> Native installations automatically update in the background to keep you on the latest version.
67
68**Homebrew**
69
70```bash theme={null}
71brew install --cask claude-code
72```
73
74Homebrew 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.
75
76> [!NOTE]
77>
78> 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.
79
80**WinGet**
81
82```powershell theme={null}
83winget install Anthropic.ClaudeCode
84```
85
86> [!NOTE]
87>
88> WinGet installations do not auto-update. Run `winget upgrade Anthropic.ClaudeCode` periodically to get the latest features and security fixes.
9189
9290You can also install with [apt, dnf, or apk](/docs/en/setup#install-with-linux-package-managers) on Debian, Fedora, RHEL, and Alpine.
9391
from line 206
208206
209207If an npm global install can't auto-update because the npm global directory isn't writable, Claude Code shows a one-time notice at startup, and `claude doctor` lists the available fixes. See [permission errors during installation](/docs/en/troubleshoot-install#permission-errors-during-installation) for details.
210208
211<Note>
212 Homebrew, WinGet, apt, dnf, and apk installations do not auto-update by default; see below to opt in for Homebrew and WinGet. To upgrade Homebrew manually, 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](#install-with-linux-package-managers).
213
214 To have Claude Code run the upgrade command for you on Homebrew or WinGet, set [`CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE`](/docs/en/env-vars) to `1`. Claude Code then runs the upgrade in the background when a new version is available and shows a restart prompt on success. The upgrade targets only the Claude Code package and does not affect other software you have installed.
215
216 On WinGet the upgrade may fail while Claude Code is running because Windows locks the executable. In that case Claude Code shows the manual command instead. apt, dnf, and apk continue to require a manual upgrade because those commands need elevated privileges.
217
218 **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.
219
220 Homebrew keeps old versions on disk after upgrades. Run `brew cleanup` periodically to reclaim disk space.
221</Note>
209> [!NOTE]
210>
211> Homebrew, WinGet, apt, dnf, and apk installations do not auto-update by default; see below to opt in for Homebrew and WinGet. To upgrade Homebrew manually, 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](#install-with-linux-package-managers).
212>
213> To have Claude Code run the upgrade command for you on Homebrew or WinGet, set [`CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE`](/docs/en/env-vars) to `1`. Claude Code then runs the upgrade in the background when a new version is available and shows a restart prompt on success. The upgrade targets only the Claude Code package and does not affect other software you have installed.
214>
215> On WinGet the upgrade may fail while Claude Code is running because Windows locks the executable. In that case Claude Code shows the manual command instead. apt, dnf, and apk continue to require a manual upgrade because those commands need elevated privileges.
216>
217> **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.
218>
219> Homebrew keeps old versions on disk after upgrades. Run `brew cleanup` periodically to reclaim disk space.
222220
223221### Configure release channel
224222
from line 296
298296
299297To install the latest version (default):
300298
301<Tabs>
302 <Tab title="macOS, Linux, WSL">
303 ```bash theme={null}
304 curl -fsSL https://claude.ai/install.sh | bash
305 ```
306 </Tab>
307
308 <Tab title="Windows PowerShell">
309 ```powershell theme={null}
310 irm https://claude.ai/install.ps1 | iex
311 ```
312 </Tab>
313
314 <Tab title="Windows CMD">
315 ```batch theme={null}
316 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
317 ```
318 </Tab>
319</Tabs>
299**macOS, Linux, WSL**
300
301```bash theme={null}
302curl -fsSL https://claude.ai/install.sh | bash
303```
304
305**Windows PowerShell**
306
307```powershell theme={null}
308irm https://claude.ai/install.ps1 | iex
309```
310
311**Windows CMD**
312
313```batch theme={null}
314curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
315```
320316
321317To install the stable version:
322318
323<Tabs>
324 <Tab title="macOS, Linux, WSL">
325 ```bash theme={null}
326 curl -fsSL https://claude.ai/install.sh | bash -s stable
327 ```
328 </Tab>
329
330 <Tab title="Windows PowerShell">
331 ```powershell theme={null}
332 & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stable
333 ```
334 </Tab>
335
336 <Tab title="Windows CMD">
337 ```batch theme={null}
338 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd stable && del install.cmd
339 ```
340 </Tab>
341</Tabs>
319**macOS, Linux, WSL**
320
321```bash theme={null}
322curl -fsSL https://claude.ai/install.sh | bash -s stable
323```
324
325**Windows PowerShell**
326
327```powershell theme={null}
328& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stable
329```
330
331**Windows CMD**
332
333```batch theme={null}
334curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd stable && del install.cmd
335```
342336
343337To install a specific version number:
344338
345<Tabs>
346 <Tab title="macOS, Linux, WSL">
347 ```bash theme={null}
348 curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89
349 ```
350 </Tab>
351
352 <Tab title="Windows PowerShell">
353 ```powershell theme={null}
354 & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89
355 ```
356 </Tab>
357
358 <Tab title="Windows CMD">
359 ```batch theme={null}
360 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd 2.1.89 && del install.cmd
361 ```
362 </Tab>
363</Tabs>
339**macOS, Linux, WSL**
340
341```bash theme={null}
342curl -fsSL https://claude.ai/install.sh | bash -s 2.1.89
343```
344
345**Windows PowerShell**
346
347```powershell theme={null}
348& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89
349```
350
351**Windows CMD**
352
353```batch theme={null}
354curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd 2.1.89 && del install.cmd
355```
364356
365357To confirm which version installed, run `claude --version`: the command prints the exact version you passed, such as `2.1.89 (Claude Code)`.
366358
from line 362
370362
371363All repositories are signed with the [Claude Code release signing key](#binary-integrity-and-code-signing). Before trusting the key, verify it as described in each tab.
372364
373<Tabs>
374 <Tab title="apt">
375 For Debian and Ubuntu. The install commands below download the signing key with `curl` and verify it with `gpg`, which fresh Debian and Ubuntu installations may not include. If either command reports `command not found`, install both first:
376
377 ```bash theme={null}
378 sudo apt install curl gnupg
379 ```
380
381 Download the signing key:
382
383 ```bash theme={null}
384 sudo install -d -m 0755 /etc/apt/keyrings
385 sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \
386 -o /etc/apt/keyrings/claude-code.asc
387 ```
388
389 If this download fails, `apt update` later fails with `NO_PUBKEY BAA929FF1A7ECACE`. Confirm the key downloaded and belongs to Anthropic before continuing:
390
391 ```bash theme={null}
392 gpg --show-keys /etc/apt/keyrings/claude-code.asc
393 ```
394
395 The fingerprint gpg prints should be `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. If gpg reports that the file can't be opened or contains no valid OpenPGP data, the download failed or returned the wrong content: confirm your network can reach `downloads.claude.ai`, then rerun the download command.
396
397 Register the repository on the `stable` channel and install:
398
399 ```bash theme={null}
400 echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \
401 | sudo tee /etc/apt/sources.list.d/claude-code.list
402 sudo apt update
403 sudo apt install claude-code
404 ```
405
406 To use the `latest` channel instead, both the URL path and the suite name change. Use this `deb` line:
407
408 ```bash theme={null}
409 echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/latest latest main" \
410 | sudo tee /etc/apt/sources.list.d/claude-code.list
411 ```
412
413 To upgrade later, run `sudo apt update && sudo apt upgrade claude-code`.
414 </Tab>
415
416 <Tab title="dnf">
417 For Fedora and RHEL. The following commands configure the `stable` channel:
418
419 ```bash theme={null}
420 sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'
421 [claude-code]
422 name=Claude Code
423 baseurl=https://downloads.claude.ai/claude-code/rpm/stable
424 enabled=1
425 gpgcheck=1
426 gpgkey=https://downloads.claude.ai/keys/claude-code.asc
427 EOF
428 sudo dnf install claude-code
429 ```
430
431 To use the `latest` channel instead, set `baseurl` to the `latest` repository:
432
433 ```ini theme={null}
434 baseurl=https://downloads.claude.ai/claude-code/rpm/latest
435 ```
436
437 dnf downloads the key on first install and prompts you to confirm the fingerprint. Verify it matches `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` before accepting.
438
439 To upgrade later, run `sudo dnf upgrade claude-code`.
440 </Tab>
441
442 <Tab title="apk">
443 For Alpine Linux. The following commands configure the `stable` channel:
444
445 ```sh theme={null}
446 wget -O /etc/apk/keys/claude-code.rsa.pub \
447 https://downloads.claude.ai/keys/claude-code.rsa.pub
448 echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories
449 apk add claude-code
450 ```
451
452 To switch to the `latest` channel, remove the `stable` repository line and add the `latest` repository:
453
454 ```sh theme={null}
455 sed -i '\|downloads.claude.ai/claude-code/apk/stable|d' /etc/apk/repositories
456 echo "https://downloads.claude.ai/claude-code/apk/latest" >> /etc/apk/repositories
457 ```
458
459 Verify the downloaded key with `sha256sum /etc/apk/keys/claude-code.rsa.pub`, which should report `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6`.
460
461 To upgrade later, run `apk update && apk upgrade claude-code`.
462 </Tab>
463</Tabs>
365**apt**
366
367For Debian and Ubuntu. The install commands below download the signing key with `curl` and verify it with `gpg`, which fresh Debian and Ubuntu installations may not include. If either command reports `command not found`, install both first:
368
369```bash theme={null}
370sudo apt install curl gnupg
371```
372
373Download the signing key:
374
375```bash theme={null}
376sudo install -d -m 0755 /etc/apt/keyrings
377sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \
378 -o /etc/apt/keyrings/claude-code.asc
379```
380
381If this download fails, `apt update` later fails with `NO_PUBKEY BAA929FF1A7ECACE`. Confirm the key downloaded and belongs to Anthropic before continuing:
382
383```bash theme={null}
384gpg --show-keys /etc/apt/keyrings/claude-code.asc
385```
386
387The fingerprint gpg prints should be `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. If gpg reports that the file can't be opened or contains no valid OpenPGP data, the download failed or returned the wrong content: confirm your network can reach `downloads.claude.ai`, then rerun the download command.
388
389Register the repository on the `stable` channel and install:
390
391```bash theme={null}
392echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \
393 | sudo tee /etc/apt/sources.list.d/claude-code.list
394sudo apt update
395sudo apt install claude-code
396```
397
398To use the `latest` channel instead, both the URL path and the suite name change. Use this `deb` line:
399
400```bash theme={null}
401echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/latest latest main" \
402 | sudo tee /etc/apt/sources.list.d/claude-code.list
403```
404
405To upgrade later, run `sudo apt update && sudo apt upgrade claude-code`.
406
407**dnf**
408
409For Fedora and RHEL. The following commands configure the `stable` channel:
410
411```bash theme={null}
412sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'
413[claude-code]
414name=Claude Code
415baseurl=https://downloads.claude.ai/claude-code/rpm/stable
416enabled=1
417gpgcheck=1
418gpgkey=https://downloads.claude.ai/keys/claude-code.asc
419EOF
420sudo dnf install claude-code
421```
422
423To use the `latest` channel instead, set `baseurl` to the `latest` repository:
424
425```ini theme={null}
426baseurl=https://downloads.claude.ai/claude-code/rpm/latest
427```
428
429dnf downloads the key on first install and prompts you to confirm the fingerprint. Verify it matches `31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE` before accepting.
430
431To upgrade later, run `sudo dnf upgrade claude-code`.
432
433**apk**
434
435For Alpine Linux. The following commands configure the `stable` channel:
436
437```sh theme={null}
438wget -O /etc/apk/keys/claude-code.rsa.pub \
439 https://downloads.claude.ai/keys/claude-code.rsa.pub
440echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories
441apk add claude-code
442```
443
444To switch to the `latest` channel, remove the `stable` repository line and add the `latest` repository:
445
446```sh theme={null}
447sed -i '\|downloads.claude.ai/claude-code/apk/stable|d' /etc/apk/repositories
448echo "https://downloads.claude.ai/claude-code/apk/latest" >> /etc/apk/repositories
449```
450
451Verify the downloaded key with `sha256sum /etc/apk/keys/claude-code.rsa.pub`, which should report `395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6`.
452
453To upgrade later, run `apk update && apk upgrade claude-code`.
464454
465455### Install with npm
466456
from line 466
476466
477467To upgrade an npm installation, run `npm install -g @anthropic-ai/claude-code@latest`. Avoid `npm update -g`, which respects the semver range from the original install and may not move you to the newest release.
478468
479<Warning>
480 Do NOT use `sudo npm install -g` as this can lead to permission issues and security risks. If you encounter permission errors, see [troubleshooting permission errors](/docs/en/troubleshoot-install#permission-errors-during-installation).
481</Warning>
469> [!WARNING]
470>
471> Do NOT use `sudo npm install -g` as this can lead to permission issues and security risks. If you encounter permission errors, see [troubleshooting permission errors](/docs/en/troubleshoot-install#permission-errors-during-installation).
482472
483473### Install on network storage
484474
from line 491
501491
502492Steps 1-3 require a POSIX shell with `gpg` and `curl`. On Windows, run them in Git Bash or WSL. Step 4 includes a PowerShell option.
503493
504<Steps>
505 <Step title="Download and import the public key">
506 The release signing key is published at a fixed URL.
507
508 ```bash theme={null}
509 curl -fsSL https://downloads.claude.ai/keys/claude-code.asc | gpg --import
510 ```
511
512 Display the fingerprint of the imported key.
513
514 ```bash theme={null}
515 gpg --fingerprint [email protected]
516 ```
517
518 Confirm the output includes this fingerprint:
519
520 ```text theme={null}
521 31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE
522 ```
523 </Step>
524
525 <Step title="Download the manifest and signature">
526 Set `VERSION` to the release you want to verify.
527
528 ```bash theme={null}
529 REPO=https://downloads.claude.ai/claude-code-releases
530 VERSION=2.1.89
531 curl -fsSLO "$REPO/$VERSION/manifest.json"
532 curl -fsSLO "$REPO/$VERSION/manifest.json.sig"
533 ```
534 </Step>
535
536 <Step title="Verify the signature">
537 Verify the detached signature against the manifest.
538
539 ```bash theme={null}
540 gpg --verify manifest.json.sig manifest.json
541 ```
542
543 A valid result reports `Good signature from "Anthropic Claude Code Release Signing <[email protected]>"`.
544
545 `gpg` also prints `WARNING: This key is not certified with a trusted signature!` for any freshly imported key. This is expected. The `Good signature` line confirms the cryptographic check passed. The fingerprint comparison in Step 1 confirms the key itself is authentic.
546 </Step>
547
548 <Step title="Check the binary against the manifest">
549 Compare the SHA256 checksum of the binary with the value listed under `platforms.<platform>.checksum` in `manifest.json`. The commands below assume a `claude` binary in the current directory. To verify an installed native binary instead, run the command against `~/.local/share/claude/versions/VERSION`, replacing VERSION with the release you set in Step 2.
550
551 <Tabs>
552 <Tab title="Linux">
553 ```bash theme={null}
554 sha256sum claude
555 ```
556 </Tab>
557
558 <Tab title="macOS">
559 ```bash theme={null}
560 shasum -a 256 claude
561 ```
562 </Tab>
563
564 <Tab title="Windows PowerShell">
565 ```powershell theme={null}
566 (Get-FileHash claude.exe -Algorithm SHA256).Hash.ToLower()
567 ```
568 </Tab>
569 </Tabs>
570 </Step>
571</Steps>
572
573<Note>
574 Manifest signatures are available for releases from `2.1.89` onward. Earlier releases publish checksums in `manifest.json` without a detached signature.
575</Note>
494**1. Download and import the public key**
495
496The release signing key is published at a fixed URL.
497
498```bash theme={null}
499curl -fsSL https://downloads.claude.ai/keys/claude-code.asc | gpg --import
500```
501
502Display the fingerprint of the imported key.
503
504```bash theme={null}
505gpg --fingerprint [email protected]
506```
507
508Confirm the output includes this fingerprint:
509
510```text theme={null}
51131DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE
512```
513
514**2. Download the manifest and signature**
515
516Set `VERSION` to the release you want to verify.
517
518```bash theme={null}
519REPO=https://downloads.claude.ai/claude-code-releases
520VERSION=2.1.89
521curl -fsSLO "$REPO/$VERSION/manifest.json"
522curl -fsSLO "$REPO/$VERSION/manifest.json.sig"
523```
524
525**3. Verify the signature**
526
527Verify the detached signature against the manifest.
528
529```bash theme={null}
530gpg --verify manifest.json.sig manifest.json
531```
532
533A valid result reports `Good signature from "Anthropic Claude Code Release Signing <[email protected]>"`.
534
535`gpg` also prints `WARNING: This key is not certified with a trusted signature!` for any freshly imported key. This is expected. The `Good signature` line confirms the cryptographic check passed. The fingerprint comparison in Step 1 confirms the key itself is authentic.
536
537**4. Check the binary against the manifest**
538
539Compare the SHA256 checksum of the binary with the value listed under `platforms.<platform>.checksum` in `manifest.json`. The commands below assume a `claude` binary in the current directory. To verify an installed native binary instead, run the command against `~/.local/share/claude/versions/VERSION`, replacing VERSION with the release you set in Step 2.
540
541**Linux**
542
543```bash theme={null}
544sha256sum claude
545```
546
547**macOS**
548
549```bash theme={null}
550shasum -a 256 claude
551```
552
553**Windows PowerShell**
554
555```powershell theme={null}
556(Get-FileHash claude.exe -Algorithm SHA256).Hash.ToLower()
557```
558
559> [!NOTE]
560>
561> Manifest signatures are available for releases from `2.1.89` onward. Earlier releases publish checksums in `manifest.json` without a detached signature.
576562
577563#### Platform code signatures
578564
from line 572
586572
587573To remove Claude Code, follow the instructions for your installation method. If `claude` still runs afterward, you likely have a second installation or a leftover shell alias from an older installer. See [Check for conflicting installations](/docs/en/troubleshoot-install#check-for-conflicting-installations) to find and remove it.
588574
589<span id="native-installation" />
590
591575### Uninstall a native installation
592576
593577Remove the Claude Code binary and version files:
594578
595<Tabs>
596 <Tab title="macOS, Linux, WSL">
597 ```bash theme={null}
598 rm -f ~/.local/bin/claude
599 rm -rf ~/.local/share/claude
600 ```
601 </Tab>
602
603 <Tab title="Windows PowerShell">
604 ```powershell theme={null}
605 Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force
606 Remove-Item -Path "$env:USERPROFILE\.local\share\claude" -Recurse -Force
607 ```
608 </Tab>
609</Tabs>
610
611<span id="homebrew-installation" />
579**macOS, Linux, WSL**
580
581```bash theme={null}
582rm -f ~/.local/bin/claude
583rm -rf ~/.local/share/claude
584```
585
586**Windows PowerShell**
587
588```powershell theme={null}
589Remove-Item -Path "$env:USERPROFILE\.local\bin\claude.exe" -Force
590Remove-Item -Path "$env:USERPROFILE\.local\share\claude" -Recurse -Force
591```
612592
613593### Uninstall with Homebrew
614594
from line 604
624604brew uninstall --cask claude-code@latest
625605```
626606
627<span id="winget-installation" />
628
629607### Uninstall with WinGet
630608
631609Remove the WinGet package:
from line 612
634612winget uninstall Anthropic.ClaudeCode
635613```
636614
637<span id="apt-/-dnf-/-apk" />
638
639615### Uninstall with apt, dnf, or apk
640616
641617Remove the package and the repository configuration:
642618
643<Tabs>
644 <Tab title="apt">
645 ```bash theme={null}
646 sudo apt remove claude-code
647 sudo rm /etc/apt/sources.list.d/claude-code.list /etc/apt/keyrings/claude-code.asc
648 ```
649 </Tab>
650
651 <Tab title="dnf">
652 ```bash theme={null}
653 sudo dnf remove claude-code
654 sudo rm /etc/yum.repos.d/claude-code.repo
655 ```
656 </Tab>
657
658 <Tab title="apk">
659 ```sh theme={null}
660 apk del claude-code
661 sed -i '\|downloads.claude.ai/claude-code/apk|d' /etc/apk/repositories
662 rm /etc/apk/keys/claude-code.rsa.pub
663 ```
664 </Tab>
665</Tabs>
666
667<span id="npm" />
619**apt**
620
621```bash theme={null}
622sudo apt remove claude-code
623sudo rm /etc/apt/sources.list.d/claude-code.list /etc/apt/keyrings/claude-code.asc
624```
625
626**dnf**
627
628```bash theme={null}
629sudo dnf remove claude-code
630sudo rm /etc/yum.repos.d/claude-code.repo
631```
632
633**apk**
634
635```sh theme={null}
636apk del claude-code
637sed -i '\|downloads.claude.ai/claude-code/apk|d' /etc/apk/repositories
638rm /etc/apk/keys/claude-code.rsa.pub
639```
668640
669641### Uninstall with npm
670642
from line 648
676648
677649### Remove configuration files
678650
679<Warning>
680 Removing configuration files will delete all your settings, allowed tools, MCP server configurations, and session history.
681</Warning>
651> [!WARNING]
652>
653> Removing configuration files will delete all your settings, allowed tools, MCP server configurations, and session history.
682654
683655The VS Code extension, the JetBrains plugin, and the Desktop app also write to `~/.claude/`. If any of them is still installed, the directory is recreated the next time it runs. To remove Claude Code completely, uninstall the [VS Code extension](/docs/en/vs-code#uninstall-the-extension), the JetBrains plugin, and the Desktop app before deleting these files.
684656
685657To remove Claude Code settings and cached data:
686658
687<Tabs>
688 <Tab title="macOS, Linux, WSL">
689 ```bash theme={null}
690 # Remove user settings and state
691 rm -rf ~/.claude
692 rm ~/.claude.json
693
694 # Remove project-specific settings (run from your project directory)
695 rm -rf .claude
696 rm -f .mcp.json
697 ```
698 </Tab>
699
700 <Tab title="Windows PowerShell">
701 ```powershell theme={null}
702 # Remove user settings and state
703 Remove-Item -Path "$env:USERPROFILE\.claude" -Recurse -Force
704 Remove-Item -Path "$env:USERPROFILE\.claude.json" -Force
705
706 # Remove project-specific settings (run from your project directory)
707 Remove-Item -Path ".claude" -Recurse -Force
708 Remove-Item -Path ".mcp.json" -Force
709 ```
710 </Tab>
711</Tabs>
659**macOS, Linux, WSL**
660
661```bash theme={null}
662# Remove user settings and state
663rm -rf ~/.claude
664rm ~/.claude.json
665
666# Remove project-specific settings (run from your project directory)
667rm -rf .claude
668rm -f .mcp.json
669```
670
671**Windows PowerShell**
672
673```powershell theme={null}
674# Remove user settings and state
675Remove-Item -Path "$env:USERPROFILE\.claude" -Recurse -Force
676Remove-Item -Path "$env:USERPROFILE\.claude.json" -Force
677
678# Remove project-specific settings (run from your project directory)
679Remove-Item -Path ".claude" -Recurse -Force
680Remove-Item -Path ".mcp.json" -Force
681```
712682
No line in this hunk matches that.