0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code・GitHub Copilot・Cursorの実装比較|CLIセットアップからCI組み込み、再現可能なベンチマーク手順まで

0
Posted at

はじめに:なぜ「使ってみた」ではなく「動かして比較」するのか

2026年10月時点、AIコーディングツールはClaude Code、GitHub Copilot、Cursor、Windsurf、Codeiumと選択肢が増え続けています。「結局どれを入れればいいのか」という疑問に対して、機能一覧の比較だけでは実務の判断材料になりません。本記事ではTier分類と比較テーブルに加えて、実際にインストールして動かすためのコードを各ツールごとに用意しました。コードブロックは合計10個以上含めていますので、手元の環境でそのまま試せる内容になっています。

また、ツール間の系譜も押さえておく必要があります。Codeiumは2024年にブランドを「Windsurf」へ変更し、2025年にWindsurf本体はAIエージェント企業Cognition(Devinの開発元)に買収されました。「Codeium」と「Windsurf」は別物の2ツールではなく、同じ系譜の製品です。この前提を知らないまま比較表だけを見ると、実態とズレた判断をしてしまいます。

対象読者は、個人開発者からチームリード、SES/客先常駐エンジニア、フリーランスまで、実務でコードを書く人です。

評価基準:何を基準にTier分けしたか

今回のTier分類は、以下5つの観点で判断しています。

  1. エージェント能力(自律性) - 単純な補完だけか、複数ファイルを横断して計画・実行・修正まで自律的にできるか
  2. エコシステムの広さ - 対応IDE/エディタの数、MCP(Model Context Protocol)対応、CI/CDへの組み込みやすさ
  3. モデル選択の自由度 - 単一モデル固定か、複数のLLMを切り替えられるか
  4. チーム・エンタープライズ対応 - SSO、権限管理、監査ログ、セルフホスト可否
  5. 料金体系の明確さと継続性 - 無料枠の有無、サブスク形態、開発元の事業継続性

特に5番目は軽視できません。AI系スタートアップは買収・統合が頻発しており、「ツールは良いが会社が存続するか」はエンタープライズ導入の意思決定に直結します。

Tier 1: 必須級 - まず入れるべき3本

Claude Code(Anthropic)

Anthropicが提供するターミナル常駐型のエージェント型コーディングツールです。CLIベースで「エージェントにタスクを渡して任せる」スタイルを定着させた立役者で、VS Code/JetBrains向けの拡張機能も提供されています。

強み

  • CLAUDE.mdにプロジェクト固有のルール・コーディング規約を書いておくと、エージェントが自動的に読み込んで従う
  • サブエージェント(Agent機能)による並列タスク実行
  • MCPのクライアント/サーバー両対応で、Slack・GitHub・DBなど外部ツールとの連携がしやすい
  • --printやheadlessモードでCI/CDパイプラインに組み込める

インストールとプロジェクト設定

# インストール(npm経由)
npm install -g @anthropic-ai/claude-code

# プロジェクトルートで起動
cd my-project
claude

# プロジェクト固有ルールを定義(リポジトリ直下に配置)
cat > CLAUDE.md << 'EOF'
# コーディング規約
- テストはVitestを使う
- コミット前に `npm run lint` を必ず通す
- APIキーは.envに書き、コミットしない
EOF

CI/CDでの非対話実行

headlessモードを使うと、GitHub ActionsなどのCIパイプラインにそのまま組み込めます。

# CIで非対話的に実行し、JSON形式で結果を受け取る例
claude -p "failing testを修正してdiffだけ出力して" \
  --output-format json \
  --allowedTools "Read,Edit,Bash(npm test)" \
  > claude_result.json

# 返り値のJSONから修正結果だけを取り出す
jq -r '.result' claude_result.json

Python側から呼び出してレビューパイプラインに組み込む例

社内のレビュー自動化スクリプトに組み込みたい場合、サブプロセス経由で呼び出すのが最も素直な方法です。

import subprocess
import json

def run_claude_review(diff_path: str) -> dict:
    """指定したdiffファイルをClaude Codeにレビューさせ、構造化結果を返す"""
    prompt = f"{diff_path} の変更内容をレビューし、バグの可能性だけをJSONで列挙して"
    result = subprocess.run(
        ["claude", "-p", prompt, "--output-format", "json"],
        capture_output=True,
        text=True,
        timeout=180,
    )
    if result.returncode != 0:
        raise RuntimeError(f"claude code failed: {result.stderr}")
    return json.loads(result.stdout)

