はじめに

AI駆動開発の真価は、コーディング時だけでなく開発フロー全体でAIを活用したときに発揮されます。Cursorは、IDE内での対話的な開発だけでなく、CLI、Background Agent、Bugbot、Hooksといった機能を通じて、CI/CDパイプラインや自動化ワークフローとのシームレスな連携を実現しています。

本記事では、Cursorを開発フロー全体に統合するための知識と実践方法を解説します。この記事を読むことで、以下のことができるようになります。

  • Cursor CLIを使用してターミナルやスクリプトからAgentを実行できる
  • BugbotによるAIコードレビューを自動化できる
  • Background Agentで自律的なタスク処理を実行できる
  • Hooks機能でワークフローを拡張できる

実行環境と前提条件

実行環境

項目 要件
Cursor バージョン 2.3以降(2026年1月時点の安定版)
プラン Pro以上(一部機能はBusiness/Enterpriseプラン)
オペレーティングシステム Windows 10以上、macOS 10.15以上、Ubuntu 20.04以上
インターネット接続 必須

前提条件

  • Cursor Agentの基本操作を理解していること
  • ターミナル/シェルの基本操作に習熟していること
  • Git/GitHubの基本操作を理解していること
  • CI/CDの基本概念を理解していること(GitHub Actions等)

期待される結果

本記事の手順を完了すると、以下の状態になります。

  • ターミナルからCursorのAgentを実行し、スクリプト化できる
  • PRに対してAIコードレビューが自動実行される
  • Background Agentがバックグラウンドでタスクを処理できる
  • Hooksでカスタムワークフローが動作する

Cursor CLIの活用

Cursor CLIは、任意のターミナルまたはスクリプトからCursorのAgentを実行できる機能です。IDEを開かずにAIの力を活用できるため、自動化ワークフローとの連携に最適です。

CLIのセットアップ

Cursor CLIを使用するには、まずコマンドラインツールをインストールします。

インストール方法

Cursorをインストールすると、CLIコマンドも自動的に利用可能になります。ただし、PATHへの追加が必要な場合があります。

macOS/Linux:

1
2
3
# Cursorのコマンドパレットから「Shell Command: Install 'cursor' command in PATH」を実行
# または手動でシンボリックリンクを作成
sudo ln -sf /Applications/Cursor.app/Contents/Resources/app/bin/cursor /usr/local/bin/cursor

Windows:

1
2
3
# インストーラーが自動的にPATHに追加
# 手動で追加する場合は環境変数を設定
$env:PATH += ";C:\Users\<username>\AppData\Local\Programs\cursor\resources\app\bin"

動作確認

1
2
cursor --version
# Cursor 2.3.x のようなバージョン情報が表示されれば成功

CLIの基本コマンド

Cursor CLIは複数のサブコマンドを提供しています。

コマンド 説明
cursor 指定したファイル/フォルダをCursorで開く
cursor --help ヘルプを表示
cursor agent Agentを実行(スクリプト連携用)
cursor diff 差分を表示

Agentの実行

CLIからAgentを実行する基本的な使い方を見ていきましょう。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 基本的な使い方
cursor agent "この関数にドキュメントコメントを追加してください" --file src/utils/helpers.ts

# 複数ファイルを対象にする
cursor agent "これらのファイル間の不整合を修正してください" \
  --file src/api/users.ts \
  --file src/types/user.ts

# ディレクトリ全体を対象にする
cursor agent "テストカバレッジを向上させてください" --dir src/services/

スクリプトとの連携

Cursor CLIをスクリプトに組み込むことで、開発ワークフローを自動化できます。

コミット前の自動チェック

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
# pre-commit-check.sh

# 変更されたファイルを取得
CHANGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(ts|tsx|js|jsx)$')

if [ -n "$CHANGED_FILES" ]; then
    echo "変更されたファイルのコードレビューを実行中..."
    
    for file in $CHANGED_FILES; do
        cursor agent "このファイルの潜在的な問題点を指摘してください。セキュリティ、パフォーマンス、ベストプラクティスの観点から確認してください。" \
          --file "$file" \
          --output json > /tmp/review_$$.json
        
        # 重大な問題があれば警告
        if grep -q '"severity": "critical"' /tmp/review_$$.json; then
            echo "警告: $file に重大な問題が見つかりました"
            cat /tmp/review_$$.json
        fi
    done
fi

テスト生成の自動化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#!/bin/bash
# generate-tests.sh

