章の構成(ツリー構造)

第7章: AI-CLI入門(ターミナルにおける自律型エージェントの夜明け)
├── 7.1 エディタを飛び出すAI:なぜAI-CLIが必要なのか
│   ├── 7.1.1 チャットUIの限界:コンテキストの断絶と集中力の低下
│   ├── 7.1.2 ターミナルという「現場」:実行と修正のリアルタイムな循環
│   └── 7.1.3 ペアプログラマーから「自律型エージェント」への進化
├── 7.2 現代を牽引する代表的なAI-CLIツールと基盤モデル
│   ├── 7.2.1 OpenAI Codex:復活を果たしたCLIエージェントの覇権
│   ├── 7.2.2 OpenCode (opencode.ai):15万スターを誇るOSSの雄とGoの爆速TUI
│   ├── 7.2.3 Claude Code:圧倒的推論力による堅牢な自律リファクタリング
│   └── 7.2.4 Antigravity CLI:Gemini CLIの後継となるGoogleの本命エージェント
├── 7.3 実装の第一歩:インストールと次世代の初期設定
│   ├── 7.3.1 単一バイナリの導入:公式インストーラとNixの2通り
│   ├── 7.3.2 初回起動時の自動認証:ブラウザひとつでログイン完了
│   └── 7.3.3 プロジェクトの文脈共有:コンテキストファイル(AGENTS.md)の設定
├── 7.4 AI-CLIの破壊的な活用場面とワークフロー
│   ├── 7.4.1 プランニングと実装の分離(Plan & Buildモードの実践)
│   ├── 7.4.2 エラーの自動検知と自律的解決:ログ解析からテスト再実行まで
│   └── 7.4.3 インフラストラクチャの自然言語操作:難解なコマンドの抽象化
└── 7.5 まとめ:人間とAIの新たな分業(創造的設計への回帰)

第7章: AI-CLI入門(ターミナルにおける自律型エージェントの夜明け)

7.1 エディタを飛び出すAI:なぜAI-CLIが必要なのか

第6章までに、機械学習の数学的原理からPythonでの実装、そしてGit・Neovim・Nix・uv・pnpmといった「現代エンジニアの標準」開発環境の整備までを一通り学んできた。特に前章で構築したNix(home-manager)による宣言的で再現性のある環境は、本章で導入するAI-CLIエージェントの土台としてそのまま活用できる。

しかし、現代のソフトウェアエンジニアがLLMの圧倒的な知能の恩恵を受ける場所は、もはやブラウザのタブの中や、コードエディタ(IDE)の右端のパネルだけにとどまらない。開発者が日常的に最も多くの時間を過ごし、システムの心臓部と直接対話する場所、すなわち**ターミナル(コマンドライン)**にAIを直接統合する「AI-CLI(Command Line Interface)」ツールが、現在の開発体験を根本から、そして劇的に変革している。

7.1.1 チャットUIの限界:コンテキストの断絶と集中力の低下

ChatGPTやClaudeといったブラウザベースのチャットUIは、確かに革新的であった。しかし、実際のプログラミング業務においては、無視できない摩擦(フリクション)が存在する。

コードを実行してエラーが出たとする。開発者はブラウザを開き、エラーログをターミナルからコピーして貼り付け、「このエラーの原因は何ですか?」と尋ねる。AIが修正案を出せば、今度はそれをエディタにコピーして貼り付け、再びターミナルで実行する。 この「ターミナル → ブラウザ → エディタ → ターミナル」という反復横跳びは、開発環境の文脈(コンテキスト)の深刻な断絶を引き起こす。人間はウィンドウを切り替えるたびに集中力を削がれ、AIもまたプロジェクト全体のファイル構造やリアルタイムの実行環境を把握できないまま「推測」で回答を出さざるを得ない。

ブラウザ UI (従来)コピペの往復・文脈の断絶vsAI-CLI (シームレス)$ agy -p “fix error”ターミナル内で完結
7.1.2 ターミナルという「現場」:実行と修正のリアルタイムな循環

