Cursorで何ができる?開発を加速する全機能徹底解説

Cursor の 4 大機能をさらに 13 項目に細分化し、それぞれの役割と操作方法を合わせ、使い方をイメージできるようまとめました。
# | 分類 | 機能 | 概要 |
---|---|---|---|
1 | エージェント | コンテキスト自動取得 | リポジトリ全体を独自の検索モデルで走査し、型定義・設定ファイル・関連テストを自動でプロンプトに注入。開発者が「このファイルも忘れずに」と逐次指定する手間を省き、大規模リファクタの抜け漏れを防ぐ。 |
2 | エージェント | コマンド実行 | 変更に合わせて必要なターミナル操作(依存追加・マイグレーション・ビルドコマンドなど)を生成。実行前に確認ダイアログが挟まるため、安全に自動化を導入できる。 |
3 | エージェント | エラー繰り返し修正 | テストや Lint が失敗した際に原因となる差分を特定し、パッチを適用して再実行。CI が赤くなっても人手を介さず再挑戦するため、修正サイクルが短縮される。 |
4 | Tab | マルチライン補完 | カーソル周辺だけでなく複数行・複数ファイルに跨る差分を提案。Tab → Enter の 2 キーで一括確定でき、呼び出し側の更新やリネームが一息で完了する。 |
5 | Tab | スマートリライト | タイプミス・未定義変数・簡単な構文エラーを検知し、リアルタイムで修正案を提示。レビューに出る前に粗いミスを自動で潰せる。 |
6 | Tab | カーソル位置予測 | 受け入れた補完に合わせ、次に編集すべき位置へ自動ジャンプを提案。長いクラスでもスクロール不要で次の作業へ移れる。 |
7 | Chat | コードベース回答 | @Codebase または Ctrl+Enter で AI が全リポジトリを検索し、質問にファイルパス付きで回答。たとえば「同様の SQL インジェクションが他にある?」で脆弱箇所を列挙。 |
8 | Chat | Instant Apply | チャット内コードブロック上部の ▶︎ をクリックすると、その差分をワンクリックでファイルに適用。チャット結果をコピーせずその場で反映できる。 |
9 | Chat | 参照コード挿入 | @ファイル名 や @シンボル名 で必要なスニペットを文脈に追加。巨大プロジェクトでも関係部分だけ渡せるため、回答精度が上がる。 |
10 | Chat | 画像 / Web / Docs | 図をドラッグ、@Web で最新情報検索、@LibraryName で公式ドキュメント引用。UI/UX のモックや API 仕様を共有しつつ設計相談が可能。 |
11 | Cmd K | エディタ編集 | 選択範囲に対し「null チェックを追加」「fetch を async/await に書き換え」など自然言語で指示し、即座に差分を生成。選択なしの場合は新規コードを生成できる。 |
12 | Cmd K | ターミナル変換 | ターミナルで Ctrl/Cmd+K を押し「最新パッケージをマイナーバージョンまで更新」など英語で指示すると、安全なコマンド列へ変換。シェル操作の習熟が浅くても高度なタスクを実行可能。 |
13 | Cmd K | クイック質問 | コードを選んで「Quick Question」を実行すると、その行限定の解説やバグ要因を即表示。レビューコメントやペアプロ時の“ここ何?”を即解消。 |
エージェント機能
エージェント機能は「リポジトリを丸ごと理解し、開発者の代わりに手を動かす AI パートナー」でございます。特に コンテキスト自動取得 → コマンド実行 → エラー繰り返し修正 の 3 連コンボを使えば、大規模リファクタや CI トラブルが劇的に楽になります。以下では機能の要点と操作フロー、具体例をまとめます。
コンテキスト自動取得で抜け漏れ防止
Cursor のエージェントは単純な全文検索ではなく、独自のリトリーバル(検索+要約)モデル でコードベースを解析いたします。以下では裏側で行われる処理フローを概念図としてまとめ、開発者が得られるメリットを具体例と併せてご紹介いたします。
ステージ | 処理内容 | 技術的ポイント |
---|---|---|
1. インデックス生成 | 初回オープン時と Git 更新後に全ファイルをスキャンし、トークン化+埋め込み(ベクトル化)を実施 | - OpenAI 互換の code-embedding- .cursorignore で除外パス指定 |
2. クエリ拡張 | ユーザープロンプト内のキーワードを抽出し、関連トークンやシンボルを自動付加 | - 例:"Replace Redux" → createStore , Provider , dispatch |
3. 二段階フィルタ | (a) 文字列一致 で候補を数百件に粗選別 → (b) ベクトル類似度 で上位 30〜50 件へ絞り込み | - レキシカルフィルタで誤爆を抑制- コサイン類似度閾値は動的調整 |
4. スコアリング | 距離スコアに ファイルパス重み・最終コミット時刻・テストファイル優先度 を加算しランク決定 | - src/ > dist/ 、*.test.ts を加点 |
5. コンテキスト整形 | ランク上位からトークン上限を超えない範囲で抽出し、```path/to/file.ts ``` … ``` 形式に整形 | - 長ファイルは該当行の前後 30 行のみ抜粋 |
6. プロンプト統合 | System Prompt → Project Context → User Prompt → Agent Rules の順に連結し LLM へ送信 | - トークン超過時は最下位ランクから削除 |
たとえば「Redux → Zustand」へ移行したいと指示すると、store/legacyStore.ts
や __tests__/store.spec.ts
が自動抜粋され、createStore
の使われ方を踏まえた差分提案が生成されます。開発者は 「Zustand に変えて、テスト赤を直して」 という抽象指示だけで済み、ファイル選定に時間を割く必要がなくなります。
操作方法
# | 操作手順 | 補足 |
---|---|---|
1 | Cmd/Ctrl+Shift+P → **Cursor: Run Agent Chat ** を選択 | まずはエージェントを起動 |
3 | Prompt に「Zustand へ移行し、型の衝突が起きないよう修正」など目的を入力 | プロジェクト全体を解析しコンテキストを組み立て |
2 | Prompt に目的を入力(例:「Zustand へ移行し、型の衝突が起きないよう修正」) | 送信すると自動でコード検索と計画立案が開始 |
3 | Plan タブで提案内容(Code Edits / Shell Commands / Tests など)を確認 | 個別に除外するチェックボックスはなく、プラン全体を受け入れるか 再プロンプトで調整するスタイルに変更されています |
4 | 内容に問題なければ右上の Apply Changes をクリック | 変更パッチ → コマンド実行 → テスト実行 がシーケンシャルに進行 |
5 | Progress ビューで実行ログをウォッチ | テスト失敗時はエージェントが自動で修正を試み、緑化すると完了レポートが表示されます |
bash# CLI でも同等操作が可能
yarn cursor agent \
--prompt "Replace Redux with Zustand across src/, update tests accordingly"
ターミナル操作の自動生成
エージェントはコードを変えるだけでなく、それに紐づくシェル操作も提案いたします。依存追加やビルドキャッシュ削除を忘れがちなリファクタで威力が大きいです。
操作方法
# | 操作手順 | 例 |
---|---|---|
1 | エージェント実行後、ダイアログに表示された Shell Commands タブを開く | yarn add zustand や yarn migrate:latest が列挙 |
2 | コマンド横のチェックボックスで実行対象を選択 | 余計なコマンドは外せる |
3 | Run Selected を押すと、選択コマンドを順に実行 | ログと戻り値が UI にストリーム表示 |
bash# 一括自動実行したい場合
yarn cursor agent \
--prompt "Add Tailwind CSS and configure postcss" \
--yes # 全コマンドを確認なしで実行
失敗の自動リカバリー
Lint 失敗やユニットテスト落ちが起きても、エージェントに任せれば即座に原因を特定し、修正のうえ再実行いたします。人がログを読み解く時間を短縮でき、CI パイプラインが止まりにくくなります。
操作方法
# | 発生から復旧まで | ポイント |
---|---|---|
1 | エージェントが差分を適用し CI を自動キック | ここでテストが失敗しても慌てない |
2 | 失敗レポートを解析し、該当ファイル行にパッチを生成 | 原因行だけを最小差分で修正 |
3 | パッチ適用 → テスト再実行を自動ループ | 最大 3 回までリトライ(設定変更可) |
bash# CLI の retry オプション
yarn cursor agent \
--prompt "Refactor class components to hooks" \
--retry 3 # テスト red が続いても 3 回まで自動再修正
Tab 補完
Tab 補完は「書きかけのコードを AI が先回りして仕上げてくれる」機能群でございます。ここでは マルチライン補完・スマートリライト・カーソル位置予測 の 3 つに分け、操作手順と具体例を交えて解説いたします。
マルチライン補完で一気に完成
関数シグニチャを変更した場合など、複数ファイルへ波及する修正を Tab がまるごと提案いたします。
操作方法
手順 | 操作 | 補足 |
---|---|---|
1 | 変更したいシグニチャを一部だけ書く | 例: export function fetchUser(id: UserID) を fetchUserById に変更 |
2 | 途中で Tab を押して提案をプレビュー | 呼び出し側ファイルの該当箇所まで差分が表示 |
3 | 内容を確認し Enter で確定 | 2 キーだけで複数ファイル修正完了 |
typescript// before
const user = await fetchUser(userId);
// after (Tab が一括生成)
const user = await fetchUserById(userId);
スマートリライトでミスを即修正
タイポや未定義変数をリアルタイム検知し、Tab キーで修正案を受け入れられます。レビュー前に粗いミスを潰すことで、レビュワーの指摘が設計に集中いたします。
操作方法
シチュエーション | 提案例 |
---|---|
reponse と誤記 | response への置換差分を提示 |
未使用インポート | 自動で削除パッチを提示 |
console.log 残り | logger.info への置換を提案 (プロジェクト lint 設定を参照) |
typescript// typo 例
const reponse = await api.get("/users"); // ← Tab を押すと…
const response = await api.get("/users"); // 修正完了
カーソル位置予測でスムーズに次の作業へ
Tab 補完を確定した瞬間、次に編集すべき位置が自動ハイライトされます。長いクラスや複数関数をまたぐ場合でもスクロール不要で、リズムを保ったまま作業を続行できます。
操作方法
手順 | 挙動 |
---|---|
1 | Tab 補完を Enter で確定 |
2 | そのままタイピングを開始 |
3 | さらに Tab を押すと次の未完パートへ |
実際に クラス全体を Hooks へ書き換える ケースでは、useState
→ useEffect
→ return
ブロックへ順にジャンプし、わずか数回の Tab 操作で修正を終えられます。
Chat
Cursor の Chat 機能は「資料検索・設計相談・コード生成・即時反映」が一画面で完結する万能インタフェースです。ここでは コードベース回答/Instant Apply/参照コード挿入/画像 Web Docs の 4 機能を、操作手順と実例を交えて整理いたします。
コードベース回答で即盤面理解
Ctrl + Enter
か @Codebase
を付けて送信すると、AI がリポジトリ全体を検索しつつ回答します。
設計レビューや脆弱性チェックを「聞く→場所が返る→飛んで修正」の最短手順で回せる点が大きな魅力です。
操作方法
手順 | 操作 | 補足 |
---|---|---|
1 | Chat パネルを開き質問入力 | 例: @Codebase 同様の SQL インジェクションが他にある? |
2 | Ctrl + Enter で送信 | 検索対象がリポジトリ全体に切り替わる |
3 | 回答内のファイルパスをクリック | 対象行へジャンプ、ハイライトも自動 |
textFound 3 matches:
1. src/controllers/user.ts:45
2. src/controllers/order.ts:78
3. src/legacy/db.ts:12
Instant Apply で提案を即反映
チャットのコードブロックには ▶︎ ボタンが付きます。
提案をコピーせずそのまま適用できるため、試行→修正→確認がワンクリックで済みます。
操作方法
手順 | 操作 | 結果 |
---|---|---|
1 | 回答に現れたコードブロック上の ▶︎ をクリック | 変更プレビューが diff 形式で表示 |
2 | 内容確認後 Apply | 該当ファイルにパッチ反映、Undo も 1 クリック |
diff- const password = req.body.password;
+ const password = sanitize(req.body.password);
@参照で精密なコンテキスト指定
巨大リポジトリでも必要な範囲だけ文脈に渡せます。
@ファイル名・@シンボル名・@行番号–行番号 を組み合わせると、回答の精度が飛躍的に向上します
操作方法
使い方 | 例文 | 効果 |
---|---|---|
ファイル全体 | @auth.ts この関数を JWT 認証に書き換えて | 当該ファイル全文を添付 |
行番号指定 | @user.service.ts#10-40 型安全に修正 | 10〜40 行だけ注入 |
シンボル指定 | @UserRepository findById を async/await に | 定義箇所+参照を自動抽出 |
画像 Web Docs で多角的な議論
Chat はテキストだけに留まりません。図面や外部ドキュメントを貼り付ければ、UI/UX や API 仕様も一緒に議論できます。
操作方法
モード | 操作 | 典型ケース |
---|---|---|
画像 | 画面設計の PNG をドラッグ | レスポンシブ対応案を相談 |
Web | @Web Stripe Connect onboarding | 最新記事を要約し導入手順を抽出 |
Docs | @react useTransition | 公式 API を引用し最適パターンを提示 |
Command K
Cmd K は「いま目の前のコードを最短手順で仕上げる」ための万能ショートカットです。
エディタ編集・ターミナル変換・クイック質問 の 3 機能が統合されており、手戻りを最小限に抑えながら思考のリズムを維持できます。以下では各機能の操作フローと実用例を整理いたします。
エディタ編集 ― 自然言語で瞬時に差分生成
選択を行わず Cmd K → Generate を選ぶと、現在のカーソル位置に新規コードを追加できます。たとえば「ユーザー登録フォーム React Hook Form で実装」と指示すれば、雛形コンポーネントが一瞬で生成されます。
操作方法
手順 | 操作 | 実用例 |
---|---|---|
1 | コードをドラッグで選択 | fetchData() 関数全体を選択 |
2 | Ctrl/Cmd + K を押し Edit を選択 | 入力ボックスがポップアップ |
3 | 指示を英語または日本語で入力し Enter | 「null チェックを追加し、fetch を async/await に書き換え」 |
4 | 生成された diff を確認し Apply | 差分がそのまま反映 |
typescript// before
function fetchData(id) {
return fetch(`/user/${id}`).then(r => r.json());
}
// after
async function fetchData(id: number) {
if (id == null) throw new Error("id is null");
const response = await fetch(`/user/${id}`);
return response.json();
}
ターミナル変換 ― 英語指示を安全なコマンドへ
複数コマンドが必要な場合、エージェント同様にチェックボックスで実行対象を取捨選択できます。知らないコマンドも詳細説明が付くため誤操作リスクを最小化できます。
操作方法
手順 | 操作 | 例 |
---|---|---|
1 | VS Code 内ターミナルをアクティブに | bash でも zsh でも可 |
2 | Ctrl/Cmd + K を押し Shell を選択 | 入力ボックス出現 |
3 | 英語で指示を入力 | Update all npm packages to latest minor versions |
4 | 提示されたコマンド列を確認し Run | npx npm-check-updates -u && npm install などが自動生成 |
クイック質問 ― 選択行を即時解析
ペアプロ中の「ここ何?」をその場で解消でき、レビューコメントも迅速に返答できます。必要なら回答をコピーして PR へ添付すると、説明コストをさらに削減できます。
操作方法
手順 | 操作 | 出力例 |
---|---|---|
1 | 理解しづらい行を選択 | return data?.map(processUser).filter(Boolean) |
2 | Ctrl/Cmd + K → Quick Question | ミニチャットが開く |
3 | 「この式の目的は?」など質問を入力 | 5 秒ほどで回答 |
4 | 回答を確認し Close | Optional chaining で undefined を回避しつつ… と詳細解説 |
最初に結論を申し上げます。Cursor は「探す・書く・直す・試す」を AI が連携して肩代わりする統合開発環境でございます。以下では先に解説した 4 大機能を横断的に振り返り、一連の開発フローの中でどう活用すれば最大効果を得られるかをまとめます。
まとめ
Cursor はカスタムリトリーバルモデルによる自動コンテキスト抽出を核に、エージェント・Tab・Chat・Cmd K が連携して「検索・編集・実装・検証」をワンストップで高速化し、開発者を設計と意思決定に専念させる統合 AI 開発環境です。
1. エージェント ― 自動化の要
- コンテキスト自動取得でリポジトリ全体を俯瞰し、抜け漏れのないリファクタを実現
- コマンド実行により依存追加・マイグレーション・ビルドをワンクリックで完結
- エラー繰り返し修正が CI の赤を即座に潰し、緑になるまで自動リトライ
→ 大規模変更でも「書いて待つだけ」 で反復作業が終わる
2. Tab ― コーディング速度を底上げ
- マルチライン補完で呼び出し側修正やリネームを 2 キーで一括確定
- スマートリライトがタイポ・未定義変数をリアルタイムで修正案提示
- カーソル位置予測により次タスクへ瞬時にジャンプ
→ 「書く」より先に「仕上がる」 没入型コーディング体験を提供
3. Chat ― 設計と調査のハブ
- コードベース回答で「どこに問題が?」が即座に可視化
- Instant Applyが提案をワンクリックでソースへ適用
- 参照コード挿入 & 画像/Web/Docsにより外部情報も交えた多角的議論
→ 検索・相談・修正が一画面で完結 し、設計議論が加速
4. Cmd K ― 目の前の課題を即解決
- エディタ編集で選択範囲を自然言語指示だけで変換・生成
- ターミナル変換が英語指示を安全なシェルコマンド列へ
- クイック質問で選択行の意図やバグ要因を即解説
→ 「考えた瞬間に手が動く」 レスポンスが思考のリズムを崩さない
関連リンク
Cursorの記事Cursor
- article
【早見表】TypeScriptでよく使うESLintルール一覧
- article
どっちを使うべき?TypeScriptのtype(型エイリアス)とinterfaceの違いと使い分け
- article
TypeScript 5.8 で強化された型推論!その裏で潜む 落とし穴と回避策
- article
【早見表】TypeScript Generics(ジェネリクス)の使用例と記法まとめ
- article
開発AIエディタ比較 Github Copilot vs Cursor vs Cline vs devin!それぞれの特徴や料金の違いを比較してみた
- article
【2025年5月版 早見表】TypeScript 5.7 tsconfig.jsonの主要オプションのまとめ