if __name__ == "__main__":
    review = run_claude_review("changes.diff")
    print(review.get("result"))

料金目安(2026年10月時点): Claude Pro/Max契約に含まれる形での利用、またはAPI従量課金です。個人利用ならProプランのサブスクで十分カバーできるケースが多いです。

GitHub Copilot(Microsoft/GitHub)

最も普及しているAIコーディング支援ツールです。VS Code、JetBrains系IDE、Visual Studio、Neovim、Xcodeなど対応範囲が広く、既存の開発環境を変えずに導入できるのが最大の強みです。2026年時点ではCopilot Chatのモデルピッカーで複数のLLM(Claude系、GPT系、Gemini系など)を切り替えられるようになっており、単純な補完ツールからマルチモデル対応のアシスタントへ進化しています。「Copilot coding agent」により、Issueを渡すとPRを自律的に作成する機能も提供されています。

インストールとCLI連携

# VS Codeに拡張機能をインストール
code --install-extension GitHub.copilot
code --install-extension GitHub.copilot-chat

# GitHub CLI経由でサインイン
gh auth login
gh extension install github/gh-copilot

# ターミナルでコマンド提案を受ける
gh copilot suggest "大きなディレクトリをdocker imageから除外してビルドする"

# シェル関数として生成されたコマンドを直接実行する(確認プロンプトあり)
gh copilot explain "docker build --no-cache -t app:latest ."

VS Codeの設定ファイルでの挙動調整

{
  "github.copilot.enable": {
    "*": true,
    "plaintext": false,
    "markdown": true
  },
  "github.copilot.chat.codeGeneration.useInstructionFiles": true
}

リポジトリ直下に.github/copilot-instructions.mdを置くことで、Claude CodeのCLAUDE.mdに相当するプロジェクトルールを渡せます。

<!-- .github/copilot-instructions.md -->
- 関数の戻り値には必ず型注釈をつける
- try/catchでエラーを握り潰さず、再throwするかloggerに渡す
- テストファイルは対象ファイルと同じディレクトリに `*.test.ts` として置く

料金目安: 個人向けFree/Proプラン、チーム向けBusiness、組織向けEnterpriseの階層構造です。学生・OSSメンテナには無償提供プログラムもあります。

Cursor(Anysphere)

VS Codeをフォークした「AIファーストエディタ」です。コード補完だけでなく、Composer/エージェントモードによる複数ファイル同時編集、リポジトリ全体を参照したチャットが強みです。独自の高速補完モデル(Tab)と、Claude/GPT系などの外部モデルを切り替えて使える柔軟性を両立しています。

セットアップとルールファイル

# Cursorはエディタ本体をインストールする形式(公式サイトからダウンロード)
# プロジェクトルートにルールファイルを配置
mkdir -p .cursor/rules
cat > .cursor/rules/project.mdc << 'EOF'
---
description: プロジェクト共通ルール
globs: ["**/*.ts", "**/*.tsx"]
---
- 関数コンポーネントのみ使用し、classコンポーネントは書かない
- 状態管理はZustandを使う
- any型の使用を禁止する
EOF

Composer(エージェントモード)はエディタ内のチャットパネルからCmd+I(Mac)/Ctrl+I(Win)で起動し、「このAPIエンドポイントの戻り値の型をフロントエンドの型定義に反映して」のような横断タスクを渡せます。

CLIから補助的にCursorのエージェントCLI(cursor-agent)を呼ぶ例

# Cursor付属のエージェントCLIでワンショットタスクを実行する例
cursor-agent -p "packages/api配下の型エラーを全て修正して" \
  --output-format text

料金目安: Hobby(無料・制限あり)、Pro、Businessの階層です。チーム利用ではBusinessでSSOやコード参照のオプトアウト設定が可能です。

Tier 2: 推奨 - 状況次第で強力な選択肢

Windsurf(Cognition)