このフリクションを完全に排除するのがAI-CLIの思想である。

AI-CLIは、開発環境の「現場」であるターミナルに常駐する。そのため、AIは手動でコピペをしなくても、現在のディレクトリ構造を自ら読み取り、Gitの差分を把握し、直前に実行して失敗したテストのログをリアルタイムで解析することができる。AIの修正案は、そのままローカルのファイルに直接書き込まれ(あるいは書き込み許可を求められ)、即座に再実行のループへと回される。

7.1.3 ペアプログラマーから「自律型エージェント」への進化

従来のAIアシスタントが、人間の横で助言をするだけの「相談役(ペアプログラマー)」であったとすれば、現代のAI-CLIは、ターミナル内で自ら道具を使い、共に作業を行う**「自律型エージェント」**へと進化を遂げている。

彼らは単にコードを書くだけではない。必要に応じて自ら grepfind を実行してコードベースを検索し、テストコードを書き、それを実行してパスするまでエラー修正を繰り返し、最終的にコミットメッセージを作成してGitにコミットする。人間の役割は、コードを打ち込むこと(コーディング)から、AIエージェントの行動を監視し、方向性を指示する「ディレクション」へと急速に移行しつつあるのだ。

7.2 現代を牽引する代表的なAI-CLIツールと基盤モデル

ターミナルという「現場」で稼働する自律型エージェントの世界は、現在凄まじいスピードで進化している。ここでは、現代の開発エコシステムを牽引する代表的なツールとその裏側で動く基盤モデルを紹介する。

7.2.1 OpenAI Codex:復活を果たしたCLIエージェントの覇権

コーディングに特化したAIモデルといえば、OpenAIの**「Codex」**である。一時期、表舞台から名前が消え「終了した」と誤解されることもあったが、それは事実ではない。Codexは独立した基盤モデルとして現在も驚異的な進化を続けており、APIを通じて数多くのAI-CLIツールの「頭脳(バックエンド)」として稼働している。ターミナルの複雑なコマンド体系や、シェルスクリプトの難解な構文を正確に理解し、エージェントスタックの核として圧倒的なシェアと信頼性を誇っている。

7.2.2 OpenCode (opencode.ai):15万スターを誇るOSSの雄とGoの爆速TUI

現在、オープンソース(OSS)のエージェントとして世界中で最も勢いがあるのが**「OpenCode」**である。GitHubで15万以上のスターを獲得し、世界中の熱狂的なコミュニティによって日々アップデートされている。

OpenCodeの最大の特徴は、Go言語で記述されたことによる「高速な動作」と、ターミナル上でリッチな操作画面を提供する「TUI(Terminal User Interface)」である。さらに、LSP(Language Server Protocol)と深く統合されているため、単なる文字列の推測ではなく、コードの「型情報」や「依存関係」を正確に理解した上で高度な編集を行う。 また、特定のベンダー(企業)にロックインされない設計思想を持っており、後述するGeminiやClaude、あるいはローカルPC上で動かすOllamaなどを、コマンド一つで自由自在に切り替えてペアプログラミングができる柔軟性がエンジニアから高く評価されている。

7.2.3 Claude Code:圧倒的推論力による堅牢な自律リファクタリング

Anthropic社が提供する公式CLIである**「Claude Code」**は、その圧倒的な「推論力」を武器にしている。 数万行に及ぶ巨大なコードベース(レポジトリ)において、「データベースの接続ライブラリをAからBに移行して」と大雑把な指示を出すだけで、Claude Codeは自律的にファイルを検索し、依存関係を読み解き、数十のファイルを一斉に書き換える。さらに、書き換えた後にテストを実行し、エラーが出ればその原因を自分で分析して再修正するという「堅牢な自律性」において、他を寄せ付けない実力を持っている。複雑なリファクタリング作業において、最も信頼できるエージェントである。

7.2.4 Antigravity CLI:Gemini CLIの後継となるGoogleの本命エージェント

