AIコーディング 2026.04.18

Claude Code Context Window完全ガイド【2026年版】200K活用とContext超過エラーの解決法

タグ:Claude Code / tips / 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/(静的ファイル)

あわせて読みたい

参考ソース