TARGET_FILE=$1
TEST_FILE="${TARGET_FILE%.ts}.test.ts"

cursor agent "このファイルに対する包括的なユニットテストを生成してください。
カバレッジ目標: 80%以上
テストフレームワーク: Jest
含めるべきテストケース:
- 正常系
- エラーハンドリング
- エッジケース" \
  --file "$TARGET_FILE" \
  --output "$TEST_FILE"

echo "テストファイルを生成しました: $TEST_FILE"

CI/CDパイプラインとの統合

Cursor CLIをCI/CDパイプラインに組み込むことで、自動化されたAI支援を実現できます。

GitHub Actionsでの使用例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# .github/workflows/ai-review.yml
name: AI Code Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  ai-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      
      - name: Setup Cursor CLI
        run: |
          # Cursor CLIのセットアップ
          curl -fsSL https://download.cursor.sh/cli/install.sh | sh
          export PATH="$HOME/.cursor/bin:$PATH"
      
      - name: Get Changed Files
        id: changed-files
        run: |
          FILES=$(git diff --name-only origin/main...HEAD | grep -E '\.(ts|tsx|js|jsx)$' | tr '\n' ' ')
          echo "files=$FILES" >> $GITHUB_OUTPUT
      
      - name: Run AI Review
        if: steps.changed-files.outputs.files != ''
        env:
          CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
        run: |
          for file in ${{ steps.changed-files.outputs.files }}; do
            cursor agent "このコードの変更をレビューしてください" --file "$file"
          done

BugbotによるAIコードレビュー自動化

Bugbotは、PRに対してAIによるコードレビューを自動実行する機能です。GitHub、GitLab、GitHubEnterprise Serverに対応しています。

Bugbotの概要

flowchart LR
    A[開発者] -->|PR作成| B[GitHub/GitLab]
    B -->|Webhook| C[Bugbot]
    C -->|コード解析| D[AIモデル]
    D -->|レビュー結果| C
    C -->|コメント投稿| B
    B -->|通知| A
    A -->|修正| E[Cursorで開く]
    E -->|ワンクリック修正| A

Bugbotのプラン

プラン 月額料金 主な機能
Free $0 毎月限定的なコードレビュー、Cursor Ask無制限
Pro $40/ユーザー/月 月間最大200件のPRで無制限レビュー、Bugbot Rules
Teams $40/ユーザー/月 全PRで無制限レビュー、分析ダッシュボード
Enterprise カスタム 高度な分析、優先サポート

Bugbotのセットアップ