2026年、Googleは開発者向けAIツール群を「Antigravity」というブランドへ統合する方針を発表し、それまで無料枠の広さで人気を集めていたGemini CLIを2026年6月18日をもって個人利用向けの提供を終了させた(エンタープライズ向けのGemini Code Assistライセンス+APIキー認証のユーザーは引き続き利用可能)。その後継として位置づけられているのが、Go言語でゼロから書き直された**「Antigravity CLI」(コマンド名:agy)**である。

Antigravity CLIは単なる後継ツールにとどまらない。デスクトップ版の統合開発環境「Antigravity 2.0」と全く同じ「エージェント基盤(agent harness)」を共有しており、マルチステップの推論、複数ファイルにまたがる同時編集、ツール呼び出し、会話履歴の保持といった中核機能が、IDEとターミナルの両方で全く同じ品質で提供される。Gemini CLI時代から使われてきたAgent Skills・Hooks・Subagents・Extensionsといった拡張の仕組みも、「Antigravityプラグイン」として引き続きサポートされている。

Node.js製だったGemini CLIとは異なり、Antigravity CLIは単一のコンパイル済みGoバイナリとして配布される。そのため起動が非常に高速であり、複数のサブエージェントをバックグラウンドで並列に走らせても対話中のセッションをブロックしない。ただし無料枠はGemini CLI時代の1日1,000リクエストから大幅に縮小され、1日20リクエスト程度になっている点には注意が必要で、本格的に使い込むには有料プランへの移行が現実的な選択肢となる。

7.3 実装の第一歩:インストールと次世代の初期設定

これほど強力なツール群だが、その導入は拍子抜けするほど簡単である。かつてのように環境変数をいじり回す必要はない。ここでは、Antigravity CLIを例に、モダンなツールの導入手順を解説する。

7.3.1 単一バイナリの導入:公式インストーラとNixの2通り

Antigravity CLIはNode.jsやPythonのランタイムを必要としない単一のGoバイナリであるため、導入方法は大きく2通りある。

もっとも手軽なのは、公式が提供するインストールスクリプトを実行する方法である。

# macOS / Linux
curl -fsSL https://antigravity.google/cli/install.sh | bash

# Windows (PowerShell)
irm https://antigravity.google/cli/install.ps1 | iex

これによりagyという名前の実行ファイルが~/.local/bin(Windowsでは%LOCALAPPDATA%\Antigravity\)に配置される。

もう1つは、前章(第6章)で構築したhome-manager環境を使う方法である。Antigravity CLIはすでにnixpkgsにantigravity-cliとして登録されているため、6.4.3節のflake.nixhome.packagesに1行追加するだけで、Pythonやpnpmと全く同じ流儀で宣言的にインストールできる。

home.packages = [
  pkgs.python311
  pkgs.nodejs
  pkgs.nodePackages.pnpm
  pkgs.antigravity-cli  # 追加
];

追加後はhome-manager switch --flake .#your-usernameを再実行するだけでよい。公式インストーラのようにシェルのPATHをスクリプトが勝手に書き換えることもなく、前章で作った「恒久的な個人環境」の一部として、他のツールと全く同じようにバージョン管理・再現ができる点がNix経由の最大の利点である。

7.3.2 初回起動時の自動認証:ブラウザひとつでログイン完了

インストールが完了したら、ターミナルでagyと入力するだけでよい。

agy

初回起動時、サインインしていない状態であることが表示され、認証方法の選択を求められる。「Google OAuth」を選ぶと自動的にブラウザが立ち上がり、Googleアカウントでのログイン画面が表示される。「許可」を押すだけで、認証情報がローカル環境にセキュアに保存される。かつてのAPIキーを.bashrcなどに手打ちで書き込む方式と比べ、数秒の操作で安全にセットアップが完了する。ログアウトしたい場合は、対話セッション内で/logoutと入力すればよい。

過去 (複雑・リスク)APIキーをコピペ.envファイルを編集環境変数の読み込み×現在 (シンプル・安全)$ agy許可 (Authorize)
7.3.3 プロジェクトの文脈共有:コンテキストファイル(AGENTS.md)の設定