前述の通り、CodeiumがリブランドしたAIネイティブIDEです。VS Codeフォーク型で、エージェント機能「Cascade」によるマルチステップのタスク遂行、Webアプリのプレビュー・デプロイ機能など、フロントエンド開発との親和性が高いです。2025年にCognition(自律型AIエンジニアDevinの開発元)へ買収されたことで、今後はDevinとの機能統合が進む可能性があります。

# Windsurfはエディタ本体インストール形式
# プロジェクトルートにルールファイルを配置
cat > .windsurfrules << 'EOF'
- コミットメッセージはConventional Commitsに従う
- テストカバレッジ80%未満のPRは警告を出す
EOF

ポジショニングの注意: 買収による開発方針の変化が今後起こり得るため、エンタープライズで長期導入するなら契約条件・サポート体制を都度確認した方がよいです。

Tier 3: 選択型/ニッチ - 用途を絞って使う

Codeium

ブランドの主軸はWindsurfに移っていますが、エンタープライズ向けのセルフホスト型AI補完という文脈では現在もCodeiumの名称・技術が使われている領域があります。社内ネットワークから外に出せないコードを扱う金融・官公庁系などでは、オンプレ/VPC内にモデルをホストできる点が選定理由になりえます。

# IDE拡張としての利用
code --install-extension Codeium.codeium

設定でセルフホストエンドポイントを指定する場合はJetBrains/VS Code双方で管理者向けの設定ガイドに従う形になります(社内IT部門の展開ポリシーに依存するため、個人設定だけで完結しないケースが多いです)。

全ツール比較テーブル

項目 Claude Code GitHub Copilot Cursor Windsurf Codeium
提供形態 CLI + IDE拡張 IDE拡張 独立エディタ(VS Code fork) 独立エディタ(VS Code fork) IDE拡張(+セルフホスト)
対応エディタ VS Code/JetBrains/ターミナル VS Code/JetBrains/VS/Neovim/Xcode等 Cursor単体(VS Code互換) Windsurf単体(VS Code互換) VS Code/JetBrains
エージェント機能 ◎(サブエージェント・MCP) ○(coding agent) ◎(Composer) ◎(Cascade) △(主に補完中心)
モデル選択 Anthropicモデル中心 マルチモデル(モデルピッカー) マルチモデル対応 マルチモデル対応 固定モデル中心
ルール定義ファイル CLAUDE.md copilot-instructions.md .cursor/rules .windsurfrules 限定的
セルフホスト 不可(API利用) Enterpriseで一部対応 不可 不可 対応(強み)
チーム管理機能 限定的 ◎(Business/Enterprise) ○(Business) ○ ○(Enterprise)
開発元の安定性 安定(Anthropic本体) 安定(Microsoft傘下) 成長中(独立系) 買収後(Cognition傘下) ブランド移行中
CI/CD組み込み ◎(headlessモード) ○(Actions連携) △ △ △

※機能の◎○△は本記事執筆時点の公開情報に基づく相対評価であり、各社のアップデートにより変動します。導入前には必ず公式ドキュメントで最新仕様を確認してください。

実践:同一タスクで各ツールを再現可能に比較する

「どのツールが速いか」を主張するには、同じ入力・同じ採点基準で比較する必要があります。ベンチマーク結果を断定的な数値で示すより、自分の手元で再現できる計測手順を持つことのほうが実務では有効です。以下は、同じリファクタリングタスクを複数ツールのCLIに渡して所要時間を記録する簡易ハーネスの例です。

計測対象のサンプルコード(意図的に型が緩いTypeScript)

// legacy/userService.ts
export function getUserDisplayName(user) {
  if (user.nickname) {
    return user.nickname;
  }
  return user.firstName + " " + user.lastName;
}

「User型を定義し、getUserDisplayNameに型注釈をつけ、nicknameが空文字の場合も考慮するように修正して」という同一プロンプトを各ツールのCLIに渡し、処理時間と修正後のコードをログに残します。

計測スクリプト(Python)

import subprocess
import time
import json

TASK_PROMPT = (
    "legacy/userService.ts の getUserDisplayName に "
    "User型を定義して型注釈をつけ、nicknameが空文字の場合も "
    "firstName/lastNameにフォールバックするよう修正して"
)

def benchmark_claude_code() -> dict:
    start = time.monotonic()
    result = subprocess.run(
        ["claude", "-p", TASK_PROMPT, "--output-format", "json"],
        capture_output=True, text=True, timeout=300,
    )
    elapsed = time.monotonic() - start
    return {"tool": "claude-code", "elapsed_sec": round(elapsed, 2), "ok": result.returncode == 0}

