Claude CodeとAntigravity CLIの違い — Gemini CLIの後継を軸別に比較
Antigravity CLI(agy)はGemini CLIの後継にあたるGoogleのターミナルエージェントです。Claude Codeと、設定の置き場所・承認・サブエージェント・hooks・サンドボックスを軸ごとに並べます。
Antigravity CLIは、Googleが出したターミナル用のコーディングエージェントです。コマンド名はagyで、Gemini CLIから移る人向けの移行手順がドキュメントに用意されています。Claude Codeと同じく、スキル・サブエージェント・hooks・MCPを備えた「CLI型エージェント」です。
名前の似た機能が多いぶん、違いは設定ファイルの置き場所と、承認・サンドボックスの既定動作に出ます。もう一つ見落としやすい違いは、Antigravity CLIが単体の製品ではなく、同じエージェント基盤を共有するAntigravity 2.0の一面だという点です。
Antigravity CLIはどういう位置づけの製品か
ドキュメントの説明では、Antigravity CLIはAntigravityの軽量なTUI(ターミナル上の画面)です。複数ステップの推論、複数ファイルの編集、ツール呼び出し、会話履歴といった中核機能はAntigravity 2.0と同じで、デスクトップのビジュアルエディタ版がAntigravity 2.0にあたります。
CLIと2.0は次の3点でつながっています。
- 同じエージェント基盤(shared agent harness)で動く
- 権限などの設定が両方に同期される
- 進行中の会話をCLIから2.0へ書き出して続けられる
Claude Codeも、CLIを本体としつつVS Code拡張やデスクトップアプリという別の入口を持ちます。ただし、面をまたいで設定や会話を共有する仕組みの細部は製品ごとに違います。画面を行き来する運用が前提なら、ここは比べる価値があります。
Gemini CLIの後継として何が変わったか
Claude CodeとGemini CLIの比較はGemini CLIを主題にしています。ここでは、移行ページに書かれた「変わった点」だけを拾います。Gemini CLIの利用者がagyを初めて起動すると、既存の設定が自動で検出され、移行する項目を選ぶチェックリストが出ます。
| 項目 | Gemini CLI | Antigravity CLI |
|---|---|---|
| ユーザー共通のスキル置き場 | Gemini CLI~/.gemini/skills/ | Antigravity CLI~/.gemini/antigravity-cli/skills/ |
| プロジェクトのスキル置き場 | Gemini CLI.gemini/skills/ | Antigravity CLI.agents/skills/ |
| MCPサーバーの定義 | Gemini CLI~/.gemini/settings.json内 | Antigravity CLI独立したmcp_config.json |
| リモートMCPのURLキー | Gemini CLIurlまたはhttpUrl | Antigravity CLIserverUrl |
| 拡張機能の呼び名 | Gemini CLIextensions | Antigravity CLIplugins |
プロジェクト側のスキルは、手動でフォルダを.agents/skills/へ移さないとスラッシュコマンドとして認識されません。移行ページの注意書きに明記されています。拡張機能は次のコマンドでプラグインに変換できます。
agy plugin import gemini出力例として、旧コマンドが「スキルに変換された」という行や、MCPサーバー定義がmcp_config.jsonへ移された行が示されています。つまりGemini CLIのカスタムコマンドは、移行後はスキルとして扱われます。
一方、GEMINI.mdとAGENTS.mdによる指示ファイルは変更なしで読まれます。~/.gemini/GEMINI.mdのグローバル指示も同様です。ただし移行ページには「一部のカスタムテーマや実験的な表示は未対応の場合がある」という但し書きもあります。完全な互換ではなく、部分的な互換です。
Gemini CLIからの移行コマンドはagy側のものです。Claude Codeの資産をagyに持ち込むときは、この記事の対応表を手がかりに手作業で置き換えます。
指示ファイルと設定の置き場所はどう違うか
どちらも「リポジトリ直下のMarkdown」と「ホーム直下の個人設定」の二層構成です。
| 観点 | Claude Code | Antigravity CLI |
|---|---|---|
| プロジェクト指示 | Claude CodeCLAUDE.md(AGENTS.mdも代用可) | Antigravity CLIAGENTS.mdまたはGEMINI.md、.agents/rules/*.md |
| 個人の共通指示 | Claude Code~/.claude/配下 | Antigravity CLI~/.gemini/AGENTS.md、~/.gemini/GEMINI.mdなど |
| スキル(プロジェクト) | Claude Code.claude/skills/<名前>/SKILL.md | Antigravity CLI.agents/skills/ |
| サブエージェント(プロジェクト) | Claude Code.claude/agents/ | Antigravity CLI.agents/agents/<名前>.md |
| hooksの設定 | Claude Code.claude/settings.jsonなど | Antigravity CLI.agents/hooks.json |
| MCPの設定 | Claude Code.mcp.json、claude mcp add | Antigravity CLI.agents/mcp_config.json |
Antigravity側はプロジェクトの設定が.agents/にまとまるのが特徴です。指示・スキル・サブエージェント・hooks・MCPのすべてがこの一つのフォルダ配下に置かれます。Claude Codeでは、指示はCLAUDE.md、他の設定は.claude/という二つの入口になります。
もう一つ注意したいのは、Antigravityのグローバル設定が~/.gemini/配下にあることです。Antigravity CLI固有の設定は~/.gemini/antigravity-cli/settings.jsonで、Gemini CLI時代のディレクトリ名を引き継いでいます。名前から別のツールの設定と取り違えやすい箇所です。
指示ファイルの互換性は、Claude Codeを使いながらagyも試したい場合に効きます。AGENTS.mdを共通の指示として置けば、どちらのツールからも読めます。Claude Codeのメモリ機能のドキュメントにも、CLAUDE.mdの代わりにAGENTS.mdを読めると書かれています。
モデルの選択肢はどこまで違うか
最も大きな違いはここです。Claude Codeが載せるのはClaudeモデルで、--modelにエイリアスか完全名を渡します。Antigravity CLIは、Googleのモデルを中心に複数のベンダーのモデルを選べます。
モデル選択画面に並ぶモデルは、プランによって使えるものが変わります。
| モデル | Free / Plus | Pro | Ultra | Enterprise |
|---|---|---|---|---|
| Gemini 3.8 Flash | Free / Plus可 | Pro可 | Ultra可 | Enterprise可 |
| Gemini 3.1 Pro | Free / Plus可 | Pro可 | Ultra可 | Enterprise可 |
| Claude Sonnet 5.5(thinking) | Free / Plus不可 | Pro条件付き | Ultra可 | Enterprise可 |
| Claude Opus 5.5(thinking) | Free / Plus不可 | Pro条件付き | Ultra可 | Enterprise可 |
| Claude Sonnet 4.6 / Opus 4.6(thinking) | Free / Plus可 | Pro可 | Ultra不可 | Enterprise不可 |
| GPT-OSS-120b | Free / Plus可 | Pro可 | Ultra可 | Enterprise不可 |
Proの「条件付き」は、ドキュメントの注記で「非トライアルの購読のみ」とされています。Sonnet 4.6、Opus 4.6、GPT-OSS-120bの3つは、2026年11月2日に削除されると明記されています。
つまり「Antigravity CLIでもClaudeのモデルが使える」というのは本当ですが、Claude Codeと同じ体験が得られるわけではありません。エージェントの基盤(ツールの定義、プロンプト、権限の判定)はAntigravity側のものです。Claudeモデルを選んでも、ツールの定義や権限の判定を担うのはAntigravityのエージェント基盤です。プラン別の条件の詳細はAntigravityでClaudeを使う条件の記事にまとめています。
認証も入口が異なります。agyは初回にブラウザでGoogleアカウントにサインインするか、Gemini Enterprise向けのSSOを使います。APIキーで動かす場合は、settings.jsonにmodelProviderをgeminiと設定したうえで、環境変数GEMINI_API_KEYを渡します。環境変数だけでは効きません。
# ~/.gemini/antigravity-cli/settings.json に
# {"modelProvider": "gemini"} を書いたうえで
export GEMINI_API_KEY="your-api-key"
agyこの方式ではアカウントのセッションが作られず、/logoutは何もしません。CIのようにブラウザがない環境向けの経路です。
承認の仕組みはどう違うか
どちらも、ファイルを書き換える前に人へ確認するかどうかを「モード」で切り替えます。Shift+Tabで循環させる点も共通です。
| 観点 | Claude Code | Antigravity CLI |
|---|---|---|
| 標準モード | Claude CodeManual(設定値はdefault) | Antigravity CLIdefault |
| 編集だけ自動承認 | Claude CodeacceptEdits | Antigravity CLIaccept-edits |
| 計画を先に立てる | Claude Codeplan | Antigravity CLIplan |
| 分類器が代わりに判断 | Claude Codeauto | Antigravity CLI該当する記載なし |
| すべて許可 | Claude CodebypassPermissions | Antigravity CLI--dangerously-skip-permissions |
| 起動時の指定 | Claude Code--permission-mode | Antigravity CLI--mode |
Claude Codeには、人の代わりに別のモデル(分類器)が行動を審査するautoモードがあります。Antigravity CLIのモードのページには、これに相当するモードは見当たりません。代わりに、端末コマンドの扱いは別の「権限プリセット」と許可・確認・拒否のルールで決まります。
Antigravity側のルールは、拒否が最優先で、次に確認、最後に許可という順序で評価されます。たとえばcommand(*)を確認に入れ、command(git)を許可に入れても、確認が勝って毎回プロンプトが出ます。Claude Codeでも、拒否ルールはどのモードでも効くと説明されています。
実行例として、モードを指定して起動する書き方を並べます。
# Claude Code: 計画モードで起動
claude --permission-mode plan
# Antigravity CLI: 計画モードで起動
agy --mode=planagyのplanモードでは、プロンプトの前に/planの指示が自動で付きます。エージェントは読み取り専用のツールで調べ、実行計画を提示してから編集に入ります。Claude Codeのplanモードと狙いは同じです。
サブエージェントとスキルはどう違うか
スキルは、どちらもSKILL.mdを含むフォルダで、フロントマターのdescriptionを手がかりにエージェントが必要なときだけ読み込みます。Antigravityのドキュメントでは、スキルを「オープンな標準」と呼んでおり、nameは省略するとフォルダ名になります。
サブエージェントには構造の違いがあります。
- Antigravityには組み込みの
research、browser、selfがある。browserは/browserコマンドでしか呼べない - 親エージェントは
invoke_subagentで子を起動する。子は親の会話履歴を引き継がない - 子の作業場所は、親と共有、独立したGit worktree、ディレクトリ共有から選べる
- 実行中のサブエージェントはCLIでAlt+Jを押すと覗ける
カスタムサブエージェントは、どちらもMarkdownとYAMLフロントマターで定義します。Antigravityのフロントマターには、使えるツールの一覧、モデルの階層(inherit・flash・pro)、コマンド実行ポリシー(off・auto・eager・sandbox)があります。
一つ気をつけたい点があります。ドキュメントには既知の問題として、toolsに存在しないツール名や綴り違いを書くとサブエージェントが固まる場合があると記されています。ツール名はview_fileやrun_commandのように、公式の表記と正確に合わせる必要があります。Claude Codeの.claude/agents/でも定義ファイルの形式は近いので、移植するときはツール名の読み替えが主な作業になります。
hooksで何が変わるか
hooksは、エージェントの動作の前後でスクリプトを走らせる仕組みです。どちらにもあり、考え方は同じです。
Antigravity CLIでは、.agents/hooks.json、~/.gemini/config/hooks.json、settings.jsonの中、プラグイン内のいずれかに書けます。TUI上では/hooksで読み込まれているものを確認できます。ドキュメントの一覧には、SessionStart、PreToolUse、PostToolUse、Stopのほか、PreInvocation、PostInvocationが出てきます。
Claude Codeのhooksは、PreToolUseとPostToolUseに加え、UserPromptSubmit、SubagentStart、PreCompact、SessionEndなど、さらに多くのイベントがライフサイクル図に載っています。PreToolUseは、ツール呼び出しを実行前にブロックできるイベントです。テスト自動実行やフォーマッタの例はClaude Codeのhooksでテストを自動化する記事にあります。
hooksの移植で注意したいのは、マッチャーが対象とする「ツール名」がそもそも違う点です。Antigravityの例ではrun_commandがマッチャーに使われます。Claude Code側のツール名と対応づけない限り、設定ファイルをコピーしても何も起きません。
サンドボックスとMCPはどう違うか
サンドボックスは、エージェントのシェルコマンドをOSの仕組みで隔離する機能です。
| 観点 | Claude Code | Antigravity |
|---|---|---|
| macOSの実装 | Claude CodeSeatbelt | Antigravitysandbox-execのSeatbeltプロファイル |
| Linuxの実装 | Claude Codebubblewrapとsocat | Antigravityカーネルのネームスペース |
| Windows | Claude CodeWSL2はbubblewrapが前提 | Antigravity旧来の動作(サンドボックスはプレビュー) |
| 切り替え | Claude Code/sandbox | Antigravity権限プリセット(Default / Request Review / Turbo) |
Antigravityでは、権限プリセットがDefaultだとサンドボックスが有効になり、サンドボックス内のコマンドは許可、外に出る場合は確認が入ります。Turboではサンドボックスが無効で、コマンドは制限なしで承認なしに実行されます。サンドボックス内のコマンドは既定でネットワークに出られず、許可したドメインだけが外向きの許可リストに追加されます。
Claude Codeのサンドボックスは/sandboxのパネルで状態を確認できます。Linuxではbubblewrapとsocatの導入が前提です。サンドボックス周りで詰まりやすい例は、sandboxでgit SSHだけ失敗する原因やpsqlとsshが繋がらない原因に整理しています。
MCPは、設定の書き方に差があります。Claude Codeは次のコマンドで登録します。
claude mcp add --transport http notion https://mcp.notion.com/mcpAntigravity CLIは、対話型のMCPマネージャか、mcp_config.jsonの直接編集で登録します。リモートサーバーのURLはserverUrlで書き、urlやhttpUrlは対応していません。Gemini CLI向けの設定をそのまま流用すると、この点で失敗します。
{
"mcpServers": {
"remote-indexer": {
"serverUrl": "https://mcp.example.com/sse"
}
}
}非対話実行はどう書き分けるか
CIやスクリプトから呼ぶ使い方は、どちらも-pで揃っています。
# Claude Code
claude -p "Find and fix the bug in auth.py" --allowedTools "Read,Edit,Bash"
# Antigravity CLI(JSONで結果を受け取る)
agy -p "In one sentence, what is a git rebase?" --output-format json | jqagyの--output-formatは、テキスト・json・stream-json(改行区切りのJSONイベント)の3種類です。jsonは完了時に1つのJSONオブジェクトを出力し、--json-schemaを併用するとstructured_outputが付きます。別名として--printと--promptも使えます。Claude Codeの-pは、--bareを付けると、hooks・スキル・サブエージェント・MCP・CLAUDE.mdなどの自動探索を飛ばして起動を速くできます。
どう使い分けるか
表で見たとおり、機能の並びはかなり似ています。判断の軸は機能の有無より、次の4点です。
- 使いたいモデルがClaudeに限られるか。Claudeだけで足りるなら、Claude Codeで完結する
- Gemini CLIから設定を持ち込むか。移行コマンドと自動検出があるのはagy側
- 既にGoogleのAIプランを契約しているか。agyではプランごとに選べるモデルが決まり、複数のモデルを切り替えて使う形になる
- 承認を分類器に任せたいか。
autoモードに相当する記載があるのはClaude Code側
両方を併用するなら、AGENTS.mdを共通の指示ファイルに置き、スキルとサブエージェントのフォルダは別々に持つのが現実的です。同じSKILL.mdの形式でも、置き場所が.claude/skills/と.agents/skills/で異なるためです。
まとめ
Antigravity CLIとClaude Codeは、スキル・サブエージェント・hooks・MCP・サンドボックスという部品を同じように持ちます。違いは部品の有無ではなく、設定が.agents/に集まる構成、ホームの~/.gemini/という置き場所、複数ベンダーのモデル選択、autoモードのような承認の仕組みに出ます。
Gemini CLIからの移行では、スキルのフォルダ移動とMCPのserverUrlへの書き換えが手作業で残ります。Claude Codeとの併用では、AGENTS.mdを共通にしつつ、hooksのツール名とスキルの置き場所を読み替える作業が主になります。