AI-CLIをさらに賢く使うための秘訣が「コンテキストファイル(文脈の共有)」である。 プロジェクトのルートディレクトリに、複数のAIコーディングエージェントの共通規格として普及し始めている**AGENTS.md**を置き、「このプロジェクトはTypeScriptとNext.jsを使っている」「変数の命名規則はキャメルケースにする」といったルールを書いておく。Antigravity CLIは起動時にこれを自動的に読み込み、チームの規約に完全に沿ったコードを最初から出力してくれるようになる(旧来のGEMINI.mdも後方互換として引き続き読み込まれるが、記述が競合した場合はGEMINI.mdが優先される)。

7.4 AI-CLIの破壊的な活用場面とワークフロー

導入が完了したAI-CLIは、実際の開発現場でどのように使われるのか。その破壊的なワークフローの具体例をいくつか紹介する。

7.4.1 プランニングと実装の分離(Plan & Buildモードの実践)

OpenCodeなどの高度なツールでは、作業のフェーズを明確に分けることができる。 いきなりコードを書かせるのではなく、まずは「Planモード(計画モード)」で「ユーザー認証機能を実装したいが、最適なディレクトリ構成を考えて」と相談する。AIがシステム設計図や変更予定のファイル一覧を出力し、人間がそれをレビューする。 問題がなければ、「Buildモード(構築モード)」に切り替え、「さっきの計画通りに実装を実行して」と指示を出す。これにより、AIの暴走を防ぎつつ、堅牢なアーキテクチャを構築できる。

7.4.2 エラーの自動検知と自律的解決:ログ解析からテスト再実行まで

プログラムを実行し、ターミナルが真っ赤なエラーログで埋め尽くされたとする。 ここでブラウザにコピペするのではなく、そのままターミナルで以下のように打つ。

agy -p "直前のエラーログを解析して、原因となっているファイルを特定し修正して。その後、npm run test を実行して直ったか確認して"

AI-CLIはターミナルの履歴からエラーを読み取り、コードを修正し、テストを実行し、「修正が完了し、テストもパスしました」と報告してくる。人間はただ結果を確認するだけである。

エラー発生ログ解析コード修正テスト検証解決!自律型エージェントによる修正ループ
7.4.3 インフラストラクチャの自然言語操作:難解なコマンドの抽象化

プログラマーにとって、インフラ操作やネットワークのコマンド(lsof, chmod, awk など)は、頻繁に使うわけではないため記憶から抜け落ちやすい。

「ポート3000が使用中でサーバーが立ち上がらない」というよくある状況で、Google検索をしてコマンドを探す必要はない。AI-CLIに向かって**「ポート3000を専有しているプロセスを特定して、安全に終了させて」**と日本語で打ち込めばよい。AIが適切なUNIXコマンドを組み立て、実行の許可を求めてくる。難解なシェル操作が、自然言語によって完全に抽象化されるのである。

7.5 まとめ:人間とAIの新たな分業(創造的設計への回帰)

第7章では、AIがエディタという枠を飛び出し、ターミナルという現場で自律的に稼働する「AI-CLI」の世界を解説した。

Codexの進化、OpenCodeの高速なTUI、Claude Codeの推論力、そしてGemini CLIから世代交代したAntigravity CLIの単一バイナリによる高速起動。これらは単なる「便利なツール」ではない。ソフトウェア開発における「人間と機械の分業の境界線」を根本から引き直すパラダイムシフトである。

かつて、エンジニアの仕事の大部分は「仕様をプログラミング言語という文法に翻訳し、エラーを潰すこと(タイピングとデバッグ)」であった。しかしAI-CLIの登場により、その泥臭い作業はAIエージェントに任せることができるようになった。

これからのエンジニアに求められるのは、構文を暗記することではない。AIという強力な部下に対し、「何を作るべきか」「どのようなアーキテクチャが美しいか」を的確に言語化し、指示を与える能力である。退屈なタイピング作業を手放すことで、人間は本来の役割である「創造的な問題解決」と「システムの設計」へと回帰していく。ターミナルに統合されたAIは、その新しい開発スタイルへの最も強力な入り口なのである。


