🐙

Windows 10 + PowerShellでClaude Code(CLI)を最短・確実にインストールする完全ガイド

に公開

最初に何らかの手段でローカルのファイルを自在に編集できる生成AIを入れることができれば、あとは思い思いの環境を築くことが容易である。私の個人的なおすすめは、windowsであれば、wslを入れて、wsl上でVScodeを動かせるようにし、VScodeの拡張機能として、CODEX,Claude Code, Copilotを動かせるようにセットアップすること。

この記事は Windows 10 + PowerShell 環境で「Claude Code(ターミナル版)」を 最短・確実 に入れるための実践メモです。途中でつまずきやすいポイント(CLAUDE_CODE_GIT_BASH_PATH や PATH の問題、npm が見つからない等)まで一気通貫でカバーします。


ゴール

  • claude コマンドがどのPowerShellからでも実行できる
  • claude doctor でヘルスチェックが OK になる
  • 初回ログイン/初回セッション開始までできる

全体像(結論)

Windowsでの最短コースは ネイティブインストーラ(Beta) を使う方法です。

  1. Git for Windows を入れる(Git Bash の bash.exe が必要)
  2. CLAUDE_CODE_GIT_BASH_PATH正しい bash.exe のパス を設定
  3. irm https://claude.ai/install.ps1 | iex でインストール
  4. ~/.local/binユーザーの PATH に追加
  5. claude --version / claude doctor で確認
  6. claude/login で認証

代替として npm グローバルnpm install -g @anthropic-ai/claude-code)でもOK。権限・PATH問題を避けやすいのはネイティブ版です。


0. 前提条件

  • Windows 10(11でも可)
  • PowerShell(管理者でなくてOK。必要に応じて一時的に ExecutionPolicy を緩めます)
  • ネットワークに制限がないこと(企業プロキシの場合は後述の環境変数で対応)

1. Git for Windows を入れる

目的: Claude Code が内部で使う Bash を提供するため。

Wingetで入れる(推奨)

winget install --id Git.Git -e --source winget

既に入っているかの確認

Test-Path "C:\Program Files\Git\usr\bin\bash.exe"
Test-Path "C:\Program Files\Git\bin\bash.exe"

どちらかが True になればOK。

迷ったらインストーラのデフォルト設定で進めてOK。Portable 版を使う場合は、後述の CLAUDE_CODE_GIT_BASH_PATH で Bash の実体パスを明示します。


2. CLAUDE_CODE_GIT_BASH_PATH を設定

インストーラや本体が Git Bash の場所 を探すのに使う環境変数です。Portable Git の人は必須、通常インストールでも設定しておくと安全です。

典型的パス:

  • C:\Program Files\Git\usr\bin\bash.exe(新しめのGit for Windows)
  • C:\Program Files\Git\bin\bash.exe
# どちらか存在する方を選ぶ
$bashPath = if (Test-Path "C:\Program Files\Git\usr\bin\bash.exe") {
  "C:\\Program Files\\Git\\usr\\bin\\bash.exe"
} elseif (Test-Path "C:\Program Files\Git\bin\bash.exe") {
  "C:\\Program Files\\Git\\bin\\bash.exe"
} else {
  Read-Host "Git Bash (bash.exe) のフルパスを入力してください"
}

# ユーザー環境変数に恒久反映 + 現セッションにも反映
[Environment]::SetEnvironmentVariable('CLAUDE_CODE_GIT_BASH_PATH', $bashPath, 'User')
$env:CLAUDE_CODE_GIT_BASH_PATH = $bashPath

# 念のため表示
"CLAUDE_CODE_GIT_BASH_PATH = $env:CLAUDE_CODE_GIT_BASH_PATH"

3. ネイティブインストーラ(Beta)でインストール(推奨)

PowerShellを管理者ではなく通常権限で開き、必要なら一時的にExecutionPolicyを緩めます。

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force

# 安定版(推奨)
irm https://claude.ai/install.ps1 | iex

# 最新版 or 指定版を入れたい場合(任意)
# & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) latest
# & ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 1.0.58

よくあるインストール時のエラー

  • Claude Code was unable to find CLAUDE_CODE_GIT_BASH_PATH ...

    • → 章「2. 環境変数の設定」で正しいbash.exeを再設定し、PowerShellを開き直してインストーラを再実行。

4. ~/.local/bin を PATH に通す

ネイティブインストーラは ~/.local/bin/claude(Windowsだと C:\Users\<あなた>\.local\bin\claude.exe 相当)にシンボリックリンク/実体を配置します。ここがPATHに無いclaude が見つかりません。

# ディレクトリ作成(存在していればOK)
$localBin = Join-Path $HOME ".local\bin"
New-Item -ItemType Directory -Force -Path $localBin | Out-Null

# ユーザーのPATHに追加(恒久)
$uPath = [Environment]::GetEnvironmentVariable('Path','User')
if ($uPath -notmatch [regex]::Escape($localBin)) {
  [Environment]::SetEnvironmentVariable('Path', $uPath + ";" + $localBin, 'User')
}

# 現セッションにも反映(**新しいターミナルを開き直す**のが最も確実)
$env:Path = [Environment]::GetEnvironmentVariable('Path','User') + ';' + [Environment]::GetEnvironmentVariable('Path','Machine')

確認

where claude
claude --version
claude doctor

5. 初回ログイン & 使い始め

