最近は主にAntigravityでのバイブコーディングをやってて、割と一般にも使い所がありそうなものを作ったので紹介。
目的意識
バイブコーディングなんかをやっているとAIの作業待ちで長時間画面を放置する運用になりがちなのだが、それがあまりに長いとMacがスリープしてしまって動作が止まり、結果として作業がやり直しになってしまったりする。
小手先の対処としてはターミナルを開いてMac標準で用意されているcaffeinateというスリープ抑止コマンドを叩いたりするのだが、毎回余分にターミナルを開いてコマンドを打つのもまどろっこしい。
そこで、システムトレイに駐在してあらかじめ指定したアプリを起動している時はスリープを抑止するようなアプリを作ろうと思ったわけだ。
アプリ紹介
試みにTauriを使っていて、プロセスを監視してあらかじめ指定されたアプリが動いていればcaffeinateコマンドを実行してくれるというもの。


導入方法
brewでインストールするのが手っ取り早い。
brew install --cask blue1st/taps/caffei-native
学び1: homebrewでの配布は便利
Macでバイナリ作っても一般向けに配布しようとすると、年間99ドルのみかじめ料の支払いApple開発者登録をしないと起動時に警告が表示されてしまうのがユーザ体験として厳しいなーって思ってたんだけど、どうやらhomebrewでの配布+caskファイル内でxattr -crコマンドを実行させることによってユーザにそのあたりの手間をかけさせずに済むらしいことを知った。
(というか言われてみれば今使ってるツール群なんかもほとんどbrewで入れてるけど、そのツール作者が全員が開発者登録してるとは考えにくいから、そりゃそういう手段もあったわけだよなあと納得)
学び2: 言語とローカルLLMのコーディングのクオリティ
このアプリを最初はローカルLLMを使ったバイブコーディングで作ろうと思ってたんだけど、Tauriアプリということで学習データが少なそうなRustが言語なのが荷が重かったのか、速度的にも激遅だし思考ループにも陥ったりととてもまともに作業が進められずに断念。
Antigravityにバトンタッチしたら流石にそこはクラウドなだけあって制作を進めることができた。
WebページとかElectronとかであればローカルLLMでもかなり実用範囲のことができるという印象を持っていたのだが、それが言語が違うとこうも上手くいかないかとちょっと驚いた。
バイブコーティングというものへの評価って言語やジャンルでかなり格差がありそうだなーって気がした。