Claude CodeとGemini Code Assist agent modeの違い — 承認と実行範囲を比較
Claude CodeとGemini Code Assistのagent modeは、どこで動き何を承認なしに実行するのか。入口、権限設定、承認を外したときの範囲、巻き戻しの限界を一次情報で比べます。
違いは「IDEかCLIか」より、承認の置き場所にある
Gemini Code Assistのagent modeは、VS CodeとIntelliJの中でGeminiに複数ステップの作業を任せる機能です。Claude Codeは、ターミナルのCLIを中心に、VS Code拡張やJetBrainsプラグインでも使えるエージェントです。つまり「IDE内かCLIか」という区別は、実はきれいに成り立ちません。
分かれ目はもう少し手前にあります。
- 入口: Gemini側はIDEのチャットにある切り替えスイッチ。Claude Codeは入口が複数あり、どれも同じ権限の仕組みに乗る
- 承認の外し方: Gemini側は「全部許可」の1段階。Claude Codeは6つの権限モードと、コマンド単位のルールで段階を刻む
- 取り消し: どちらも、エージェントが触った範囲をすべて戻せるわけではない
同じ「IDEのエージェント」でも、Cursorとの違いはClaude CodeとCursorの違い、Copilotとの違いはClaude CodeとCopilot agent modeの違いで扱っています。ここではGemini Code Assistに絞り、承認と実行範囲を軸に比べます。
Gemini Code Assist agent modeとは何か
agent modeは、VS CodeとIntelliJで使えるGemini Code Assistの機能で、Preview(正式提供前)の扱いです。通常のチャットが質問に答えるのに対し、agent modeでは複数ステップのタスクを任せられます。プロンプトはツールの一覧と一緒にGemini APIへ送られ、返ってきた応答が直接の回答か、ツール使用の要求かで流れが分かれます。
ツールを使う要求が来ると、エージェントは許可の要否を確かめます。ファイルシステムや各種リソースを変更する操作では、常に許可する設定をしていない限り、実行前にユーザーへ許可を求めます。読み取り専用の要求は、許可を求めずに実行されることがあります。許可が出ると結果がGeminiに返り、タスクが終わるまでこの循環が続きます。
複雑なタスクでは、まず大まかな計画が提示されます。計画にコメントして直し、承認してから実行に入る流れです。
この仕組み自体は、Claude Codeのdefault(Manual)モードの動きとよく似ています。違いが出るのは、承認を緩める段になってからです。
入口と実行場所の違い
| 観点 | Gemini Code Assist agent mode | Claude Code |
|---|---|---|
| 入口 | Gemini Code Assist agent modeVS CodeとIntelliJのチャット(Agentスイッチ / Agentタブ) | Claude Codeターミナル、VS Code、JetBrains、デスクトップアプリ、Web |
| 組み込みツール | Gemini Code Assist agent modeVS CodeはGemini CLIの組み込みツールをすべて利用可。IntelliJは専用の10種類 | Claude Code組み込みツールに加え、MCPで拡張 |
| 拡張 | Gemini Code Assist agent modeMCPサーバー(Gemini設定JSONなどに記述) | Claude CodeMCPサーバー |
VS Code版のagent modeは、Gemini CLIの組み込みツールを丸ごと使えます。IntelliJ版はread_file、write_file、grep、gitなど10種類のツールに限られ、シンボル解決(resolve_symbol)や参照検索(find_usages)のようにIDEの索引を使うものが含まれます。
Claude Code側は、概要ページの説明どおり、ターミナル、IDE拡張、デスクトップアプリ、ブラウザーで動く同じエージェントです。VS Code拡張でもJetBrainsでも、権限モードの考え方は共通です。IDEの中で使うかどうかより、どの権限設計で動かすかが選択の中心になります。
CLI同士の比較が目的ならClaude CodeとGemini CLIの違いが対象で、Googleの後継ツールとの比較はClaude CodeとAntigravity CLIの違いにまとめています。
承認を外したとき、どこまで自動で動くか
ここが最大の違いです。
Gemini Code Assistは、承認を外す手段が実質1つです。VS Codeでは、ユーザー設定のgeminicodeassist.agentYoloModeをtrueにして、ウィンドウを再読み込みします。IntelliJではAgentタブの設定にある「Auto-approve changes」にチェックを入れます。どちらも、以後はエージェントが許可を求めずに動きます。VS Codeのyoloモードは信頼済みワークスペースでだけ有効で、制限付きワークスペースでは設定に関係なく確認が入ります。
注意書きは強い調子です。エージェントはマシンのファイルシステムとターミナル操作、設定済みのツールすべてに触れられるため、自動承認は慎重に使うよう求めています。
Claude Codeは、この間を段階で埋めています。
| モード | 承認なしで動く範囲 | 向く場面 |
|---|---|---|
default(Manual) | 承認なしで動く範囲読み取りのみ | 向く場面一つずつ確認したい作業 |
acceptEdits | 承認なしで動く範囲読み取り、ファイル編集、mkdirやmvなど一般的なファイル操作 | 向く場面見ながらコードを直していくとき |
plan | 承認なしで動く範囲読み取り(auto利用可なら分類器が承認したコマンドも)。計画を承認するまで編集をブロック | 向く場面変更前に調べるとき |
auto | 承認なしで動く範囲全部。ただし分類器が裏で安全確認 | 向く場面長い作業 |
dontAsk | 承認なしで動く範囲事前に許可したツールのみ。それ以外は拒否 | 向く場面CIなど固定された環境 |
bypassPermissions | 承認なしで動く範囲全部 | 向く場面コンテナやVMの中だけ |
Gemini側のyoloモードに近いのはbypassPermissionsですが、Claude Codeでは、これでも自動承認されない操作が残ります。ask(確認)ルールに一致したツールや、重要なパスを対象にしたrmなどです。さらに、deny(拒否)ルールはどのモードでも効きます。
もう一点、起動時の既定が違います。Claude Code v2.1.283以降では、対話的なターミナルとVS Codeのセッションで、auto modeが標準の開始モードです。auto modeでは人間の代わりに別のモデルが行為を審査します。「毎回聞かれる」という前提でClaude Codeを想像していると、実際の開始状態とずれます。
承認の設計思想を他社も含めて並べた記事はAIコーディングエージェント 権限モデル比較にあります。
権限を細かく絞る設定の違い
承認を外す前に、そもそも何を許すかを絞る設定も異なります。
VS CodeのGemini Code Assistでは、~/.gemini/settings.jsonにcoreToolsとexcludeToolsを書きます。公式の例では次のとおりです。
{
"coreTools": ["ShellTool(ls -l)"],
"excludeTools": ["ShellTool(rm -rf)"]
}coreToolsは使えるツールの許可リスト、excludeToolsは除外リストです。両方に載ったツールは除外が優先されます。この設定はVS Code版の機能で、IntelliJ版では使えません。
Claude Codeは、設定ファイルのpermissionsにallow、ask、denyの3つのルールを書きます。公式ドキュメントの例を引くと、次のような形です。
{
"permissions": {
"allow": ["Bash(npm run *)", "Bash(git commit *)"],
"deny": ["Bash(git push *)"]
}
}評価はdeny、ask、allowの順で、最初に一致したものが結果を決めます。広いdenyルールは、より狭いallowルールがあっても優先されます。
両者の違いは、「使えるツールの一覧」を作るGemini側に対し、Claude Codeは「コマンドの書式ごとに可否と確認」を決める点です。Claude CodeにはBash(git push *)のようにコマンドの形で止める書き方があり、同じ作業の中でpushだけ確認に回す、といった設計がしやすくなります。ただし、書式に一致しない別の書き方で同じ操作を実行すると、ルールをすり抜ける場合があるとドキュメントにも注意があります。たとえばgit -C . pushは上のgit push *に一致しません。
巻き戻しの限界はどこにあるか
自動で動かすほど、「間違えたときに戻せるか」が重要になります。ここは両方に穴があります。
Gemini Code Assistのagent modeには、IDEの外にあるリソースへの変更を元に戻す手段がありません。ドキュメントは、使う場所に気をつけるよう注意しています。IDEの内側の変更についても巻き戻し機能の記載はないため、gitで差分を管理しておくのが前提になります。
Claude Codeにはチェックポイントとrewindがあり、ファイル編集は巻き戻せます。ただし、追跡されるのはClaudeの編集ツールによる変更だけです。次の変更は戻せません。
rm、mv、cpのようなBashコマンドによるファイル変更- サブエージェントが行った編集(多くの場合)
- Claude Codeの外で手動で行った変更
落とし穴
rewindで戻したつもりが、Bash経由の変更だけ残る
Claude Codeでmv old.txt new.txtのようなコマンドを自動承認していると、rewindでファイル編集を戻しても、移動や削除は戻りません。自動承認を広げるときは、作業前にgitでコミットしておくと、戻す手段が一本化できます。
Gemini側でも同じ手当てが効くのは、IDEの内側のファイルに限られます。IDEの外にあるリソースへの変更は、gitの履歴にも載らないため、コミットしておいても戻せません。
小さな実験: 権限モードを切り替えて比べる
Claude Code側で、同じ作業を承認の強さを変えて試す手順です。最初は計画だけ作らせます。
claude --permission-mode planplanモードでは、計画を承認するまで編集がブロックされます。承認後にacceptEditsへ切り替えて実行すれば、ファイル編集は聞かれず、コマンド実行は聞かれる状態で進められます。Gemini側にも、計画を承認してから実行に入る流れがあります。
Gemini側の制約: 引用元表示と利用枠
agent modeでは、通常のチャットにある引用元の表示(recitation)が使えません。コード提案が引用元と一致するのを避ける設定も、agent modeでは無効にできません。通常のチャットと挙動が違う点です。
利用枠は、ティアごとにagent modeの1日あたりの上限があります。上限に達したときは、Gemini APIキーまたはVertex AIのAPIキーをIDEの設定に入れて続けられます。
状況別の選び方
| 状況 | 向く選択 | 理由 |
|---|---|---|
| IntelliJで、編集のたびにレビューしたい | 向く選択Gemini Code Assist agent mode | 理由IDEのチャットで変更を確認しながら進められる |
| 承認を段階で刻みたい | 向く選択Claude Code | 理由モードとルールの組み合わせが細かい |
| コマンドの書式単位で止めたい | 向く選択Claude Code | 理由Bash(git push *)のような書式ルールがある |
| CIなど無人環境で動かしたい | 向く選択Claude Code | 理由dontAskと許可リストで固定できる |
まとめ
Gemini Code Assist agent modeは「IDEの中のチャットで許可を求め、全部許可に切り替える」素直な作りで、Claude Codeは「モードとルールの2層で、承認の強さを刻む」作りです。IDEかCLIかで選ぶと、Claude CodeがVS CodeやJetBrainsでも動く事実を見落とします。
選ぶときは、自分の作業で承認をどこまで外したいか、外したときに何が戻せないかを先に決めておくと、機能の違いが判断に直結します。