[アップデート] Claude CodeがWindows(WSLなし)で使えるようになりました
こんにちは、ゲームソリューション部のsoraです。
今回は、Claude CodeがWindows(WSLなし)で使えるようになったことについて書いていきます。
今までWindowsで使用するには、WSL2を有効化してUbuntuなどをインストールして、そこでClaude Codeをインストールするという手間のかかる方法で利用する必要がありました。
しかし、今回Claude CodeがWindowsネイティブサポートに対応し、WSLを有効化せずに直接利用できるようになったため、試していきます。
利用している環境
- Windows 11
- WSL2は有効化済み(今回の手順でWSL2は必要ありません)
Claude Codeのインストール
以下公式ページを参考に早速進めていきます。
コマンドプロンプトで以下を実行します。
しかし、早速エラーが出ました。
>npm install -g @anthropic-ai/claude-code@latest
'npm' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
公式ページを確認すると、Node.js 18
以降が必要なためエラーになりました。
そのため、Node.js
の公式サイトから最新のNode.js
をインストールします。
今回は、Windowsインストーラー(.msi)を使用してインストールします。
インストーラーの起動後はNextを押して進めていくとインストールが完了します。
その後、コマンドプロンプトを再起動して、以下コマンドを実行するとNode.js
がインストールされていることが確認できました。
>node --version
v22.17.0
再度、最初の手順に戻りClaude Codeをインストールしていきます。
>npm install -g @anthropic-ai/claude-code@latest
うまくいったので以下のコマンドでClaude Codeを起動します。
claude
表示モードを選択すると、次に利用方法を聞かれます。
私はProプランを契約済みのため、1を選択します。
APIキーを利用する場合は、2を選択します。
認証を進めると以下のエラーが出ました。
結論から言うと、WSL2を有効化していることが原因だったため、WSL2を有効化していない方や以下エラーが出なかった方は以降の「認証エラーの調査と対処」は読み飛ばして問題ありません。
OAuth error: listen EACCES: permission denied 0.0.0.0:54545
ちなみに、認証が上手く進む場合は、認証コード取得のためのURLが表示されて、そこにアクセスして得た認証コードを使用することで認証が完了します。
(エラーになった方向け)認証エラーの調査と対処
先ほど出たエラーについて試行錯誤をしていたところ、以下の同様のエラーになっている方を見つけました。
上記のissueとは違う解決方法ですが、以下コマンドで確認してみると、システムによって今回認証で使用しようとしていた54545
ポートがポート除外範囲として予約されていて使用できないことがわかりました。
>netsh int ipv4 add excludedportrange protocol=tcp startport=54545 numberofports=1
プロセスはファイルにアクセスできません。別のプロセスが使用中です。
>netsh int ipv4 show excludedportrange protocol=tcp
プロトコル tcp ポート除外範囲
開始ポート 終了ポート
---------- --------
50000 50059 *
51502 51601
54144 54243
54544 54643
57109 57208
57212 57311
57487 57586
* - 管理されている除外ポート。
これはWSL2やHyper-V周りでシステムにて自動設定された除外ポートのため変更することも難しく、最終的にはWSL2を一時的に無効化することで認証できました。
認証後は再度有効化しています。
# WSL2を無効化
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
# PC再起動
shutdown /r /t 0
# Claude起動して認証
claude
# (認証後)WSL2を再度有効化
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# PC再起動
shutdown /r /t 0
ちなみに、Claudeのトークンの期限切れなどで、再度認証がかかると同じようにWSL2の無効化・有効化が必要なのかと思い、Claudeの認証情報を削除して確認してみましたが、以下のように除外ポート範囲が変わっていて通るようになっていました。
>netsh int ipv4 show excludedportrange protocol=tcp
プロトコル tcp ポート除外範囲
開始ポート 終了ポート
---------- --------
50000 50059 *
* - 管理されている除外ポート。
WSL2を無効化することで、Hyper-V関連のサービスも停止して、動的に作成された除外ポート範囲がクリアされます。
その後、WSL2を再度有効化した時に、必要最小限のポート範囲だけが新しく予約されて、今回認証の障壁となっていた54544~54643
が予約されなくなったため、解消されたのだと思います。
WSL2を使っていくとこの予約範囲が拡大する可能性もあるので、そのときはまたブログ記事にしようと思います。
動作確認
認証が完了すると、以下が表示されます。
Enter
を押すと、claude
コマンドを実行したときのフォルダに対する権限を付与してよいか聞かれて、許可するとClaude Codeが使用できました。
最後に
今回は、Claude CodeがWindows(WSLなし)で使えるようになったことを記事にしました。
どなたかの参考になると幸いです。