2026-03-09

月曜日
iOSのアプリケーションを作っている。
Agentic Coding全盛期でモリモリコードを書いているのは当然として自分のユースケースだと土日はパソコンを触ることがほとんどない。触っている暇がないという方が適切かも。
なので自宅サーバーにClaude Codeをインストールして happy 経由を使うことが多い。
https://happy.engineering/

BlinkでSSHしても同様のことはできるんだけど、ターミナルの操作をしたいわけではないので個人的にはhappyを使うのが合っていた。
happy + Claude Codeで自分の困りごとをどんどんアプリケーションから解決できるようにしてる。以前この日記でも書いた Coolify にモリモリデプロイをしている。自分のユースケースに合わせてMCPも書いていてデプロイしたり、ログを確かめたりあれこれできるようになった。
https://github.com/asonas/mcp-coolify

PCの前にいると開発中の画面などの確認は用意なんだけど、happyなどで開発をしているとそうはいかない。リモートサーバーだし、開発環境ごとにポートをリッスンしてHTTPでアクセスできるようにしたいとかそういう感じになってくる。
手癖でplaywrightでスクショを撮らせてAIに判断をさせてみたりもするけど細かいUIのチェックができなかったりして困っていた。

なのでスクリーンショットを撮影してスマフォに送れるようになればいいなということでアプリケーションをつくりはじめて動くようになった。

アプリをインストールして、CLIをインストールする上のセットアップの通りでペアリングが完了したらチャンネルが作成されてCLI経由で画像がおくれるようになる。んで、そういうコマンドがあることをCLAUDE.mdに書いておくとあとは良い感じになる。
キモになる部分としてはE2E で暗号化していること。ペアリングのタイミングでCryptoKitで暗号鍵を生成している。秘密鍵はiOSから外に出ることがないので安全。
https://developer.apple.com/documentation/cryptokit/
CLI側では公開鍵を元に画像などを暗号化して送っている。リレーサーバーが存在するけどリレーするだけでそこで復号もしない(できない)
プッシュ通知にも対応しているのでClaude Codeが画像をpushするとプッシュ通知も届く。通知をタップするとアプリが開いて画像が開かれる。人間がそれを確認してClaude Codeに指示をだす。そういうループが生まれる。
画像にもチャンネルにもTTLが設定されてあって、画像をpushしても30分で消えるようになっている。画像をpullできたら複合されてローカルには残るけど一度消してTTLが過ぎていると取得はできなくなる。チャンネルも1ヶ月ぐらいなかったら揮発する。
超ニッチだなぁと思いつつも最近はこれ無しでは土日の開発はままならないという感じ。

AppStoreへの公開の準備をしているところだけど、今週か来週には公開かなぁ。インフラコストが少しあるので少し価格にのせて公開予定。
Android版も開発する予定。
名前は Iris

というのをポッドキャストで話してたんだけど、録音に失敗していたのでブログまで…。

202603 0309 日記