AIコーディング 2026.04.18
Claude Code Context Window完全ガイド【2026年版】200K活用とContext超過エラーの解決法
Claude Codeのコンテキストウィンドウとは
200,000トークン = 約16万文字 = 約600KBのコードを一度に処理できます。
モデル別コンテキスト比較:
Claude Sonnet 4.5 / Opus 5: 200,000トークン(200K)
GPT-5: 128,000トークン(128K)
Gemini 2.0 Flash: 1,000,000トークン(1M)
トークン換算の目安:
1,000トークン ≈ 750英単語 ≈ 500漢字
200,000トークン ≈ 150,000英単語 ≈ 小説1冊分
トークン数を計測するコード
# count_tokens.py
# コードやプロジェクトが何トークンかを無料で計測する
import anthropic
from pathlib import Path
client = anthropic.Anthropic()
def count_tokens_for_project(file_paths: list[str]) -> dict:
"""複数ファイルのトークン数を合計する(無料APIで計測)"""
total_chars = 0
file_sizes = {}
for path in file_paths:
text = Path(path).read_text(errors="replace")
file_sizes[path] = len(text)
total_chars += len(text)
# Anthropicの無料Count Tokens API
response = client.messages.count_tokens(
model="claude-sonnet-4-5",
messages=[{"role": "user", "content": " ".join(
Path(p).read_text(errors="replace")[:5000] for p in file_paths[:5]
)}]
)
estimated_full = int(response.input_tokens * (total_chars / (sum(
len(Path(p).read_text(errors="replace")[:5000]) for p in file_paths[:5]
) + 0.01)))
return {
"estimated_tokens": estimated_full,
"context_used_pct": round(estimated_full / 200_000 * 100, 1),
"largest_files": sorted(file_sizes.items(), key=lambda x: -x[1])[:5]
}
# 例: プロジェクトの主要ファイルを計測
result = count_tokens_for_project([
"src/app/page.tsx",
"src/components/Header.tsx",
"src/lib/auth.ts",
"src/server/actions.ts"
])
print(f"推定トークン数: {result['estimated_tokens']:,} / 200,000 ({result['context_used_pct']}%)")
print("大きいファイル:", result["largest_files"])
Context超過を防ぐ段階的編集手順
# ステップ1: ファイル構造だけを先に共有(ファイル内容は未送信)
find src -name "*.ts" -o -name "*.tsx" | head -20 | claude "このファイル構造を把握して。編集は別で指示する"
# ステップ2: 対象ファイルの関連部分だけを送る
awk 'NR>=155 && NR<=185' src/lib/payment.ts | claude "この支払い処理関数を修正して"
# ステップ3: 修正後の影響範囲を確認
grep -n "processPayment" src/**/*.ts | claude "この関数の呼び出し元を確認して副作用をチェックして"
.claudeignoreで自動除外設定
# .claudeignore(.gitignoreと同じ書式)
# 絶対に除外するもの
node_modules/
.git/
dist/
build/
.next/
__pycache__/
# 大きすぎるファイル
*.lock
package-lock.json
yarn.lock
# 不要なファイル
*.log
*.map
coverage/
.env
CLAUDE.mdで構造を要約してコンテキストを節約
# CLAUDE.md
## プロジェクト構造(ファイルを読み込む前に確認)
src/
app/ # Next.js App Router(page.tsx・layout.tsx)
components/ # UIコンポーネント(shadcn/ui使用)
lib/ # ユーティリティ(auth.ts・db.ts)
server/ # Server Actions(auth-actions.ts・post-actions.ts)
## 重要な型定義
- User: src/types/user.ts
- Post: src/types/post.ts
- DB: src/lib/db.ts(Prismaクライアント)
## 読み込み不要なファイル
- .env(直接参照しない)
- prisma/migrations/(マイグレーション履歴)
- public/(静的ファイル)