# 任意のプロジェクトで
cd C:\path\to\your\project
claude

# 初回はログインを促されます。REPL内で:
/login
  • Claude.ai(Pro/Max)でも、Claude Console(API従量)でもログイン可能。
  • 以降は保存された認証でそのまま使えます。

6. すぐ使える最小コマンド集

claude                          # 対話モード開始
claude -p "関数fooを説明して"   # 1回の出力だけ欲しい時
claude commit                   # 変更をコミット
/clear                          # 会話をクリア(REPL内)
/help                           # ヘルプ(REPL内)

7. VS Code 連携(任意)

  • ネイティブ拡張(Beta):VS Code のマーケットプレイスから「Claude Code」を導入すると、専用サイドバーで操作できます。
  • レガシー連携:VS Code の統合ターミナルで claude を実行すると、自動で連携し、diff表示や選択範囲の共有が使えます。

まずはターミナルで慣れてから、必要に応じて拡張導入・設定を進めるのがオススメです。


8. npm 派の人向け:グローバルインストール手順(代替案)

Node.js 18+ が必要です。(LTSで可)

  1. Node.js をインストール(公式インストーラ推奨)

  2. グローバルにCLIを入れる:

npm install -g @anthropic-ai/claude-code
  1. npm のグローバル実行ディレクトリが PATH に入っているか確認
  • 典型的には C:\Users\<あなた>\AppData\Roaming\npm%APPDATA%\npm
  • 見つからない場合は PATH に追加
  1. claude --version / claude doctor で確認

注意: npm 方式は権限やPATHの影響を受けやすく、PowerShellのExecutionPolicyで npm.ps1 がブロックされることがあります。そんなときは一時的に Set-ExecutionPolicy -Scope Process RemoteSigned を使うか、npm.cmd を直接呼ぶと回避できます。


9. ありがちトラブルと対処

claude が見つからない」

  • ~/.local/bin を PATH に通す(章 4)
  • その後 PowerShellを開き直す
  • where claude で実体パスを確認

CLAUDE_CODE_GIT_BASH_PATH が見つからない/無効」

  • 正しい bash.exe を指定してユーザー環境変数に設定(章 2)
  • PowerShellを開き直してから claude doctor

npm が見つからない」

  • Node.js 未インストール。公式から 18+ を入れ直す
  • 端末を開き直して npm -v / node -v を確認

「WSL で動かしたい」

  • WSL1/2どちらも動作。WSLで入れるなら Linux 側の Node/npm を使う(混在PATHに注意)

「ripgrep が原因で検索が弱い」

  • Windows では winget install BurntSushi.ripgrep.MSVC で入れて、USE_BUILTIN_RIPGREP=0 を環境変数にセット

10. 更新・メンテナンス

  • 自動更新:ネイティブインストーラは自動アップデータを搭載
  • 手動更新:
claude update

11. セキュリティ設定の初手

  • 標準で 編集やBash実行は承認制。慣れるまでは /help → 権限周りの説明とショートカットを把握
  • 機密ファイルの読み取り拒否はプロジェクト直下の .claude/settings.jsonpermissions.deny を記述
{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Read(./config/credentials.json)"
    ]
  }
}

12. まとめ(チェックリスト)

  • Git for Windows を入れた
  • CLAUDE_CODE_GIT_BASH_PATH を正しく設定した
  • ネイティブインストーラで導入した(または npm で導入)
  • ~/.local/bin を PATH に追加した
  • claude --versionclaude doctor が成功する
  • /login 済み、claude が使える

おまけ:コピペ用ワンライナーセット

# 1) Git
winget install --id Git.Git -e --source winget

# 2) CLAUDE_CODE_GIT_BASH_PATH
$bashPath = if (Test-Path "C:\\Program Files\\Git\\usr\\bin\\bash.exe") { "C:\\Program Files\\Git\\usr\\bin\\bash.exe" } elseif (Test-Path "C:\\Program Files\\Git\\bin\\bash.exe") { "C:\\Program Files\\Git\\bin\\bash.exe" }
[Environment]::SetEnvironmentVariable('CLAUDE_CODE_GIT_BASH_PATH', $bashPath, 'User'); $env:CLAUDE_CODE_GIT_BASH_PATH=$bashPath

# 3) ネイティブインストール(安定版)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force; irm https://claude.ai/install.ps1 | iex

# 4) PATH 追加
$localBin = Join-Path $HOME ".local\\bin"; New-Item -ItemType Directory -Force -Path $localBin | Out-Null; $uPath = [Environment]::GetEnvironmentVariable('Path','User'); if ($uPath -notmatch [regex]::Escape($localBin)) { [Environment]::SetEnvironmentVariable('Path', $uPath + ";" + $localBin, 'User') }; $env:Path = [Environment]::GetEnvironmentVariable('Path','User') + ';' + [Environment]::GetEnvironmentVariable('Path','Machine')

# 5) 動作確認
where claude; claude --version; claude doctor

参考

  • エラーになったときは claude doctor/help をまず実行
  • 企業ネットワークでは HTTP(S) プロキシ環境変数を VS Code 側にも設定

本記事の手順は、公式ドキュメントの内容に沿って Windows 10 + PowerShell 向けに噛み砕いて再構成したものです。運用やセキュリティ要件に応じて、権限・ポリシー設定を見直してください。

Discussion