Claude Code + Cursor:30セッションの併用から学んだこと
Claude Code単体、Cursor単体、そして両方を併用した30回の開発セッションを比較・記録しました。併用ワークフローでは、どちらか一方のツールだけを使った場合と比べて実装時間が約40%短縮されました。ただし、各ツールの強みに合わせてタスクを適切に割り振った場合に限ります。1
TL;DR
Claude Codeはターミナル操作、複数ファイルにまたがる変更、エージェントへのタスク委任に優れています。Cursorはインライン補完、単一ファイルの素早い編集、リアルタイムのコード提案に優れています。blakecrosley.com、Claude Codeのフックシステム、そして複数のiOSアプリを構築した30セッションを通じて、明確な役割分担が見えてきました。Claude Codeは広範な作業(アーキテクチャ、複数ファイルのリファクタリング、テスト、デプロイ)に、Cursorは深い作業(単一ファイルの実装、インライン提案、ビジュアルなdiffレビュー)に向いています。この組み合わせにより、どちらか一方のツールに不得意な領域を無理に任せる際のコンテキストスイッチのオーバーヘッドを解消できます。
各ツールが得意とする領域
Claude Codeの強み
| 機能 | Claude Codeが優れている理由 | 実際の使用例 |
|---|---|---|
| 複数ファイルのリファクタリング | コードベース全体を読み取り、計画を立て、編集できる | 審議システムの8つのPythonモジュールを1セッションでリファクタリング |
| ターミナル操作 | git、テスト、ビルドへの直接的なシェルアクセス | 12モジュールのブログリンター、pytestスイート、git操作の実行 |
| エージェントへの委任 | サブエージェントが独立したタスクを並列処理 | 3つの探索エージェントがCSSデータを収集している間に執筆作業 |
| リサーチと探索 | Glob、grep、readツールによるコードベースの理解 | 95個のフックファイルからライフサイクルイベントパターンを検索 |
| カスタム自動化 | フック、スキル、コマンドによるワークフロー自動化 | 95個のフック、44個のスキルで品質・安全性チェックを自動化 |
Cursorの強み
| 機能 | Cursorが優れている理由 | 実際の使用例 |
|---|---|---|
| インライン補完 | 入力中にリアルタイムで提案 | SwiftUIビューの実装、@Observableパターンの補完 |
| 単一ファイルの素早い編集 | エディタ内での高速かつ正確な変更 | critical.cssのCSSプロパティ調整 |
| ビジュアルなdiffレビュー | 適用前にサイドバイサイドで変更をプレビュー | 生成されたHTMLテンプレートの変更レビュー |
| Tab補完フロー | エディタを離れずに提案を承認・却下 | Pythonの関数本体の記述 |
3つの実際のワークフロー例
例1:ブログ品質システム(Claude Code → Cursor → Claude Code)
タスク: 引用検証機能付きの12モジュールブログリンターを構築する。
Claude Code(アーキテクチャ、45分): 既存のcontent.pyを読み取り、モジュール構造を設計し、6つの初期モジュール(メタデータ検証、脚注チェック、コードブロック言語検出)を含むblog_lint.pyを作成、blog-lint.pyにCLIを組み込み、初期テストを実行しました。
Cursor(実装の磨き上げ、20分): citation-no-url検出の正規表現パターンを改良し、ONLINE_PATTERNSのマッチングを調整し、学術論文の引用とWeb参照のエッジケース処理を追加しました。Cursorのインライン補完は正規表現の反復作業に優れていました。パターンの一部を入力して提案を承認・却下する方が、Claude Codeにパターンを説明するよりも速かったです。
Claude Code(検証、15分): テストスイート全体(77テスト)を実行し、正規表現の改良で発生した3つの失敗を修正し、33件すべてのブログ記事をリントし、コミットを作成しました。
合計:80分。 Claude Code単体での推定:100分。Cursor単体での推定:150分以上(Cursorは複数ファイルにまたがるテストインフラの構築が苦手です)。
例2:iOS SwiftUIビュー(Cursor → Claude Code)
タスク: Ace Citizenship用のスペースドリピティション(間隔反復)カードビューを構築する。
Cursor(実装、30分): SwiftUIビュー全体を構築しました。カードのフリップアニメーション、進捗インジケーター、回答表示の機能です。SwiftUIはフレームワークとして一貫したパターンを持つため、Cursorのインライン補完が効果的に機能します。@Observable、NavigationStack、モディファイアチェーンのTab補完は自然な操作感でした。
Claude Code(統合、10分): ビューをナビゲーションフローに組み込み、SwiftDataクエリを追加し、ビルドを実行し、ビューモデルとデータモデル間の型の不一致を修正しました。
合計:40分。 このタスクは作業の75%が単一ファイルだったため、Cursorが大部分を担いました。
例3:フックインフラ(Claude Codeが主体)
タスク: スポーン予算トラッキング付きのrecursion-guard.shを構築する。
Claude Code(実装の100%): このタスクは完全に複数ファイルにまたがる作業でした。14個のJSON設定ファイルの読み取り、フックスクリプトの編集、セッション開始時の初期化の更新、複数のエージェントスポーンシナリオでのテスト、48個のbash統合テストでの検証です。ここではCursorは価値を発揮しません。作業が多くのファイルにまたがり、ターミナル操作(テストスクリプトの実行、フック出力の確認、JSON設定の読み込み検証)が必要だからです。
併用がうまくいかない場面
失敗1:ツール間のコンテキストのずれ
Claude Codeがファイルシステムを変更すると、Cursorはエディタ上でその変更を確認できます。しかし、Cursorのコンテキスト(.cursorrules、開いているファイル、最近の編集)は、Claude Codeが行ったアーキテクチャ上の判断を把握していません。CursorのMDCファイルが更新されていなかったため、Claude Codeが確立したばかりのアーキテクチャと矛盾するパターンをCursorが提案してきたことがありました。
対処法: Claude Codeでアーキテクチャセッションを行った後、Cursorに切り替える前に.cursorrulesや関連するMDCファイルを新しいパターンで更新します。2〜3分のオーバーヘッドが発生しますが、Cursorが新しいアーキテクチャに反する提案をすることを防げます。
失敗2:ファイル編集の競合
両方のツールが同じファイルを編集できます。Claude Codeがcontent.pyを変更した後、同じファイル内の関数を微調整するためにCursorに切り替えると、Cursorが編集前の状態に基づいた変更を提案することがあります(インデックスが更新されていないため)。結果として、手動での解決が必要な競合が発生します。
対処法: Claude Codeがファイルを編集した後、Cursorでそのファイルを閉じて再度開きます。または、複数の編集が必要な場合はClaude Codeでファイル全体を処理します。
失敗3:ターミナル中心のタスクは分割に向かない
頻繁なターミナル操作が必要なタスク(テスト失敗のデバッグ、シェルスクリプトの反復修正、ビルドの実行)では、Cursorの出番はまったくありません。デバッグの途中で1行の修正のためにCursorに切り替えると、ウィンドウ切り替えのオーバーヘッドが入力時間の節約を上回ります。
ルール: ターミナルコマンドが3回以上必要なタスクでは、タスク全体をClaude Codeで完結させます。
セッションデータの概要
| 指標 | Claude Code単体 | Cursor単体 | 併用 |
|---|---|---|---|
| 複数ファイルタスク(平均時間) | 45分 | 90分 | 50分 |
| 単一ファイルタスク(平均時間) | 15分 | 8分 | 8分 |
| ターミナル中心のタスク | 30分 | 該当なし | 30分 |
| コンテキスト設定のオーバーヘッド | 2分 | 1分 | 5分 |
| アーキテクチャ+磨き上げタスク | 60分 | 80分 | 40分 |
併用ワークフローが最も効果を発揮するのは「アーキテクチャ+磨き上げ」タスクです。Claude Codeが構造的な作業を、Cursorが細部の作業を担当します。併用ワークフローではタスクごとに3〜5分のコンテキストスイッチのオーバーヘッドが発生するため、10分未満のタスクでは分割のメリットがありません。2
現在のタスク分担
| タスクの種類 | ツール | 理由 |
|---|---|---|
| 複数ファイルのリファクタリング | Claude Code | コードベース全体を読み取り・編集できる |
| テストの作成とデバッグ | Claude Code | テスト実行にターミナルが必要 |
| Git操作 | Claude Code | シェルへの直接アクセス |
| SwiftUIビューの実装 | Cursor | 優れたインライン補完 |
| CSSプロパティの調整 | Cursor | エディタでのビジュアルフィードバック |
| 単一関数の実装 | Cursor | Tab補完フロー |
| フック・スクリプト開発 | Claude Code | ターミナル中心、複数設定ファイル |
| ブログ記事の執筆 | Claude Code | 複数ファイルのリンティングと検証 |
| 正規表現パターンの反復修正 | Cursor | インライン反復が高速 |
重要なポイント
両方のツールを導入する開発者の方へ:
- 複数ファイル、ターミナルコマンド、自律的なタスク実行が関わる作業にはClaude Codeを使います
- 単一ファイルの編集、インライン補完、ビジュアルなdiffレビューにはCursorを使います
- アーキテクチャ変更後は共有コンテキストファイル(CLAUDE.md、.cursorrules)を更新し、コンテキストのずれを防ぎます
- 10分未満のタスクではツールの分割はメリットがありません。コンテキストスイッチのオーバーヘッドが節約時間を上回ります
AIツーリングを評価するチームリーダーの方へ: - これらのツールはワークフローの異なるフェーズに対応しています。どちらか一方だけを評価すると、併用による価値を見逃します - チームの作業におけるアーキテクチャと磨き上げの比率を把握することで、併用ワークフローの効果を推定できます