管理者権限のPowerShellで実行:
# WSLを最新版にアップデート
wsl --update
# デフォルトバージョンを2に設定
wsl --set-default-version 2
# 現在のWSLバージョンを確認
wsl -l -v# ファイルの存在確認
Test-Path "$env:USERPROFILE\.wslconfig"# 新規作成
New-Item -Path "$env:USERPROFILE\.wslconfig" -ItemType File
# メモ帳で開いて編集
notepad "$env:USERPROFILE\.wslconfig"[wsl2]
memory=8GB # Claude Codeには最低4GB、推奨8GB
processors=4 # CPUコア数の半分程度
swap=4GB # スワップメモリ
localhostForwarding=true
nestedVirtualization=true
# Windows 11の場合は以下も追加
[experimental]
autoMemoryReclaim=gradual # メモリの段階的な回収
networkingMode=mirrored # ネットワーク安定性向上設定後、WSLを再起動:
wsl --shutdown
# 30秒待ってから再度WSLを起動WSL内で実行:
# プロジェクトの配置場所
# ❌ 悪い例(Windowsファイルシステム - 遅い)
# /mnt/c/Users/username/projects/
# ✅ 良い例(Linuxファイルシステム - 高速)
cd ~
mkdir projects
cd projects
# ここで作業するWSL内で実行:
# 既存の設定を完全削除
rm -rf ~/.claude
rm -rf ~/.config/claude
rm -rf ~/.local/share/claude
# 最新版をインストール
curl -fsSL https://claudecode.ai/install.sh | sh
# ローカルインストールに移行(重要)
claude migrate-installer# APIキーを環境変数に設定
echo 'export CLAUDE_API_KEY="your-api-key-here"' >> ~/.bashrc
source ~/.bashrc
# 初回ログイン
claude login~/.claude/config.jsonを作成/編集:
{
"api": {
"timeout": 120,
"max_retries": 3,
"retry_delay": 1000
},
"session": {
"max_context_length": 50000,
"auto_clear_after": 10
}
}sudo nano /etc/wsl.conf以下を追加:
[network]
generateResolvConf = false# 既存のresolv.confを削除
sudo rm /etc/resolv.conf
# 新しいresolv.confを作成
sudo nano /etc/resolv.conf以下を記入:
nameserver 1.1.1.1
nameserver 8.8.8.8ファイルを読み取り専用に設定:
sudo chmod 444 /etc/resolv.confPowerShell(管理者)で実行:
# WSLプロセスを除外
Add-MpPreference -ExclusionProcess "wsl.exe"
Add-MpPreference -ExclusionProcess "wslhost.exe"
Add-MpPreference -ExclusionPath "\\wsl$\"
# Claude関連プロセスも除外
Add-MpPreference -ExclusionProcess "claude.exe"
Add-MpPreference -ExclusionProcess "node.exe"~/.bashrcに以下を追加:
# Claude Code用のラッパー関数
claude-retry() {
local max_attempts=3
local attempt=1
while [ $attempt -le $max_attempts ]; do
echo "実行中... (試行 $attempt/$max_attempts)"
claude "$@"
if [ $? -eq 0 ]; then
return 0
fi
echo "エラーが発生しました。再試行します..."
sleep 2
((attempt++))
done
echo "最大試行回数に達しました。"
return 1
}
# エイリアスを設定
alias claude='claude-retry'
# セッション自動クリア関数
claude-clear-session() {
echo "セッションをクリアしています..."
pkill -f claude
rm -rf ~/.claude/cache/*
rm -rf ~/.claude/logs/*.log
echo "完了しました。"
}
alias ccs='claude-clear-session'# 毎回の作業開始前に実行
claude-startup() {
wsl.exe --shutdown
sleep 5
claude logout
claude login
echo "Claude Code の準備が完了しました。"
}# 1. プロセスの強制終了
pkill -f claude
# 2. WSLネットワークリセット
exit # WSLを終了
# PowerShellで
wsl --shutdown
# 30秒待ってから再起動
# 3. キャッシュクリア
rm -rf ~/.claude/cache/*
rm -rf ~/.claude/logs/*# 認証情報をリセット
claude logout
rm -rf ~/.claude/auth
claude login# Claude Codeの完全リセット
claude-full-reset() {
pkill -f claude
rm -rf ~/.claude
rm -rf ~/.config/claude
curl -fsSL https://claudecode.ai/install.sh | sh
claude migrate-installer
claude login
}# 接続テスト
curl -I https://api.anthropic.com
# Claude Codeの状態確認
claude status
# ログ確認(エラー詳細)
tail -f ~/.claude/logs/claude.log | grep -i error
# ネットワーク状態確認
ss -tunp | grep claude
# WSL リソース使用状況
free -h
df -h# プロキシ設定(~/.bashrcに追加)
export HTTP_PROXY=http://proxy.company.com:8080
export HTTPS_PROXY=http://proxy.company.com:8080
export NO_PROXY=localhost,127.0.0.1,*.local
# Git設定(必要な場合)
git config --global http.proxy http://proxy.company.com:8080
git config --global https.proxy http://proxy.company.com:8080# WSL内で実行
sudo ip link set dev eth0 mtu 1400~/monitor-claude.shとして保存:
#!/bin/bash
# 色の定義
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
while true; do
clear
echo -e "${GREEN}=== Claude Code モニター ===${NC}"
echo -e "${YELLOW}$(date)${NC}"
echo ""
# メモリ使用量
echo -e "${GREEN}メモリ使用量:${NC}"
free -h | grep -E "^Mem|^Swap"
echo ""
# Claude プロセス
echo -e "${GREEN}Claude プロセス:${NC}"
ps aux | grep claude | grep -v grep | awk '{print $2, $3, $4, $11}'
echo ""
# ネットワーク接続
echo -e "${GREEN}アクティブな接続:${NC}"
ss -tunp 2>/dev/null | grep -E "claude|anthropic" | head -5
echo ""
# ディスク使用量
echo -e "${GREEN}ディスク使用量 (~/.claude):${NC}"
du -sh ~/.claude/* 2>/dev/null | sort -h | tail -5
echo ""
# エラーログ
echo -e "${RED}最新のエラー:${NC}"
tail -n 3 ~/.claude/logs/claude.log 2>/dev/null | grep -i error
sleep 5
done実行権限を付与:
chmod +x ~/monitor-claude.sh wsl -l -v # バージョン2であることを確認 Get-Content "$env:USERPROFILE\.wslconfig" pwd # /home/username/... であることを確認 cat /etc/resolv.conf Get-MpPreference | Select-Object ExclusionProcess# クイックチェックスクリプト
claude-health-check() {
echo "🔍 Claude Code ヘルスチェック開始..."
# API接続確認
if curl -s -o /dev/null -w "%{http_code}" https://api.anthropic.com | grep -q "200"; then
echo "✅ API接続: OK"
else
echo "❌ API接続: NG"
fi
# Claude状態確認
if claude status &>/dev/null; then
echo "✅ Claude Code: 正常"
else
echo "❌ Claude Code: エラー"
fi
# メモリ確認
available_mem=$(free -g | awk '/^Mem:/{print $7}')
if [ $available_mem -gt 2 ]; then
echo "✅ メモリ: ${available_mem}GB 利用可能"
else
echo "⚠️ メモリ: ${available_mem}GB (少ない)"
fi
echo "🏁 チェック完了"
}# 完全リセット(最終手段)
claude-emergency-reset() {
echo "⚠️ 緊急リセットを開始します..."
# 1. すべてのプロセスを終了
pkill -9 -f claude
# 2. WSLをシャットダウン
wsl.exe --shutdown
sleep 10
# 3. 設定をすべて削除
rm -rf ~/.claude
rm -rf ~/.config/claude
rm -rf ~/.local/share/claude
# 4. 再インストール
curl -fsSL https://claudecode.ai/install.sh | sh
# 5. 初期設定
claude migrate-installer
echo "✅ リセット完了。'claude login' を実行してください。"
}これらの設定により、Windows環境でのClaude Codeの安定性が大幅に向上します。特に重要なのは:
問題が継続する場合は、claude /bugコマンドで直接Anthropicに報告することをお勧めします。