7.6 演習問題(実践編:実際にAI-CLIを動かしてみよう)

以下はすべて、実際に手元のターミナルでAI-CLIツールをインストールし、動かして確認する問題である。使用ツールは本文で紹介されたAntigravity CLI・Claude Code・OpenCodeなど、自分が利用できるものを1つ選んでよい(以下の例ではAntigravity CLIを用いる)。

問1. Antigravity CLIを実際にインストールし、動作確認する。

以下のいずれかの方法でAntigravity CLIをインストールし、バージョン確認コマンドが正しく応答することを確認せよ。

# 方法A: 公式インストーラ
curl -fsSL https://antigravity.google/cli/install.sh | bash
agy --version

# 方法B: 前章のhome-manager環境に追加する場合
# flake.nixのhome.packagesに pkgs.antigravity-cli を追加し、
# home-manager switch --flake .#your-username を再実行
解答(確認ポイント)

agy --versionを実行してエラーなくバージョン番号が表示されれば、インストールとPATHの設定が正しく完了している。command not foundと表示される場合、公式インストーラ経由なら~/.local/binが、home-manager経由ならNix storeへのシンボリックリンクがシェルのPATHに通っていない可能性が高いので、echo $PATHで確認するとよい。前章の演習でhome-manager環境をすでに構築済みであれば、方法Bの方が構成管理上は一貫性がある。

問2. 初回起動でログインし、実際に1つ質問を投げてみる。

agyを実行し、表示される案内に従って「Google OAuth」でログインした上で、以下のようにカレントディレクトリのファイル一覧について質問してみよ。

agy -p "このディレクトリにあるファイルの一覧と、それぞれの役割を簡単に教えて"
解答(確認ポイント)

ブラウザが自動的に立ち上がり認証画面が表示されれば、7.3.2節で説明したOAuthフローが正しく動作している。質問を投げると、AI-CLIが自らディレクトリを読み取り(ユーザーが手動でファイル内容をコピペしなくても)、ファイルごとの役割について回答が返ってくることを確認せよ。

問3. わざとバグを仕込んだコードをAI-CLIに直させる。

以下のような、末尾のコロンが抜けた(構文エラーの)Pythonファイル buggy.py を作成せよ。

def sum_to(n)
    total = 0
    for i in range(1, n + 1):
        total += i
    return total

print(sum_to(10))

python3 buggy.py を実行してエラーになることを確認した上で、AI-CLIに以下のように指示し、自動修正させよ。

agy -p "buggy.pyを実行するとエラーになる。原因を特定して修正し、正しく実行できることを確認して"
解答(確認ポイント)

AI-CLIはdef sum_to(n)の末尾にコロン:が抜けていることを特定し、ファイルを修正した上でpython3 buggy.pyを再実行して55(1から10までの合計)が出力されることまで自律的に確認してくれるはずである。これが7.4.2節で説明した「ログ解析→コード修正→テスト検証」のループを自分の目で確認する体験となる。

問4(応用). コンテキストファイルを用意し、規約が実際に反映されるか確認する。

プロジェクトのルートに AGENTS.md を作成し、以下のような規約を書け。

# コーディング規約
- 変数名はすべてスネークケース(snake_case)にすること
- 関数には必ず型ヒントをつけること

その上でAI-CLIに「合計を計算する新しい関数を書いて」と指示し、生成されたコードが規約通りになっているか確認せよ。

解答(確認ポイント)

コンテキストファイルを置く前に同じ指示を出した場合と比較すると効果がわかりやすい。規約ファイルがある状態では、生成される関数の変数名がスネークケースになっており、かつ引数・戻り値に型ヒント(例:def calc_total(numbers: list[int]) -> int:)が付与されているはずである。もし反映されていない場合、AGENTS.mdの配置場所(プロジェクトルートか)や、同じディレクトリに矛盾するGEMINI.mdが残っていないかを確認すること。