def benchmark_cursor_agent() -> dict:
    start = time.monotonic()
    result = subprocess.run(
        ["cursor-agent", "-p", TASK_PROMPT],
        capture_output=True, text=True, timeout=300,
    )
    elapsed = time.monotonic() - start
    return {"tool": "cursor-agent", "elapsed_sec": round(elapsed, 2), "ok": result.returncode == 0}

if __name__ == "__main__":
    results = [benchmark_claude_code(), benchmark_cursor_agent()]
    with open("benchmark_results.json", "w") as f:
        json.dump(results, f, ensure_ascii=False, indent=2)
    print(json.dumps(results, ensure_ascii=False, indent=2))

結果を集計するシェルスクリプト

#!/usr/bin/env bash
set -euo pipefail

# 3回実行して平均所要時間を出す簡易ループ
for i in 1 2 3; do
  python benchmark.py >> raw_results.jsonl
done

jq -s 'group_by(.tool) | map({tool: .[0].tool, avg_sec: (map(.elapsed_sec) | add / length)})' \
  raw_results.jsonl

重要なのは、この手順で出た数値はネットワーク環境・プロンプト内容・モデルのバージョンに大きく依存するため、公開されている統一ベンチマークとして一般化しないことです。自分のチームのタスク傾向に合わせて複数回計測し、相対比較の参考値として使うのが実務的な使い方です。公式の統一ベンチマークは2026年10月時点で各社とも限定的にしか公開していないため、「〇〇が何%速い」といった断定はこの記事では避けています。

ユースケース別おすすめ

個人開発者

小規模なサイドプロジェクトなら、エディタ丸ごと置き換えるコストが低いCursorかWindsurfのどちらかを本体として使い、ターミナル作業や複雑なリファクタリングだけClaude Codeを併用するのが効率的です。無料枠で試して肌に合う方を残す運用でよいでしょう。

チーム開発(スタートアップ〜中規模)

既存のVS Code/JetBrains環境を崩さず全員に展開しやすいGitHub Copilot Businessを土台にし、複雑な横断タスクが多いチームはClaude CodeをCI/CDのレビュー補助・バグ修正エージェントとして追加する組み合わせが現実的です。モデルピッカーがあるため、チーム内でのモデル使い分けポリシーも決めやすいです。

SES現場・客先常駐エンジニア

客先の情報システム部門がツール導入を制限しているケースが多いため、まず客先のセキュリティポリシーでAIツールの利用可否・ソースコード送信の扱いを確認するのが前提になります。許可されている場合は、IDE拡張として追加インストールするだけで導入できるGitHub Copilotが最も摩擦が少ないです。セルフホストが必須の現場ではCodeiumの企業向け提供形態が選択肢に入ります。

フリーランス

複数クライアントのコードベースを横断する機会が多いため、プロジェクトごとにルールファイル(CLAUDE.md、.cursor/rules等)を切り替えやすいClaude CodeかCursorが相性が良いです。クライアントごとに契約・セキュリティ要件が異なる場合は、モデル選択の自由度が高いツールを選んでおくと要件変更に対応しやすいです。

まとめ

2026年10月時点でのAIコーディングツール選定は、「1つに絞る」のではなく「用途別に組み合わせる」のが実務的な結論です。普段使いのエディタ・IDEにGitHub CopilotかCursor/Windsurfのいずれかを常駐させ、複雑な横断タスクやCI/CD組み込みにはClaude Codeを併用する構成が、現時点では最もバランスが良いといえます。

一方で、CodeiumのWindsurf化・Cognitionによる買収のように開発元の統廃合は今後も起こりうるため、ツール選定は「機能」だけでなく「開発元の継続性」も含めて定期的に見直す前提で運用した方がよいです。また、ベンチマーク数値を見かけたときは、その数値がどのプロンプト・どの環境で計測されたものかを確認し、自分のチームのタスクで再現できるかを検証する姿勢が重要です。本記事で紹介した計測スクリプトをベースに、自分のプロジェクトに合わせたタスクで試してみてください。


書いた人: 合同会社Radineer(フリーランス向け案件サイト FreelanceDB を運営)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?