この記事の要点
• CursorはVS CodeベースのAIファーストコードエディタ
• Cmd+Kで直接編集、@記法でコンテキスト参照、Composerでマルチファイル編集
• VS Codeの拡張機能・設定をそのまま引き継ぎ可能で移行コストが極めて低い
• GPT-4o・Claude・独自モデルなど複数のAIモデルを切り替え可能
Cursorとは
Cursorは、VS CodeをベースにしたAI搭載のコードエディタです。Anysphere社が開発し、GPT-4やClaude、独自のチューニング済みモデルを統合し、AIによるコード生成・編集を中核機能として提供します。VS Codeのフォークとして開発されているため、既存の拡張機能・キーバインド・テーマ・設定がほぼそのまま利用でき、VS Codeからの移行コストは極めて低いのが特徴です。一方でエディタ自体にAI機能が深く統合されており、「Cmd+Kで直接編集」「@記法による高精度コンテキスト参照」「プロジェクト全体のインデックス検索」といった体験はVS Code + Copilotよりも一段洗練されています。
背景
AI補完は2021年のGitHub Copilotを皮切りに急速に普及しましたが、当初は「次の1行を予測する」補完が中心でした。Cursorは「開発者がエディタ内でAIにどう指示を出すか」をゼロから設計し直し、補完・チャット・直接編集・コードベース検索を統合的なUXにまとめたことで支持を集めています。2024年以降はAnthropicのClaude 3.5 Sonnet / Claude 3.7 Sonnet、OpenAIのGPT-4o / o3-mini、独自の高速モデルなどを組み合わせ、コストと速度のトレードオフをユーザーが選べる柔軟性も備えています。
flowchart TB
User["開発者"] -->|Cmd+K| Edit["直接編集"]
User -->|Cmd+L| Chat["チャット"]
User -->|Tab| Complete["補完"]
Edit --> Models["AI Models<br/>Claude / GPT / cursor-small"]
Chat --> Models
Complete --> Models
Models --> Codebase["@Codebase<br/>ベクトル検索インデックス"]
主な機能
Cmd+K(コード生成・編集)
選択範囲に対してAIが直接編集を行います。既存コードのリファクタリング、新規コードの生成、特定関数のテスト追加など、エディタのインライン操作として完結するのが特徴です。
使い方:
1. コードを選択(または何も選択しない)
2. Cmd+K(macOS)/ Ctrl+K(Windows/Linux)
3. 自然言語で指示を入力
4. 差分をDiffビューで確認してAccept/Reject
使用例:
- 「この関数にエラーハンドリングを追加」
- 「TypeScriptの型を追加」
- 「このコードをリファクタリングして純粋関数に」
- 「jestでこの関数のテストを書いて」
- 「このAPIレスポンスからZodスキーマを生成」
Cmd+L(チャット)
サイドパネルでAIとチャットできます。会話履歴を保持しつつ、必要に応じてファイルや関数を参照できるのが強みです。
- コードベースについての質問
- 実装方法の相談
- エラーの解決
- コードレビュー
- リポジトリ全体に渡るリファクタ計画の作成
Cmd+I(Composer)
複数ファイルにまたがる変更をまとめてAIに依頼できる機能です。「新しい機能ブランチを一気に実装する」ような大きめのタスクに向きます。差分は一括表示され、ファイルごとにAccept/Rejectできます。
Tab(インライン補完)
タイプ中にAIが次の行を予測して提案します。単なる1行補完ではなく、複数行の編集や、カーソル位置以外への編集(マルチカーソル補完)にも対応しています。
// 関数名を入力すると...
function calculateTotalPrice(
// AIが続きを提案
function calculateTotalPrice(items: CartItem[]): number {
return items.reduce((total, item) => total + item.price * item.quantity, 0);
}
@記法(コンテキスト参照)
チャットやCmd+Kで特定のファイル・関数・ドキュメント・Web検索結果を参照できます。
@src/utils/auth.ts この関数のバグを直して
@Codebase 認証の実装箇所を教えて
@Docs React の Suspense について公式ドキュメントから例を見せて
@Web 最新のNext.js 15の変更点を調べて
@Git 直近のコミット差分を要約して
@Folder src/components このフォルダの設計意図を教えて
Bug Finder(実験的機能)
Gitの差分をもとにAIがバグ候補を指摘します。PRを作る前のセルフレビューに便利です。
VS Codeとの違い
| 機能 | Cursor | VS Code + Copilot |
|---|---|---|
| AI編集 | Cmd+Kで直接編集 | Inline Chatあり |
| マルチファイル編集 | Composer (Cmd+I) | Copilot Edits |
| チャット | 統合済み | 拡張で別パネル |
| モデル選択 | GPT-4o/Claude/o3-mini等 | GPT系中心 |
| コードベース理解 | @Codebase (埋め込みインデックス) | Copilot Workspace |
| カスタムルール | .cursorrules / .cursor/rules/*.mdc | .github/copilot-instructions.md |
| 拡張機能 | VS Code Marketplaceほぼ互換 | ネイティブ |
| ターミナル統合 | Cmd+Kでターミナル内もAI編集 | 限定的 |
設定のコツ
.cursorrulesファイル
プロジェクトルートに配置すると、AIがプロジェクト固有のルールを理解して応答します。
# .cursorrules
## プロジェクト概要
Next.js 14 + TypeScript + Prisma のWebアプリケーション
## コーディング規約
- 関数コンポーネントを使用
- 型定義は明示的に行う
- エラーハンドリングは必須
- コメントは日本語で記述
- インポートは絶対パスを優先(`@/`エイリアス)
## ディレクトリ構造
- src/app/ - App Router
- src/components/ - UIコンポーネント
- src/lib/ - ユーティリティ
- src/server/ - サーバー処理
- prisma/ - データベーススキーマ
## 使用ライブラリ
- Tailwind CSS(ユーティリティファースト)
- Zod(バリデーション)
- React Hook Form
- Prisma Client
## 禁止事項
- any型の使用
- console.logを残したままのコミット
- 未使用インポート
.cursor/rules/*.mdc(新形式)
複数のルールファイルに分割管理できます。ファイル名パターンで適用範囲を制御できます。
---
description: React コンポーネントのコーディング規約
globs: src/components/**/*.tsx
---
- 関数コンポーネントを使用する
- propsは必ず型定義する
- useEffectは副作用が明確な場合のみ使う
- 3階層以上のネストは避け、サブコンポーネントに分割
モデル設定
Settings > Models から利用するモデルを選択できます。用途ごとの使い分け例:
- Claude 3.5 / 3.7 Sonnet: コーディング全般、多くの場面で最適
- GPT-4o: バランス型、マルチモーダル
- o3-mini: 深い推論、複雑なアルゴリズム設計
- cursor-small: 超高速、簡単な編集・補完
プライバシー設定
Settings > Privacy で以下を設定できます:
- Privacy Mode: コードをAIサーバーに学習用として送信しない
- Codebase Indexing: ローカルでのみインデックス作成
- Index Ignore:
.cursorignoreで特定ファイルを除外
# .cursorignore
node_modules/
.env
.env.local
secrets/
*.pem
効果的な使い方
1. 小さく始める
✗ 「認証システム全体を実装して」
✓ 「ログインフォームのZodバリデーションを追加」
2. コンテキストを与える
✗ 「バグを直して」
✓ 「@src/api/users.ts の getUser関数で、nullチェックを追加して」
3. 段階的にレビュー
生成されたコードは必ず確認します。
- セキュリティ問題がないか(SQLインジェクション、XSS、秘密情報)
- プロジェクトの規約に沿っているか
- パフォーマンスに問題がないか
- テストが必要な箇所を網羅しているか
4. Composerで「計画→実装」を分離
大きな変更では、まず「計画を立てて」と依頼し、方針を確認してから実装に進むと品質が安定します。
実践: フルスタック機能の追加
[Composer プロンプト例]
@Codebase に既存のPrismaスキーマがある前提で、
1. User テーブルに `role` カラム(enum: ADMIN/USER)を追加
2. マイグレーションファイルを生成
3. getUserRole(userId) をsrc/server/users.ts に追加
4. src/middleware.ts で ADMIN ルートをガード
5. 対応するVitestテストを src/server/users.test.ts に追加
コードはプロジェクトの .cursorrules に従って書いてください。
生成後のレビュー観点
// src/server/users.ts
import { prisma } from '@/lib/prisma';
export async function getUserRole(userId: string): Promise<'ADMIN' | 'USER'> {
const user = await prisma.user.findUnique({
where: { id: userId },
select: { role: true },
});
if (!user) throw new Error('User not found');
return user.role;
}
AI生成後は次を確認:
- nullチェック、エラーハンドリングが十分か
- 認可ロジックがミドルウェアで確実に走るか
- テストが異常系も含むか
料金プラン
| プラン | 価格 | 内容 |
|---|---|---|
| Hobby | 無料 | 2週間Pro機能、その後制限付き |
| Pro | $20/月 | 高速リクエスト 500/月、通常リクエスト無制限 |
| Business | $40/月/ユーザー | チーム機能、SSO、Privacy Mode強制、集中管理 |
料金は時期により変動します。最新は公式ページで確認してください。
他のAIエディタとの比較
| ツール | ベース | 強み | 弱み |
|---|---|---|---|
| Cursor | VS Codeフォーク | 総合力、@Codebase | スタンドアロンアプリ |
| GitHub Copilot | VS Code拡張 | エコシステム統合 | 直接編集UXはCursorに一歩譲る |
| Windsurf | 独自エディタ | Cascadeエージェント | エコシステムが若い |
| Zed | 独自(Rust製) | 高速、GPUレンダリング | 拡張機能がまだ少ない |
| Continue | OSS拡張 | オンプレLLMと組合せ可 | セットアップに手間 |
ベストプラクティス
.cursorrulesをチームで共有: プロジェクトに合った回答が得られる- .cursorignoreで秘密を守る:
.envなどは必ず除外 - 小さなPR: AIに大きな変更を一度に作らせない
- レビュー文化: AI出力も通常のコードレビューに載せる
- モデル切り替え: タスクの重さに応じてcursor-small ↔ Claude Sonnet ↔ o3-miniを使い分け
- Composerを使う場面を決める: 複数ファイル編集はComposer、局所編集はCmd+K
よくある落とし穴とトラブルシューティング
1. インデックスが古い
@Codebaseの回答がズレる場合、Settings > Features > Codebase Indexingから再インデックスします。
2. 秘密情報が送信される懸念
Privacy Modeを有効化し、.cursorignoreで機密ファイルを必ず除外します。Business planでは組織全体で強制できます。
3. Tab補完が邪魔
誤補完がストレスなら、特定言語でTab補完を無効化するか、cursor-tabモデルの感度を調整します。
4. Composerが壊れた変更を作る
一度に依頼する変更を小さく刻み、Acceptする前に必ず差分をレビューします。テストがあるプロジェクトではテスト駆動で進めると安定します。
5. オフラインで使いたい
CursorのAI機能は基本的にクラウド依存です。オフラインで動作させたい場合はContinue+ローカルLLM(Ollama等)の組み合わせが選択肢となります。
導入手順
# 1. 公式サイトからダウンロード
# https://www.cursor.com/
# 2. 既存VS Code設定をインポート
# Cursor起動 > Cmd+Shift+P > "Import VS Code Settings"
# 3. サインインしてモデル選択
# Settings > Models から利用モデルを選択
# 4. .cursorrules をプロジェクトに作成
touch .cursorrules
# 5. .cursorignore を作成
cat > .cursorignore <<'EOF'
node_modules/
.env*
dist/
build/
EOF
パフォーマンスの実感値
- Tab補完: 数十〜数百ms(cursor-smallモデル)
- Cmd+K編集: 1〜5秒(Claude 3.5 Sonnet)
- Composer(マルチファイル): 10秒〜数分
- @Codebase検索: 1〜3秒
- 初回インデックス作成: 中規模リポジトリで数分〜十数分
FAQ
Q1. VS Codeの拡張機能は使えますか? A. ほぼすべて使えます。MarketplaceもCursor独自のレジストリ経由で利用できます。
Q2. Copilotとの併用は可能? A. 技術的には可能ですが、補完UIが競合するため片方に寄せるのが無難です。
Q3. 個人情報・機密コードの扱いは? A. Privacy Modeでコードを学習に使われないよう設定できます。Business planではSOC 2対応や組織ポリシーも利用可能です。
Q4. 日本語の指示は通じますか? A. 通じます。Claude/GPT系は日本語理解が高く、実務で問題なく使えます。
Q5. チーム開発での最適な使い方は?
A. .cursorrulesをGitで管理し、チームの命名規約・テスト方針を明記。Composerで作った差分は必ずPRでレビューする運用が安定します。
今後の期待
- Composer(マルチファイル編集)のさらなる強化
- Backgroundエージェントによる非同期タスク実行
- より深いコードベース理解(シンボル単位のセマンティック検索)
- カスタムAIモデルの統合
- チーム向け共有ルール・コンテキスト機能
まとめ
Cursorは、VS Codeの使いやすさをそのままに、AIを一級市民として統合したコードエディタです。Cmd+Kによる直接編集、@Codebaseによる高精度コンテキスト参照、Composerによるマルチファイル編集、そして.cursorrulesによるプロジェクト文脈の共有など、AIと一緒に書くための機能が徹底的に磨かれています。慣れると従来のエディタに戻れないほどの生産性向上が得られる一方、AI出力のレビュー文化は手放さないようにしましょう。
ショートカット早見表
| 操作 | macOS | Windows/Linux |
|---|---|---|
| 直接編集 | Cmd+K | Ctrl+K |
| チャット | Cmd+L | Ctrl+L |
| Composer | Cmd+I | Ctrl+I |
| 補完を受け入れ | Tab | Tab |
| 補完をスキップ | Esc | Esc |
| ファイルを@参照 | @ + ファイル名 | @ + ファイル名 |
| コマンドパレット | Cmd+Shift+P | Ctrl+Shift+P |
| ターミナル | Ctrl+` | Ctrl+` |
| 新しいチャット | Cmd+N(チャット内) | Ctrl+N |
Cursor Rules の実例集
Next.js App Router向け
---
description: Next.js App Router + TypeScript 規約
globs: src/app/**/*
---
- Server Componentをデフォルトとし、必要な場合のみ 'use client' を使う
- データ取得は Server Component で行い、props で Client Component に渡す
- fetch には next の cache/revalidate オプションを明示する
- Error Boundary は error.tsx、Loading は loading.tsx を使う
- metadata export で SEO 情報を必ず定義
FastAPI バックエンド向け
---
description: FastAPI + SQLAlchemy 規約
globs: backend/**/*.py
---
- ルーティングは APIRouter で機能ごとに分離
- Pydantic モデルで入出力を厳密に定義
- DB 操作は async な Session を使う
- 例外は独自の APIError に統一し、ExceptionHandler で整形
- ログには structlog を使う
テスト方針
---
description: テスト方針
globs: **/*.{test,spec}.{ts,tsx,js,jsx,py}
---
- ひとつの test には ひとつの振る舞いをテストする
- describe は日本語、it/test も日本語で意図を記述してよい
- 外部 API は必ずモック
- snapshot テストは壊れやすいので最小限に
- カバレッジよりも「バグが入ったら落ちるか」を重視
Composer を使った実践ワークフロー
Composer(Cmd+I)は複数ファイル編集のためのモードで、複雑な機能追加に向きます。以下は実際の使い方の例です。
ステップ1: 計画を立てさせる
@Codebase の現状を踏まえて、以下の機能を追加する計画を立ててください。
コードはまだ書かないでください。
機能: 「お気に入り」機能
- ユーザーが記事にお気に入りを付けられる
- お気に入りの一覧ページを作る
- お気に入り数を記事一覧に表示する
影響範囲、必要な変更、推奨する実装順序を教えてください。
ステップ2: 計画に同意してから実装を依頼
上記の計画のうち、まずデータベース層とサーバーアクションだけ実装してください。
フロントエンドは次のステップで行います。
ステップ3: 生成された差分をレビュー
Acceptする前に必ず以下を確認します。
- 意図しないファイルが変更されていないか
- 既存テストが壊れていないか
- マイグレーションが破壊的でないか
- 認可ロジックが正しいか
ステップ4: 次のステップへ進む
次はフロントエンドのUIを実装してください。既存の src/components/ArticleCard.tsx を参考に、
お気に入りボタンを追加してください。
Cursor Agent(バックグラウンドエージェント)
Cursorはバックグラウンドでタスクをこなすエージェント機能も持ち始めています。「テストが通るまで修正を繰り返す」「ドキュメントを自動生成する」といったループ型タスクに活用できます。
[エージェントへの依頼例]
1. npm test を実行
2. 失敗したテストを読み、原因を特定
3. ソースコードを修正
4. 再度テストを実行
5. 通るまで繰り返す(最大10回)
6. 通ったらコミットメッセージ案を提示
対象テスト: src/utils/date.test.ts
.cursorignore と .cursorindexingignore
| ファイル | 役割 |
|---|---|
| .cursorignore | AIリクエストに含めないファイル |
| .cursorindexingignore | インデックス対象から除外するファイル |
| .gitignore | デフォルトでCursorにも尊重される |
推奨設定例:
# .cursorignore
.env
.env.*
secrets/
credentials/
*.pem
*.key
private/
# .cursorindexingignore
node_modules/
dist/
build/
.next/
coverage/
セキュリティ上の考慮
- 秘密情報:
.cursorignoreで除外し、Privacy Modeを有効化 - 顧客データ: テストデータに機密情報を含めない
- 社内コードベース: Business planでSOC 2、SSO、組織ポリシーを活用
- 第三者コード: AI生成コードのライセンスに注意(一般に学習データ由来のコード流用が問題になることがある)
- 依存ライブラリ: AIが提案した新しいライブラリは必ずnpm auditで確認
チーム運用
.cursorrulesをGit管理し、PRでレビュー- オンボーディング時にCursor設定の標準を共有
- AI生成コードも通常のコードレビュープロセスに乗せる
- 「AIが書いたから」は免罪符にしない文化
- 定期的にチームでTipsを交換
関連記事
- GitHub Copilot活用ガイド - Copilotとの比較
- VS Code設定 - エディタ設定
- Claude AI 2025 - Claudeモデルについて
参考リソース
- Cursor 公式サイト - 製品トップ
- Cursor ドキュメント - 使い方とリファレンス
- Cursor フォーラム - コミュニティ