Phoenix.new:新しいリモート AI ランタイム
Phoenix フレームワークの作者 Chris McCord が Phoenix.new を発表した。クラウド上で動く Elixir 用コーディング agent で、作りたいものを伝えると動く Phoenix アプリを生成する。
日本語
コピー

Chris McCord です。Elixir の Phoenix フレームワークの作者です。ここ数か月、Fly.io で秘密のプロジェクトを進めてきました。そろそろお披露目する頃です。
LLM agent が Elixir でも Python や JavaScript と同じように使えたらいいのに、と思っていました。それを実現するには何が必要なのか確かめるために、昨年12月に週末の小プロジェクトとして、Elixir でコーディング agent を書くのがどれくらい難しいのか試してみました。
数週間後には、動く Phoenix アプリを出力し、ブラウザ内の完全な IDE まで動かせるようになっていました。もう週末プロジェクトで終わる話ではないと分かりました。
Twitter でフォローしていれば、このプロジェクトが進むにつれて出していたティザーを見たかもしれません。今やこれはかなり本気の取り組みです。正式に紹介する時が来ました。
Phoenix.new を紹介します。Elixir と Phoenix のために作られた、セットアップ不要で完全にオンラインのコーディング agent です。協働型リアルタイムアプリを構築する最速の方法になると私は思っています。
実際の動きを見てください:
Phoenix.new の何が面白いのか
第一に、完全にブラウザ内で動きながら、Phoenix.new はあなたと agent のそれぞれに root shell を渡します。それは一時的な仮想マシン(Fly Machine)上で動きます。おかげで私たちの agent loop は、あなたのローカルマシンを壊す心配なく、好き放題にインストールし、プログラムを実行できます。あなたが気にする必要はありません。VSCode の画面を開き、shell ボタンを押せば、もう Phoenix.new agent と同じ隔離マシン上にいます。
第二に、これは私が Phoenix のために専用に作った agent システムです。Phoenix が重視するのはリアルタイムの協働アプリで、Phoenix.new はそれが何を意味するかを理解しています。そのために、Phoenix.new は UI と agent ツールの両方に完全なブラウザを組み込んでいます。Phoenix.new agent はこのブラウザを「ヘッドレス」で使い、自分が変更したフロントエンドを確認し、アプリとやり取りします。完全なブラウザなので、agent が見るのは実際のページ内容と JavaScript の状態であり、スクリーンショットを相手に試行錯誤するのではありません。人が見ていようといまいと同じです。
root 権限がもたらすもの
Agent がソフトウェアを構築するやり方は、あなたが駆け出しだった頃と同じで、今日プロトタイプを作るときとも同じです。Docker コンテナのレイヤーを丹精込めて設計したりはしませんし、リリースサイクルも関係ありません。Agent がやりたいのは shell を開いて手を汚すことです。
完全に隔離された仮想マシンなら、Phoenix.new は思う存分手を汚せます。mix.exs にパッケージを追加したければ追加し、mix phx.server や mix test を走らせて出力を確認します。もちろんそれは問題ありません。どの Agent にもできます。しかし OS 本体に APT パッケージを入れたいとなれば、それも入れられますし、入ったことを確認できます。環境全体がその管理下にあります。
これで面倒で反復的な作業が大量に片付きます。
先週の AI Startup School の講演で、Andrej Karpathy はレストランのメニューを可視化するツールを作った話をしていました。カメラで文字のメニューを撮り、すべての料理を画像に変換するものです。コードは彼が LLM Agent と vibe coding して書いたもので、こちらはむしろ簡単で、一午後で動きました。ところがアプリを本番に出すのに丸一週間かかったそうです。
Phoenix.new なら、私はこの問題に正面から取り組みます。私たちが出力するアプリは、起動した瞬間からクラウド上で生きています。プライベートで共有可能な URL を持ち(Agent が生成したものでポートを bind しているものは検出し、phx.run 以下でプレビュー URL を割り当てます。ポート転送は組み込みです)、Github に接続でき、Fly.io のインフラのガードレールをすべて受け継ぎます。ハードウェア仮想化、WireGuard、隔離ネットワークです。
Github の gh CLI はデフォルトで入っています。だから Agent は任意のリポジトリを clone する方法も、issue を眺める方法も分かっています。内部リポジトリへのアクセスを許可すれば、あなたのチームの既存プロジェクトや依存関係と連携させることもできます。
環境を完全に掌握していることは、Agent とデプロイの間にフィードバックループを生みます。Phoenix.new はアプリを起動すると、ログを見張り、アプリをテストします。ある操作がエラーを引き起こせば、Phoenix.new はそれに気づき、修正に取りかかります。
構築の様子をリアルタイムで見る
Phoenix.new はユーザーと同じように Web アプリとやり取りします。本物のブラウザを使って。
Phoenix.new の環境にはヘッドレスの Chrome ブラウザが組み込まれていて、私たちの agent はその動かし方を知っています。あなたのアプリにフロントエンドの機能を追加するよう頼めば、コードを書き出して、コンパイルが通ること、lint が通ることを確認するだけでは終わりません。自分でアプリを起動し、UI をいじりながら、ページの内容、JavaScript の状態、サーバー側のログを確認します。
Phoenix の核にあるのは “live” なリアルタイム対話であり、シームレスな live reload を提供してくれる。Phoenix.new の UI には開発中のアプリのリアルタイムプレビューが組み込まれているので、椅子にもたれてフロントエンドが少しずつ形になっていくのを眺めていられる。開いている他の .phx.run タブもそれに合わせて更新される。まさに狂気。
vibe coding 専用というわけではない
Phoenix.new はすでに本物のフルスタックアプリを構築できる。WebSockets、Phoenix の Presence、実際のデータベースまで含めて。今、業務アプリやコラボレーションアプリで動かしているところだ。
とはいえ、どこまで任せていいかの線引きは決まっていない。shell とブラウザでできることなら、Phoenix.new にもやってほしい。しかも、その作業中にこちらが居合わせる必要はない。
たとえば $DATABASE_URL を立ち上げて agent に伝える。agent は psql で中を調べればいいと判断し、見つけた schema に沿ってアプリの提案を出す。データベースから Ecto schema を逆算できる。MySQL が好みなら、agent が MySQL クライアントを apt install して、そのまま一気に進める。
フロンティアモデルの LLM は膨大な世界知識を持ち、汎化性能が極めて高い。ElixirConfEU では壇上で vibe coding のテトリスデモをやった。Phoenix.new は一発で成功、最初の prompt だけで仕上がった。ネット上に Phoenix LiveView 版テトリスの例が山ほど転がっているわけじゃない。それでも、テトリスのコードを公開した人は大勢いるし、LiveView で何か書いた人も大勢いる。2025 年の LLM はその点と点をつなげられる。
ここで思うかもしれない。Rails アプリを直接作らせられるのか? Expo React Native アプリは? Svelte は? Go は?
できる。
うちのシステムプロンプトは今のところ Phoenix 向けに調整してあるが、気になる言語はどれも入れてある。次にどこへ向かうかはまだ模索中だが、新しい言語やフレームワークの追加は間違いなく計画の優先順位のかなり上にある。
非同期 Agent の未来
開発者のワークフローは今、大きな転換点にある。
Agent は今日すでに実務をこなす。人がいようといまいと関係ない。覚悟しておいたほうがいい。今後の開発は——少なくともよくあるケースでは——ターミナルを開いて書き換えるファイルを探すというより、CI 環境に入って Agent が四六時中働いているのを眺める、という形に近づいていく。
ローカル開発が消えることはない。ただ、反復の大半がどこで起きるかは変わる。私はもう Phoenix.new で phoenix-core 件の GitHub issue をふるいにかけ、どれを解くか選んでいる。ノートを閉じてコーヒーを淹れに行き、PR が届くのを待つ。Phoenix.new は PR の流れも理解している。もうここまで来ている。そしてこの分野はまだ始まったばかりだ。
遊び半分で始めた頃、ここまで来るとは思っていなかった。Phoenix と LiveView の道のりも似たようなものだった。あのとき何か特別なものがあって、プロジェクトはひとりでに命を持ち始めた。今こうしてこの仕事を共有し、どこへ向かうかを見られるのが楽しみだ。みんなが何を作るのかも、早く見たい。