ターミナルで動くコーディングエージェントの中身を、行数まで全部読める日が来るとは思っていなかった。7月15日、xAIが自社の grok コマンドの実体である Grok Build をApache 2.0で丸ごとGitHubに置いた。Rustで書かれたコードは、Simon Willisonが自作のSLOCCountで数えたところ空白とコメントを除いて84万4530行あり、そのうち外部由来(vendored)は約3%だけだという(simonwillison.net)。比較として彼はOpenAIのCodex CLIを約95万行と見積もっている。「ターミナルのコーディングエージェントは、自分が思っていたよりずっと複雑だった」という彼の一言が、この公開の意味をよく表している。
「コーディングエージェント」と一括りにされがちだが、その中身はモデルへのAPI呼び出しだけではない。コンテキストの組み立て、ツール呼び出しのパースと実行、ファイル編集の差分管理、長時間タスクの継続、そしてスクロールやモーダルを備えた全画面TUIまで、地味で膨大な配管が要る。Grok Buildはこの配管がまるごと読める初めての「本番運用中」のエージェントに近い。
何が公開されたのか
リポジトリは crates/codegen/ 以下にRustのクレートとして分かれている。TUI本体が xai-grok-pager、エージェント実行時とヘッドレスの入口が xai-grok-shell、ファイル編集・検索・ターミナル実行といったツール群が xai-grok-tools、ホストのファイルシステムやバージョン管理・チェックポイントを扱うのが xai-grok-workspace、これらを束ねてバイナリ xai-grok-pager(配布名は grok)を作るのが xai-grok-pager-bin という構成になっている。
動かし方は3つ用意されている。ふだん使う全画面の対話TUI、CIやスクリプトから叩くヘッドレスモード、そしてエディタに組み込むための Agent Client Protocol(ACP) 経由の3系統だ。ACPはエディタ側とエージェント側を疎結合にする共通プロトコルで、これに対応していると特定のエディタ拡張を書かなくても複数のエディタから同じエージェントを呼べる。拡張の口も広く、MCPサーバー・スキル・プラグイン・フック・サブエージェントを差し込める。
インストールはワンライナーで済む。
curl -fsSL https://x.ai/cli/install.sh | bash
ソースからビルドするなら、ピン留めされたRustツールチェーンとprotocを入れて cargo build -p xai-grok-pager-bin --release を叩く。
実は一番おいしいのは「モデルを差し替えられる」こと
エンジニアとして手を動かす立場で見て、公開ライセンス以上に効くのは設定ファイルの作りだ。~/.grok/config.toml(Windowsは %USERPROFILE%\.grok\config.toml)でモデルを定義でき、base_url を自由に指定できる(docs.x.ai)。つまりGrokに縛られず、OpenAI互換のエンドポイントなら何にでも向けられる。
[model.local]
model = "your-model-id"
base_url = "http://localhost:8000/v1"
name = "Local model"
env_key = "LOCAL_API_KEY"
[models]
default = "local"
base_url をローカルのvLLMやその他の推論サーバーに向ければ、この磨き込まれたTUIとエージェントループを自前のモデルで走らせられる。ヘッドレスも同じ設定を共有する。
grok -p "このリポジトリのテストを実行して失敗を要約して"
grok -p "変更点をレビューして" --output-format streaming-json
grok -p "..." -m local
対話中は /model <name> でモデルを切り替えられ、grok inspect を打てば、そのディレクトリで検出された設定・指示・スキル・プラグイン・フック・MCPサーバーが一覧できる。ここが個人的にはこの公開の実利だと思う。エージェントのUXとモデルの提供元が分離されているので、「TUIとツール実行はxAIの完成度をそのまま借り、頭脳は手元やお好みのAPIに差し替える」という組み合わせが成り立つ。CLIエージェントを自前で一から作ろうとして配管の物量に挫折した経験があるなら、この84万行はそのまま参照実装になる。
「オープンソース」と言い切りにくい二つの事情
ただ、手放しで礼賛する話ではない。ライセンスはApache 2.0で利用・改変・再配布は自由だが、CONTRIBUTING上、外部からのプルリクエストや無断のパッチは受け付けない。xAIは内部モノレポからこの公開ツリーへ定期的に同期する運用で、実態としては「読めて・フォークできるが、上流には混ざれない」ソース公開に近い。バグを直しても本家には戻せず、フォークして持つしかない。
もう一つは、そもそもなぜ全公開に踏み切ったのかという背景だ。Willisonの分析によれば、Grok Buildは以前ディレクトリまるごとをGoogle Cloudへ明確な同意なしにアップロードする挙動が問題視され、xAIはその機能を無効化したうえでコードを公開した。信頼を取り戻すための動きという見立てで、実際、公開コードにはGCSアップロードの残骸がハードコードされたエラーを返す形で残っているという。透明性が「見せたくて見せた」ものなのか「見せざるを得なくなった」ものなのかで、受け取り方は変わる。
コードを覗くと、ツール実装の一部はCodexやOpenCodeといった他のエージェントから取り込まれた形跡があり、この分野の設計が急速に収束していることも見て取れる。Mermaid図をUnicodeの罫線でターミナル内に描く自前レンダラのような小技も入っていて、読み物としても面白い。完璧に開かれたわけではないが、本番級エージェントの内部が一次資料として手に入る意味は大きい。少なくとも、次に自分でエージェントを組むときの手戻りは確実に減る。
参照した一次ソース: