Claude CodeとCursorの違い — CLIとIDEのエージェントを選ぶ軸
Claude CodeとCursorの違いを、Cursor CLI(agent)とAgentの機能に絞って対比。モード・権限・非対話実行・クラウド実行・指示ファイルの差と選び方をまとめます。
Claude CodeとCursorの違いは、入口の違いから始まります。Claude Codeはターミナルで動くエージェントが出発点で、CursorはエディタのAgentが出発点です。ただしCursorにはターミナルから使えるCLI(agentコマンド)があり、CLI同士でも比べられます。
この記事は、CursorのCLIとAgentの機能を軸に、Claude Codeとの差が出る5か所を並べます。3製品の広い比較はClaude Code vs Cursor vs Codex CLIに、両方を同じリポジトリで使う手順はCursorとClaude Codeの併用ワークフローにあります。
起動と対話の入口はどこが違うか
Cursor CLIはagentコマンドで起動します。インストールはmacOS・Linux・WSLならcurl https://cursor.com/install -fsS | bash、Windows PowerShellならirm 'https://cursor.com/install?win32=true' | iexです。Claude Codeはネイティブインストーラー(curl -fsSL https://claude.ai/install.sh | bash)かHomebrewで入れます。
起動後の基本操作は、名前が違うだけで対応が取れます。
| やりたいこと | Claude Code | Cursor CLI |
|---|---|---|
| 対話セッションを始める | Claude Codeclaude | Cursor CLIagent |
| 最初のプロンプトを渡す | Claude Codeclaude "..." | Cursor CLIagent "..." |
| 直前の会話を続ける | Claude Codeclaude --continue | Cursor CLIagent --continue / agent resume |
| 過去の会話を選ぶ | Claude Codeclaude --resume | Cursor CLIagent ls / --resume |
| 非対話で実行 | Claude Codeclaude -p "..." | Cursor CLIagent -p "..." |
| 新しいworktreeで作業 | Claude Codeclaude --worktree | Cursor CLIagent --worktree |
再開・非対話・worktreeの3つは、フラグ名まで揃っています。CLIだけで使う限り、操作の乗り換えコストは小さいと言えます。
違いが出るのは、その外側です。CursorにはエディタのAgentがあり、CLIとモードや設定を共有します。Claude CodeにはVS Code・JetBrains拡張やデスクトップアプリもありますが、中身は同じエージェントを別の画面から呼ぶ形です。エディタ内のTab補完のような機能は、ターミナル発のClaude Codeにはありません。
モードと権限の考え方はどう違うか
Cursor CLIのモードは3つです。
- Agent: 全ツールを使える既定のモード
- Plan: 実装前に質問しながら方針を決めるモード(
Shift+Tab、/plan、--plan) - Ask: 読み取り専用で調べるだけのモード(
/ask、--mode=ask)
Claude Codeは「権限モード」という軸で動きます。default(読み取りのみ自動)、acceptEdits、plan、auto、dontAsk、bypassPermissionsの6種で、Shift+Tabで切り替えます。
つまりCursorのモードは「エージェントに何をさせるか」を選び、Claude Codeの権限モードは「確認なしで何まで進めてよいか」を選びます。CursorのPlanとAskに当たるのは、Claude Codeではplanモードだけです。
承認の粒度は、Cursor CLIでは設定ファイルのJSONで決めます。置き場所は~/.cursor/cli-config.json(全体)か<project>/.cursor/cli.json(プロジェクト)です。
{
"permissions": {
"allow": ["Shell(git)", "Read(src/**/*.ts)", "Mcp(datadog:*)"],
"deny": ["Shell(rm)", "Read(.env*)", "Write(**/*.key)"]
}
}トークンの形式はShell(コマンド)・Read(パス)・Write(パス)・WebFetch(ドメイン)・Mcp(サーバー:ツール)の5種で、denyがallowに優先します。Claude Code側の権限ルールとの書き方の差は、権限モード比較で製品別に並べています。
非対話実行と自動化の差はどこに出るか
どちらも-pで非対話に回せます。差が出るのは、ファイルを書き換えてよいかの扱いです。
Cursor CLIの-pは、そのままでは変更を提案するだけです。ファイルを実際に書き換えるには--force(別名--yolo)を足します。スクリプトで認証するときはCURSOR_API_KEY環境変数を使います。
# Cursor CLI: 提案だけ(ファイルは変わらない)
agent -p "Add JSDoc comments to this file"
# Cursor CLI: 実際に書き換える
agent -p --force "Add JSDoc comments to this file"Claude Codeでは、同じ判断を権限モードで行います。確認なしで進める範囲を絞りたいならdontAskと許可ツールの組み合わせ、隔離環境で全部通すならbypassPermissions(--dangerously-skip-permissionsと同じ)です。
# Claude Code: 事前に許可したツールだけで動かす
claude -p "Summarize the open TODOs" \
--permission-mode dontAsk \
--allowedTools "Read"出力形式は両者とも--output-formatでtext・json・stream-jsonを選べます。起動を軽くしたいスクリプトでは、Claude Code側に--bare(フック・スキル・MCPサーバー・CLAUDE.mdの自動読み込みを省く)があります。
指示ファイルとMCPは共有できるか
Cursorの指示は.cursor/rulesの.mdcファイルか、AGENTS.mdに書きます。.mdcはfrontmatterで「常に適用」「ファイルパターンで適用」などを切り替えます。拡張子が.mdのファイルは.cursor/rulesでは無視されます。
Claude CodeはCLAUDE.mdを読みます。AGENTS.mdだけがあるリポジトリでは、それを指示として読みます(v2.1.277以降)。CLAUDE.mdがあるときはCLAUDE.mdだけが読まれ、AGENTS.mdは読まれません。
注目したいのは、Cursor CLIがプロジェクトルートのAGENTS.mdとCLAUDE.mdも読み、.cursor/rulesと並べてルールとして適用する点です。CLAUDE.mdを整えてあるリポジトリなら、Cursor CLIでも同じ前提を渡せます。逆向きは、.mdcの細かい適用条件までは持ち込めません。両対応にするなら、共通ルールをCLAUDE.mdかAGENTS.mdに書き、.cursor/rulesは分けたい条件が出てから足す順序が無理のない進め方です。
MCPは設定を共有できます。Cursor CLIはエディタと同じmcp.jsonを使い、agent mcp list・agent mcp login・agent mcp enableなどで管理します。Claude Codeにはそれとは別の登録手順があるので、両方で同じサーバーを使うなら、Claude Code側にも登録が要ります。
クラウド実行と並列作業の違い
Cursor CLIでは、会話の途中で行頭に&を付けると、その会話をCloud Agentに送って手元を離れられます。続きはWebやモバイルのcursor.com/agentsで拾います。
Claude Codeにもクラウド実行がありますが、向きが違います。claude --cloudでタスクを新しく作るか、クラウド側のセッションを--teleportで手元のターミナルに引き寄せます。ターミナルの既存セッションをクラウドへ押し出す操作は、CLIからはできません。
| 観点 | Claude Code | Cursor CLI |
|---|---|---|
| クラウドへ送る | Claude Code--cloudで新規タスクを作る | Cursor CLI会話の途中で&を付ける |
| 手元へ戻す | Claude Code--teleport | Cursor CLIcursor.com/agents(Web・モバイル)で続ける |
| 既存の会話を送る | Claude CodeCLIからは不可 | Cursor CLI可 |
作業の並列化は、どちらもgit worktreeで分離できます。Claude Codeは<repo>/.claude/worktrees/<name>、Cursorは~/.cursor/worktrees/<repo>/<name>に作ります。リポジトリの中に作るか、ホーム配下にまとめるかが違います。
モデル選択とスキルの扱いはどう違うか
どちらも--modelでモデルを指定します。Claude Codeの--modelはsonnet・opus・haiku・fableといったエイリアスか、モデルの完全名を取ります。Cursor CLIの公式例はagent -p "..." --model "gpt-5"の形で、Cursorが対応する各社のモデルから選ぶ前提です。Claude Codeで使えるのはClaudeのモデルなので、モデルの選択肢の幅を重視するかどうかが、ここでの分かれ目になります。
スキルの呼び出しにも差があります。Cursor CLIでは、/メニューからスキルを選んでEnterを押すと、そのメッセージ1回だけに添付されます。Option+Enterで選ぶと、抜けるまで続く「カスタムモード」として動きます。Claude Codeのスキルは、モデルが必要と判断して読み込む形もあり、起動方法が単純な1対1の対応にはなりません。スキルを多用する運用では、ここで手順の差が出ます。
対話中の操作では、Cursor CLIにCtrl+Rの差分レビュー画面があり、iでその場で追加指示を出せます。@でファイルやフォルダを文脈に加え、/summarizeで文脈の空きを作ります。エディタを使わずに変更を読み直す手段が、CLIの中に用意されているということです。
サンドボックスの既定はどう違うか
Claude Codeのサンドボックスは、シェルコマンドを対象にした境界で、既定ではオフです。/sandboxで有効にします。ファイル編集ツールやMCPサーバーは、サンドボックスの外で動きます。
Cursor CLIは/sandboxか--sandbox enabled|disabledで切り替え、設定はセッションをまたいで保たれます。agent sandbox run <cmd>のように、1コマンドだけサンドボックスで試す使い方も用意されています。
隔離の実装そのものはOSやコンテナの層まで話が及ぶので、サンドボックス実装比較に任せます。ここで押さえておきたいのは、どちらも「入れれば安全」ではなく、範囲を決めて使う機能だという点です。
どちらを選ぶか
状況ごとに、決め手になる差を並べます。
入口で選ぶ
Claude Code
ターミナルとCI中心で動く人向けです。権限モードで自律度を段階的に上げられ、AGENTS.mdだけのリポジトリにも入れます。
Cursor
エディタでの編集が主で、CLIや&でのクラウド送りを補助に使う人向けです。Tab補完とAgentが同じ画面にあります。
迷うときは次の3問で切り分けられます。
- 作業の大半はエディタ内か、ターミナルか。エディタ内ならCursor、ターミナルならClaude Codeが素直です。
- スクリプトやCIに組み込むか。組み込むなら、
--forceの要否と権限モードの違いを先に決めます。 - 手元を離れて走らせたいか。走らせている途中の会話を送りたいならCursorの
&が合い、最初からクラウドで始めるならどちらでも成立します。
両方を使う場合は、指示ファイルを一本化し、MCPの登録は製品ごとに行うと割り切るのが現実的です。乗り換えを考えているなら、設定の移し方はCursorからClaude Codeへの移行ガイドが手順の形でまとめています。
比べるときにつまずきやすい点
agent -pで何も変わらない:--forceを付けていないためです。提案だけが出力されます。.cursor/rulesにルールを置いたのに効かない: ファイルが.mdだと無視されます。.mdcにします。- CLAUDE.mdとAGENTS.mdが両方あるのにAGENTS.mdが効かない: Claude Codeは既定でCLAUDE.mdだけを読みます。読み込みは設定で変えられます。
Shift+Tabの動きが違う: Cursor CLIではAgent・Plan・Askを、Claude Codeでは権限モードを回します。同じキーでも切り替わる軸が別です。
まとめ
Claude CodeとCursorの違いは、機能の有無より「どこから入るか」に表れます。CLIの操作はほぼ対応していて、差が残るのは権限の考え方、--forceの有無、クラウドへの送り方、指示ファイルの形式です。ターミナルで完結させるならClaude Code、エディタを主にしてCLIを足すならCursorという切り分けが出発点になります。