Windows で Claude Code を使う:ネイティブ版と WSL の違い、インストール手順とつまずきポイント
Windows 環境で Claude Code を動かす 2 つの方法(ネイティブ版と WSL)を比較し、それぞれのインストール手順、Git for Windows の要件、PowerShell と VS Code での使い方、日本語入力やパスに関するつまずきポイントを解説します。
目次
Claude Code は当初 macOS と Linux が主な対象で、Windows では WSL(Windows Subsystem for Linux)経由の利用が案内されていました。現在は Windows ネイティブ版が提供され、PowerShell からそのまま使えます。ネイティブと WSL のどちらを選ぶかは、サンドボックスを使うかどうかで決まります。
この記事では、ネイティブ版と WSL 版の比較、それぞれの手順、実際につまずきやすい点をまとめます。
KEY POINT
この記事で分かること
- ネイティブ版と WSL 版の違いと選び方
- それぞれのインストール手順と VS Code 拡張との組み合わせ
- パス、日本語入力、hooks に関するつまずきポイント
ネイティブ版と WSL 版の比較
| 項目 | ネイティブ版 | WSL 2 |
|---|---|---|
| 実行環境 | Windows 上で直接動作 | WSL 内の Linux(Ubuntu など) |
| 前提 | なし(Git for Windows は任意) | WSL 2 が有効であること |
| サンドボックス | 非対応 | 対応 |
| シェルツール | Git for Windows があれば Git Bash、なければ PowerShell ツール | bash / zsh |
| プロジェクトの場所 | Windows のドライブ(C:\...) | WSL 内のファイルシステム(/home/...)が推奨 |
| Docker などの Linux ツール | 別途 Windows 版が必要 | Linux 版がそのまま動く |
| 向いている人 | Windows で完結する開発(.NET、Node など) | Linux 向けのビルド環境を使う開発 |
WSL からWindows 側のファイルを触ると遅い
WSL 版で /mnt/c/... にあるプロジェクトを扱うと、ファイル I/O が大幅に遅くなります。WSL 版を選ぶなら、プロジェクトは WSL 内(~/projects/ など)に置いてください。
ネイティブ版のインストール
1. Git for Windows を入れる(任意)
公式ドキュメントは Git for Windows を任意としています。入れると Git Bash が Bash ツールとして使われ、入れない場合は PowerShell ツールでシェルコマンドが実行されます。Bash 前提の hooks やスクリプトを使うなら入れておくほうが無難です。Git for Windows の既定設定で問題ありません。
なお Git for Windows を入れた場合、PowerShell ツールも Bash と並んで使えます。claude.ai と Console のアカウントでは既定で有効、Amazon Bedrock・Google Cloud の Agent Platform・Microsoft Foundry のセッションでは CLAUDE_CODE_USE_POWERSHELL_TOOL=1 で有効になります。0 にすると無効になります。
2. Claude Code を入れる
PowerShell を開き、次を実行します。
irm https://claude.ai/install.ps1 | iex
WinGet でも入ります。ただし WinGet で入れた場合は自動更新されないため、winget upgrade Anthropic.ClaudeCode を定期的に実行します。
winget install Anthropic.ClaudeCode
npm を使う場合は次でも入ります(Node.js 22 以上が必要)。
npm install -g @anthropic-ai/claude-code
3. 起動して確認する
cd C:\path\to\project
claude
初回起動でログインが求められます。claude doctor を実行すると、インストール状態と Git Bash の検出状況を診断できます。
Git Bash が見つからないというエラーが出る場合は、環境変数で場所を明示します。
$env:CLAUDE_CODE_GIT_BASH_PATH = "C:\Program Files\Git\bin\bash.exe"
恒久的に設定するには、システムの環境変数に同じ名前で登録します。
WSL 版のインストール
サンドボックスでコマンドを実行したい場合は WSL 2 が必要です。WSL 1 はネイティブ Windows と同じくサンドボックス非対応です。
- PowerShell(管理者)で
wsl --installを実行し、再起動します。既定で Ubuntu が入ります。 - Ubuntu のターミナルを開き、Node.js を入れます(nvm 経由が無難です)。
- Linux と同じ手順でインストールします。
curl -fsSL https://claude.ai/install.sh | bash
VS Code から使う場合は「WSL」拡張機能を入れ、WSL 内のフォルダを開いてから Claude Code 拡張を使います。
VS Code 拡張との組み合わせ
Claude Code の VS Code 拡張は、ネイティブ版・WSL 版のどちらでも使えます。
- ネイティブ版: 通常どおり Windows の VS Code で拡張を入れるだけ
- WSL 版: WSL 拡張でリモート接続したウィンドウ内で、Claude Code 拡張を「WSL にインストール」する
拡張の基本的な使い方は VS Code 拡張のインストールと初期設定 を参照してください。
つまずきポイント
hooks やスクリプトは bash 前提で書く
Git for Windows を入れている場合、Bash ツールは Git Bash を使います。PowerShell のコマンドレットを直接書くのではなく、明示的に呼び出すほうが確実です。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "powershell -NoProfile -File .claude/hooks/format.ps1"
}
]
}
]
}
}
hooks の基本は hooks で lint と format を自動実行する を参照してください。
パスの書き方
permissions のパターンや CLAUDE.md では、スラッシュ区切り(src/**)で書けば Windows でも動作します。バックスラッシュは JSON 内でエスケープが必要になるため避けてください。
日本語入力
PowerShell やコマンドプロンプトでは、IME の変換確定の Enter がそのまま送信として扱われることがあります。Windows Terminal を使うと改善する場合が多いです。VS Code 拡張のサイドパネルでは問題が起きにくいので、日本語で長い指示を書くなら拡張の利用を勧めます。
文字化け
コマンド出力が文字化けする場合は、PowerShell の出力エンコーディングを UTF-8 にします。
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
改行コード
Windows のエディタで作った CLAUDE.md や hooks スクリプトが CRLF だと、Git Bash で \r が混入してスクリプトが失敗することがあります。.gitattributes で *.sh text eol=lf を指定し、スクリプトは LF で保存してください。
まとめ
- ネイティブ版は PowerShell から
irm https://claude.ai/install.ps1 | iexで入る。Git for Windows は任意で、入れなければ PowerShell ツールが使われる - サンドボックスを使うなら WSL 2。ネイティブ Windows と WSL 1 は非対応。プロジェクトは WSL 内に置く
- hooks やスクリプトは Git Bash 上で動く前提で書き、改行コードは LF にする
- 日本語入力や文字化けは Windows Terminal と UTF-8 設定、または VS Code 拡張で回避する
よくある質問
- Windows で Claude Code を使うのに WSL は必須ですか?
- 必須ではありません。現在は Windows ネイティブ版があり、PowerShell やコマンドプロンプトから直接使えます。ただし Git for Windows(Git Bash)のインストールが必要です。
- ネイティブ版と WSL 版のどちらを選ぶべきですか?
- プロジェクトを Windows 側で開発しているならネイティブ版、Linux 向けのツールチェーンや Docker を多用するなら WSL 版が扱いやすいです。
- ファイルパスの区切り文字で問題は出ますか?
- ネイティブ版では Claude が Windows のパス形式を扱えます。ただし hooks やスクリプトを自作する場合は、Git Bash 上で動く前提で書く必要があります。
参考にした一次情報
この記事は公式ドキュメントを基に AI が下書きを作成し、運営者が内容を確認して公開しています。誤りを見つけた場合は お問い合わせからお知らせください。