CursorからClaude Codeへの移行ガイド — 設定の引き継ぎから「Tab補完がない」問題までの実務手順
CursorからClaude Codeに移行するときの設定引き継ぎ、Tab補完がない問題の対処、CLAUDE.mdと .cursorrulesの対応関係、ワークフロー再設計までを実務目線で整理した移行ガイドです。
はじめに
Cursorを日常的に使ってきた開発者がClaude Codeに移行するとき、引き継げるのは「ルールを書いた文章」と「MCPの接続先」までです。補完の体験とエディタ上の操作は引き継げず、作り直しになります。Claude CodeでCursorのようなコードのTab補完は使えません。CLIの入力欄では、スラッシュコマンドやファイルパスをTabで補完できます。本記事では、その線引きと移行手順を、v2.1.287のclaudeで確認した出力を交えて示します。
完全な移行ではなく併用パターン(Cursorで対話的にコードを書きつつ、Claude CodeでCI / バッチ / リファクタを回す)も視野に入れます。併用そのものの役割分担はCursorとClaude Codeの併用ワークフロー実践ガイドで詳しく扱っています。
何が引き継げて、何が作り直しになるか
Claudeの料金はClaudeの料金プラン比較で扱っています。ここでは移行に関わる点だけ後述します。詳細な機能比較はClaude Code vs Cursor vs Codex CLIにあります。
/initは.cursor/rules/と.cursorrulesを読み、CLAUDE.mdに取り込みます。MCPサーバー・コマンド・サブエージェント・スキルは/importの対象です。Cursor側のAGENTS.mdなどの命令ファイルも、/importでCLAUDE.mdに追記されます。なお.cursorrulesは現行のCursor docsに記載がない旧形式です。逆に、Tab補完に当たる機能はClaude Code側にありません。
最短で移行する3手
- 1
インストールする
macOS / Linux / WSLなら下のコマンドです。ネイティブインストールはバックグラウンドで自動更新されます。
- 2
ルールを持ち込む
/initか/import cursor、または手動コピーでCLAUDE.mdを作ります。 - 3
MCPと拡張を足す
.mcp.jsonを移し、必要ならHooksとSkillsで自動化を組み直します。
1. Claude Codeを入れる
Claude Codeとは — できること・料金・使い方に沿って、ネイティブインストールを使います。
# macOS / Linux / WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows(PowerShell)
irm https://claude.ai/install.ps1 | iexHomebrewとWinGetでの導入は自動更新されないので、手動でbrew upgradeやwinget upgradeを回す前提になります。環境変数CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATEを1にすると、更新コマンドをClaude Codeが代行します。
2. Cursorのルールを持ち込む
移行の中心はここです。持ち込み方は3通りあり、どれを選ぶかは元のルールの形で決まります。
| 元の状態 | 向いている方法 | 注意点 |
|---|---|---|
.cursorrules が1ファイル | 向いている方法cp .cursorrules CLAUDE.md | 注意点中身はそのまま使える。.cursorrulesは残してよい |
.cursor/rules/*.mdc が複数 | 向いている方法/init で取り込む、または .claude/rules/ に分割 | 注意点globsの対応はpathsに手で書き換える |
| MCP・コマンドまで一括で移したい | 向いている方法/import cursor | 注意点v2.1.265以降が必要。環境によっては使えない |
.cursorrulesが1つだけの場合
置き場所は./CLAUDE.mdか./.claude/CLAUDE.mdです。個人用は~/.claude/CLAUDE.mdに置きます。Cursorの個人設定(User Rules。Customize → Rules)を移すなら、こちらです。
cp .cursorrules CLAUDE.md
git add CLAUDE.mdClaude Codeはセッション開始時にCLAUDE.mdを読みます。.cursorrulesは消さなくても、Cursorとの併用に支障はありません。書き方の実例はCLAUDE.md 10パターンにあります。
公式docsは、1ファイル200行以内を目安にしています。長くなる場合は、特定のファイルにだけ効かせたい指示を.claude/rules/へ移す選択肢があります。
.cursor/rules/に複数の.mdcがある場合
Cursorでは、ルールごとにglobsとalwaysApplyをフロントマターに書きます。Claude Code側の対応物は.claude/rules/の.mdファイルで、pathsにglobを並べます。
---
paths:
- "**/*.test.ts"
---
Use vitest.pathsを書かないルールは起動時に毎回読み込まれます。alwaysApply: trueに当たるのは、この書き方です。一方、指定したルールはClaudeが該当ファイルを読んだときに読み込まれます。
Cursorには、descriptionだけを書いてAgentに必要性を判断させるルールや、@で手動指定するルールもあります。pathsにこの2つの対応物はありません。Claude Codeでは、descriptionによる自動呼び出しもスラッシュでの手動呼び出しもできるスキルが近い位置にあります。
/import cursorで自動移行する場合
claude import cursor(セッション内なら/import cursor)は、Cursorの設定をClaude Codeに取り込みます。命令ファイルは対応するCLAUDE.mdへ追記され、MCPサーバー・コマンド・サブエージェント・スキルも運ばれます。
先に--dry-runで中身を確認できます。
claude import --helpv2.1.287の出力は次のとおりです。
Usage: claude import [options] [source]
Import config from another AI coding agent into Claude Code
Arguments:
source Which agent to import from (codex, gemini, cursor)
Options:
--dry-run Show what would be imported without writing anything
-h, --help Display help for command
--yes Skip the interactive picker. On headless surfaces, pass
--yes=<digest> from the `/import` preview.筆者の環境では、空のホームディレクトリに.cursorrulesと.cursor/mcp.jsonだけを置いた一時プロジェクトでclaude import cursor --dry-runを試しました。出力は次の1行で、何も取り込まれませんでした。
`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.公式のコマンド表は、/importがフィーチャーフラグの取得を止めた環境、およびAmazon Bedrockなどのサードパーティ経由では使えないと書いています。この出力がどちらに当たるかまでは、手元では切り分けていません。原因の見分け方はclaude importが使えない「not yet available in this build」の意味と対処にあります。使えないときは上の手動コピーが確実です。同じ手動移行の考え方はAiderにも当てはまり、AiderからClaude Codeへの移行手順 — .aiderignoreの読み替え方で扱っています。
3. Tab補完がない問題への向き合い方
Claude Codeにはインラインのコード補完がありません。これが移行で最も大きい摩擦です。VS Code拡張も、Claudeに指示を出す対話パネルであり、打鍵中に候補を出す補完機能は付きません。
Cursorで便利だった動作は、Claude Codeでどこへ行くか
Cursorの操作
Tab補完、Cmd+Kのインライン編集(Inline Edit)、Agentによる複数ファイル編集。
Claude Codeの対応
補完はエディタ側のLSPやCopilotに任せ、指示と複数ファイル編集はClaude Codeの対話で行います。変更の確認はgit diffか、拡張のインラインdiffです。
Claude Codeは「エディタの代替」というより、「AIに作業を任せる時間帯のための専用の場」として使うと違和感が小さくなります。書く作業は補完のあるエディタ、機能追加・リファクタ・バグ修正の連続作業はClaude Code、CIはClaude Codeの非対話モード、と分けるのが現実的です。
VS Code拡張は、Cursorの中にも入る
IDE連携を残したいなら、Claude Code拡張を入れる手があります。公式docsには、VS Codeに加えて「Install for Cursor」のリンクがあり、拡張はVS Codeのフォークにも入ると書かれています。つまりCursorを開いたまま、同じエディタ内でClaude Codeを使えます。
エディタツールバーにはSparkアイコンが出ます。ただしファイルを開いているときだけです。拡張はターミナルのclaudeを自動では用意しないので、CLIが必要なら別にインストールします。
4. HooksとSkills、MCPに乗り換える
CursorのRulesやプラグインで実現していた拡張は、Claude Codeでは機構が分かれています。
保存や編集のたびにlintを走らせる
Cursorでの「編集後にlintを走らせる」運用は、Claude CodeではHooksで書きます。matcherには|区切りでツール名を並べられます。英数字と|・,だけなら完全一致のリスト、それ以外の記号を含むと正規表現として扱われます。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "npm run lint" }
]
}
]
}
}Editだけにすると、新規ファイルを作るWriteでは発火しません。docsの例もEdit|Writeです。詳細はHooks入門を読んでください。
定型作業をショートカットにする
.claude/commands/release-notes.mdのようなMarkdownファイルは、いまも動きます。カスタムコマンドはスキルに統合されています。.claude/commands/のファイルと.claude/skills/のスキルは、どちらも同名のスラッシュコマンドを作ります。新しく作るならスキルが勧められており、補助ファイルを置けるのが理由です。使い分けはSkills 5パターンにまとめています。
外部ツールに接続する
Cursorのmcp.jsonで設定していた接続は、Claude CodeではMCPとして同じプロトコルで扱えます。移行コストは低めと見込めます。Cursor側の書式はCursor MCP設定ガイド、Claude Code側はMCP実用ガイドを参照してください。
5. 無視したいファイルを守る
Cursorの.cursorignoreに当たるものは、Claude Codeにありません。ここが誤解しやすく、「.gitignoreに従う」とは言い切れません。docsの記述をツール別に並べると、次のとおりです。
除外の効き方はツールで違う
Grep
.gitignoreに従い、ignoreされたファイルを飛ばします。パスを直接渡せば、ignore済みのファイルも検索できます。Glob
既定では
.gitignoreに従わず、ignore済みのファイルも返します。従わせるには、起動前にCLAUDE_CODE_GLOB_NO_IGNORE=falseを設定します。@ファイルピッカー
respectGitignore設定で、ignore済みのファイルを候補から外せます。ツールのアクセス制御ではありません。
触らせたくないパスは、.claude/settings.jsonのpermissions.denyにReadルールで書くのが公式の経路です。Read(./.env)やRead(./secrets/**)のような形です。.claudeignoreというファイルを置いても効果はない、とも明記されています。設定キー全体はClaude Code設定完全ガイドにあります。
6. 毎日使うコマンドを覚える
最初の1〜2週間で触るコマンドです。
claude # 対話セッションを開始
claude -c # このディレクトリの直近の会話を続ける
claude -r # 一覧から選んで再開
claude -p "<query>" # 非対話で1回実行(CI向け)-cの対象は「現在のディレクトリで最も新しい会話」です。claude -pやAgent SDKで作ったセッションは、claude --continueの対象から外れます。
セッション内では、次のコマンドが使えます。
/usage # セッションのコスト・プランの上限・活動状況(/cost は別名)
/model # モデルを切り替える
/doctor # 環境の診断
/compact # 履歴を要約してコンテキストを空ける起動時のフラグも併用できます。
claude --effort high # 思考の深さを指定して起動
claude --permission-mode plan # Planモードで起動(編集前に計画を提示)
claude --model opus # モデルを指定して起動v2.1.287のclaude --helpでは、--effortの値はlow, medium, high, xhigh, maxと表示されました。スラッシュコマンドの全体像はClaude Codeスラッシュコマンド実用集を参照してください。
CIの--bareは認証とCLAUDE.mdの扱いが変わる
CI向けにclaude --bare -pを使うときは、2つの違いを先に知っておくと詰まりません。--bareはフックやスキル、MCPサーバー、自動メモリ、CLAUDE.mdの自動検出を飛ばします。つまり、せっかく移したCLAUDE.mdがCIでは読まれません。必要な文脈は--append-system-promptなどのフラグで渡します。
もう1つは認証です。--bareではOAuthとキーチェーンを読まず、Anthropic APIではANTHROPIC_API_KEYかapiKeyHelperが必要になります。--bareではサブスクリプションのログインを使えません。--bareなしなら、claude setup-tokenで作るトークンをCIで使えます。
よくあるつまずき
複数ファイルを一度に書き換えたい
Claude Codeは、既定で複数ファイルを編集できます。CursorのAgentに頼むつもりで、触るファイルを依頼文に並べると意図が伝わりやすくなります。
- 弱い指示: 「
app/login.tsxを直して」 - 強い指示: 「ログインフォームに2FAを追加して。
app/login.tsxlib/auth.tstests/login.test.tsをあわせて修正して」
Planモードなら、編集前に計画を確認できます。Shift+Tabでpermissionモードを切り替えるか、claude --permission-mode planで起動します。
Cursorのキーバインドが効かない
ターミナル上のClaude Codeは、Cursor固有のキーバインドを引き継ぎません。操作は利用するターミナルでも変わるので、起動後に?でヘルプを開いて実機で確かめるのが堅実です。
並列でセッションを動かすときの名前
複数のターミナルでセッションを動かすなら、--name(短縮形は-n)で名前を付けられます。/resumeの一覧とターミナルのタイトルに出る表示名で、claude --resume <name>で再開できます。同じ名前のセッションが同じマシンで動いていれば、Claude Codeが別の名前の変形に置き換えます。
claude -n refactor # ターミナル A
claude -n tests # ターミナル BCursorを残す / 完全移行する判断基準
| シナリオ | 推奨 |
|---|---|
| 個人開発、エディタTab補完が主体 | 推奨Cursor主、Claude CodeはCI用に併用 |
| チーム開発、規約をコードで縛りたい | 推奨Claude Code主(CLAUDE.md + Skills) |
| 長時間のリファクタ / バッチ処理 | 推奨Claude Code主、エディタは結果確認 |
| ssh先 / Docker内 / リモートサーバー | 推奨Claude Code主(CLIなので動く) |
| 学習中 / 補完で学びたい | 推奨Cursor主(まずはTab補完から) |
迷うなら、1つのリポジトリで2週間ほど併用してみる選択肢があります。
まとめ
ルールとMCPは数分で移せますが、Tab補完の穴は埋まりません。補完はエディタ側に残し、Claude Codeには連続作業とCIを任せる分担が出発点になります。
料金面では、ProとMaxのどちらが合うかを使用量の上限から決める形になります。Maxは月$100(5倍)・月$200(20倍)で、判断材料はClaudeの料金プラン比較にあります。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。
- code.claude.com/docs/ja/overview
- code.claude.com/docs/ja/setup
- code.claude.com/docs/ja/memory
- code.claude.com/docs/ja/hooks
- code.claude.com/docs/en/commands
- code.claude.com/docs/en/cli-reference
- code.claude.com/docs/en/vs-code
- code.claude.com/docs/en/permissions
- code.claude.com/docs/en/tools-reference
- code.claude.com/docs/en/headless