生成AI入門 2026.04.19

【2026年版】Claude Code vs Cursor vs GitHub Copilot|コード支援AI徹底比較

タグ:AI / プログラミング / 初心者向け / ツール比較 / Claude / Cursor / GitHub Copilot

3ツールの基本比較(2026年版)

項目Claude CodeCursorGitHub Copilot
月額Pro $20 / Max $100Free / Pro $20Individual $10
動作形式ターミナル(CLI)IDEネイティブVS Code拡張
AIモデルClaude Sonnet 4.5GPT-4o / ClaudeCopilot(独自)
得意な操作リファクタリング・バグ修正補完・インライン編集コード補完・自動補完
CLAUDE.md相当CLAUDE.md.cursorrulesカスタム命令

使い分けフローチャート

既存のVS Code環境をそのまま使いたい
    → GitHub Copilot ($10/月) — 最もシームレス

ファイル全体の大規模な書き換えが必要
    → Claude Code ($20/月) — 最もパワフル

自動補完をIDEに深く統合したい
    → Cursor ($20/月) — 最もIDE統合が良い

3つすべての機能が必要
    → Claude Code + Copilot ($30/月) を推奨
    (大規模作業=Claude Code, 日常補完=Copilot)

Claude Code実装例:大規模リファクタリング

# 既存のJSファイルをTypeScriptに一括変換
# Claude Codeならこれを自然言語で依頼できる

# CLAUDE.mdに書いておく設定:
# - すべてのJSを.tsに変換する
# - strict: true を維持する
# - JSDocコメントをTypeScript型に変換する

# Claude Codeに頼むプロンプト:
# 「src/utils/ 配下のすべての .js ファイルを TypeScript に変換してください。
#   型は推論できるものは推論、不明なものはunknownを使ってください」

# Claude CodeがやってくれることをAPI経由で確認するテスト:
python3 -c "
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
    model='claude-sonnet-4-5',
    max_tokens=100,
    messages=[{'role': 'user', 'content': 'Hello'}]
)
print(response.content[0].text[:50])
"

APIで3ツールのどれを使うか自動選択する

# tool_router.py
# タスクの種類に応じてClaude/GPT/Copilotを自動選択する

import anthropic
import openai

claude = anthropic.Anthropic()
oai = openai.OpenAI()

def route_coding_task(task: str, code: str = "") -> dict:
    """コーディングタスクを最適なモデルに振り分ける"""
    
    task_lower = task.lower()
    
    # 大規模リファクタリング → Claude Sonnet
    if any(kw in task_lower for kw in ["リファクタリング", "全体", "変換", "移行", "型"]):
        response = claude.messages.create(
            model="claude-sonnet-4-5",
            max_tokens=2000,
            messages=[{"role": "user", "content": f"タスク: {task}\n\nコード:\n```\n{code}\n```"}]
        )
        return {
            "model": "Claude Sonnet 4.5",
            "answer": response.content[0].text,
            "cost": (response.usage.input_tokens * 3.00 + response.usage.output_tokens * 15.00) / 1_000_000
        }
    
    # 短い補完・説明 → Claude Haiku(安価)
    elif any(kw in task_lower for kw in ["説明", "コメント", "命名"]):
        response = claude.messages.create(
            model="claude-haiku-4-5-20251001",
            max_tokens=256,
            messages=[{"role": "user", "content": f"{task}\n{code}"}]
        )
        return {
            "model": "Claude Haiku",
            "answer": response.content[0].text,
            "cost": (response.usage.input_tokens * 0.80 + response.usage.output_tokens * 4.00) / 1_000_000
        }
    
    # デフォルト → GPT-4o mini(最安)
    else:
        response = oai.chat.completions.create(
            model="gpt-4o-mini", max_tokens=512,
            messages=[{"role": "user", "content": f"{task}\n{code}"}]
        )
        tokens = response.usage.total_tokens
        return {
            "model": "GPT-4o mini",
            "answer": response.choices[0].message.content,
            "cost": tokens * 0.15 / 1_000_000
        }

# 使用例
result = route_coding_task(
    "この関数にdocstringとコメントを追加してください",
    "def calc(a, b): return a * b"
)
print(f"モデル: {result['model']} | コスト: ${result['cost']:.5f}")
print(result["answer"])

あわせて読みたい

参考ソース