最近、通勤時間の電車内でスマホを使い、AIにプログラムを書かせる作業(いわゆる「バイブコーディング」)にハマっている。
作業の軸になっているのは、自宅で常時起動させているUbuntuサーバーだ。ここでCLI版の「Google Antigravity」を動かし、そこに指示を送るスタイルをとっている。
最初から快適だったわけではなく、いくつか試行錯誤があった。
スマホのSSHクライアントアプリ
最初に試したのがこの方法。一見良さそうだったが、日本語入力の挙動がおかしくなったり、入力確定のタイミングが合わなかったりと、文字入力周りのストレスが多かった。ログも見づらいし余りおすすめできず。
既存のWeb UI(OSS)
次にWebブラウザ経由で操作できるOSSのターミナルツールなどを試してみた。ただ、トークン認証の設定やセッション保持がうまく噛み合わず、導入を断念した。
Antigravity自身にWebインターフェースを作らせる
「Web経由で操作したいなら、専用の軽量Web UIを自分で用意すればいいのでは」と思い立ち、試しにAntigravity自身に「Antigravity(agyコマンド)をWebから操作するためのPythonスクリプト」を書かせてみた。
結果として、これが一発であっさり動いた。
バックエンドはFlaskで動作し、内部でsubprocessを使ってagyコマンドを呼び出すシンプルな作りだ。途中で通信切れても作業継続するし、ページ開けばすぐに指示出せるし、ログも見やすいし最高。そこから自分に合わせて機能を追加・調整してもらった。
・プロジェクト管理(作業フォルダの切り替え。必ず付与したい共通プロンプトの設定)
・ログ出力周りの最適化(ログを別ファイルに出力し、プロンプトへファイル経由で渡す仕組みなど)
欲しいと思った機能を伝えるとすぐに実装してくれるため、スマホでの作業効率が一気に向上した。
特にWebページ制作や簡単なAndroidアプリ開発などであれば、コードの記述からビルド・確認までのデバッグ作業がすべてスマホ1台で完結してしまうのには少し驚いている。
これまでは「何か欲しい機能があったら、まずGitHubなどでOSSを探してインストールしてみる」のが定番だった。しかし、ちょっとした用途のツールであれば、OSSの仕様に合わせて設定を捏ね繰り回すよりも、AIに自分の用途ぴったりなコードを書かせた方がはるかに手軽でストレスがなく、なにかすごい時代になったなぁと…