GitHub連携の設定

  1. Cursor Dashboard(https://cursor.com/dashboard)にアクセス
  2. 「Bugbot」タブを選択
  3. 「Connect GitHub」をクリック
  4. 対象リポジトリを選択して認証
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# リポジトリに追加する設定ファイル(オプション)
# .bugbot/config.yml

enabled: true
review_on:
  - pull_request
  - push_to_main

ignore_patterns:
  - "*.md"
  - "*.json"
  - "test/**/*"

severity_threshold: medium

custom_rules:
  - name: security-check
    description: "セキュリティ関連のコードを重点的にチェック"
    patterns:
      - "**/*auth*"
      - "**/*security*"
      - "**/*crypto*"

Bugbot Rulesの設定

Bugbot Rulesを使用して、レビューの観点をカスタマイズできます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Bugbot Rules

## 重点チェック項目

### セキュリティ

- ハードコードされた認証情報の検出
- SQLインジェクションの可能性
- XSS脆弱性の検出
- 安全でない暗号化方式の使用

### パフォーマンス

- N+1クエリの検出
- 不要な再レンダリング(React)
- メモリリークの可能性
- 非効率なアルゴリズム

### コード品質

- 重複コードの検出
- 複雑度が高い関数
- 未使用のインポート/変数
- 型の不整合

IDE内でのAIコードレビュー

Cursor 2.1以降では、IDE内で直接AIコードレビューを実行できるようになりました。これはBugbotに加えて利用できる機能です。

使用方法:

  1. 変更を含むファイルを開く
  2. コマンドパレットから「AI Code Review」を実行
  3. サイドパネルで問題点を確認
  4. 「Fix」ボタンでワンクリック修正
flowchart TD
    A[コード変更] --> B[AI Code Review実行]
    B --> C{問題検出?}
    C -->|あり| D[サイドパネルに表示]
    D --> E[問題を選択]
    E --> F[Fixボタンをクリック]
    F --> G[Agentが修正を提案]
    G --> H[変更を適用]
    C -->|なし| I[レビュー完了]
    H --> I

Background Agentによる自律的タスク処理

Background Agentは、フォアグラウンドでの操作を妨げることなく、バックグラウンドでタスクを処理する機能です。

Background Agentの特徴

  • 非同期処理: メインのコーディング作業と並行して実行
  • 長時間タスクに最適: 大規模なリファクタリング、テスト生成など
  • クラウド実行: ローカルリソースを消費しない(Cloud Agents)
  • 99.9%の信頼性: 安定したバックグラウンド処理

Background Agentの起動方法

IDEからの起動

  1. Agentパネルでタスクを入力
  2. 「Run in Background」オプションを選択
  3. タスクがバックグラウンドで実行開始
  4. 完了時に通知を受け取る

CLIからの起動

1
2
3
4
5
6
7
8
# バックグラウンドでAgentを実行
cursor agent --background "プロジェクト全体のESLintエラーを修正してください"

# 実行状況の確認
cursor agent --status

# 結果の取得
cursor agent --result <job-id>

Cloud Agentsの活用

Cloud Agentsは、リモートマシン上でAgentを実行する機能です。Cursor 2.0以降で一般提供されています。

特徴:

  • 即時起動
  • 99.9%の信頼性
  • ローカルリソースを消費しない
  • 複数のAgentを並列実行可能

マルチエージェント実行

1つのプロンプトに対して、最大8つのAgentを並行実行できます。

1
2
3
4
使用シーン:
- 異なるアプローチでの実装比較
- 複数のリファクタリング案の同時生成
- 大規模な変更を分割して並列処理

各Agentは、git worktreesまたはリモートマシンを利用して、コードベースの独立したコピー上で動作します。これにより、ファイル競合を防ぎながら並列処理を実現しています。

マルチエージェント判定

複数のAgentを並列実行した場合、Cursorは自動的にすべての結果を評価し、最適なソリューションを推奨します。

flowchart TD
    A[タスク入力] --> B[複数Agent並列実行]
    B --> C[Agent 1]
    B --> D[Agent 2]
    B --> E[Agent 3]
    C --> F[実行結果1]
    D --> G[実行結果2]
    E --> H[実行結果3]
    F --> I[自動評価]
    G --> I
    H --> I
    I --> J[最適なソリューションを推奨]
    J --> K[理由を説明するコメント付き]

実践的なユースケース

大規模リファクタリング

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
プロンプト例:
「このプロジェクト全体で非推奨のAPIを使用している箇所を特定し、
新しいAPIに移行してください。
- lodashの_.getを optional chaining に置換
- moment.jsをdate-fnsに移行
- classコンポーネントをfunctional componentsに変換」

実行オプション:
- Background Agent: ON
- 並列Agent数: 4

テストカバレッジの向上

1
2
3
4
5
6
7
8
プロンプト例:
「src/servicesディレクトリ内のすべてのファイルに対して、
カバレッジ80%以上を目標にユニットテストを生成してください。
既存のテストパターンを参考にしてください。」

実行オプション:
- Background Agent: ON
- 対象ディレクトリ: src/services/

Hooks機能によるワークフロー拡張

Hooks機能を使用すると、特定のイベント発生時にカスタムスクリプトやコマンドを自動実行できます。

Hooksの概要

Hooksは、Cursor内の特定のアクションをトリガーとして、外部プロセスやスクリプトを実行する機能です。

flowchart LR
    A[Cursorイベント] --> B{Hook定義あり?}
    B -->|あり| C[Hookスクリプト実行]
    C --> D[結果をCursorに返却]
    D --> E[後続処理]
    B -->|なし| E

Hooksの設定方法

ローカル設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// .cursor/hooks.json
{
  "hooks": [
    {
      "name": "pre-agent",
      "event": "agent:before",
      "command": "npm run lint",
      "description": "Agent実行前にリントを実行"
    },
    {
      "name": "post-save",
      "event": "file:save",
      "command": "npm run format -- ${file}",
      "description": "ファイル保存時に自動フォーマット"
    },
    {
      "name": "post-agent",
      "event": "agent:after",
      "command": "npm test",
      "description": "Agent実行後にテストを実行"
    }
  ]
}

チーム設定(Enterpriseプラン)

Enterpriseプランでは、Hooksをダッシュボードから直接配信できます。

  1. ダッシュボードの「Team Content」タブを選択
  2. 「Hooks」セクションに移動
  3. 「Add Hook」をクリック
  4. Hook設定を入力
  5. 適用するOSを選択(Windows/macOS/Linux)
  6. 公開または下書きとして保存

Hook イベント一覧

イベント トリガータイミング
agent:before Agent実行前
agent:after Agent実行後
file:save ファイル保存時
file:create ファイル作成時
terminal:command ターミナルコマンド実行時
review:complete コードレビュー完了時

実践的なHook設定例

セキュリティスキャン

1
2
3
4
5
6
7
{
  "name": "security-scan",
  "event": "agent:after",
  "command": "npm run security:check",
  "condition": "fileChanged('**/*auth*') || fileChanged('**/*security*')",
  "description": "認証・セキュリティ関連ファイル変更時にセキュリティスキャンを実行"
}

自動ドキュメント更新

1
2
3
4
5
6
7
{
  "name": "update-docs",
  "event": "agent:after",
  "command": "npm run docs:generate",
  "condition": "fileChanged('src/api/**/*.ts')",
  "description": "API変更時にドキュメントを自動更新"
}

Slack通知

1
2
3
4
5
6
{
  "name": "slack-notify",
  "event": "review:complete",
  "command": "curl -X POST -H 'Content-type: application/json' --data '{\"text\":\"コードレビューが完了しました: ${review.summary}\"}' $SLACK_WEBHOOK_URL",
  "description": "レビュー完了時にSlackに通知"
}

CI/CD統合のベストプラクティス

段階的な自動化

CI/CDへの統合は、段階的に進めることをお勧めします。

flowchart TD
    subgraph Phase1["フェーズ1: 基本統合"]
        A1[Bugbot連携]
        A2[PRへの自動レビュー]
    end
    
    subgraph Phase2["フェーズ2: ワークフロー拡張"]
        B1[Hooks設定]
        B2[CLI活用]
    end
    
    subgraph Phase3["フェーズ3: 高度な自動化"]
        C1[Background Agent]
        C2[マルチエージェント]
        C3[サービスアカウント]
    end
    
    Phase1 --> Phase2 --> Phase3

セキュリティ考慮事項

CI/CD環境でCursorを使用する際のセキュリティ考慮事項です。

項目 推奨事項
APIキー管理 シークレット管理サービスを使用
権限の最小化 必要最小限のリポジトリアクセス
ログの保護 機密情報がログに出力されないよう設定
サンドボックス Enterprise環境ではサンドボックスを強制

パフォーマンス最適化

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# CI/CD環境での最適化設定例

cursor:
  # 並列実行の制限
  max_parallel_agents: 4
  
  # タイムアウト設定
  agent_timeout: 300  # 5分
  
  # キャッシュの活用
  cache:
    enabled: true
    ttl: 3600  # 1時間
  
  # 対象ファイルの制限
  file_patterns:
    include:
      - "src/**/*.ts"
      - "src/**/*.tsx"
    exclude:
      - "**/*.test.ts"
      - "**/node_modules/**"

トラブルシューティング

CLIコマンドが認識されない

原因と対処法:

  1. PATHが正しく設定されているか確認
  2. Cursorを再インストール
  3. シェルを再起動
1
2
3
4
5
# PATHの確認
echo $PATH | grep cursor

# シンボリックリンクの確認(macOS/Linux)
ls -la /usr/local/bin/cursor

Bugbotがレビューを実行しない

原因と対処法:

  1. GitHub連携が正しく設定されているか確認
  2. リポジトリへのアクセス権限を確認
  3. Webhook配信ログを確認
  4. 対象ファイルがignore_patternsに含まれていないか確認

Background Agentが完了しない

原因と対処法:

  1. ネットワーク接続を確認
  2. タスクが複雑すぎないか確認(分割を検討)
  3. タイムアウト設定を確認
  4. ログでエラーを確認
1
2
3
4
5
# 実行状況の確認
cursor agent --status

# ログの確認
cursor agent --logs <job-id>

まとめ

本記事では、CursorとCI/CD連携について解説しました。

重要なポイントを振り返ります。

  • Cursor CLI: ターミナルやスクリプトからAgentを実行し、自動化ワークフローに統合
  • Bugbot: PRに対するAIコードレビューを自動化し、品質向上を継続的に実現
  • Background Agent: 長時間タスクをバックグラウンドで処理し、開発効率を向上
  • Hooks: カスタムワークフローを定義し、開発プロセスを拡張

これらの機能を活用することで、開発フロー全体でAIの力を最大限に引き出し、チームの生産性を大幅に向上させることができます。

参考リンク