iPhone・iPad から PC 上で動く Claude Code を操作して、ハンズフリーで開発する環境をベストエフォートで整えたのでまとめます。
環境導入のきっかけ
移動中とか、布団に入ったときとかにもコーディングできるといいよなぁと思って、iPhone や iPad から PC の Claude Code を触れるように環境構築しました。これについてはネット記事がすでにいろいろあるので、割とスムーズに導入できました。
私は家で皿洗いを担当していて、普段皿洗いしているときは iPad で動画を見ています。これは皿洗い中にできることが動画視聴くらいしかないからで、この時間も実装に充てられたら最高です。手が離せない状況の中でも動かせる開発環境を作りたい!と思い、試行錯誤しました。調べた限りだとそういう記事は見つからなかったので、記録も兼ねて書きます。
できること
この記事で紹介する環境を構築すると、次のことができます。
- iPhone・iPad から、PC で動いている Claude Code を操作できる
- アクションが求められたときやタスクが完了したときに iPhone・iPad に通知を飛ばせる(待ち時間の発生を防げる)
- 「Hey Siri、承認」もしくは「Hey Siri、拒否」と話しかけることで、手を使わずに承認・拒否ができる
私が試した PC は Mac ですが、他の OS でも同様のことはできるかもしれません。
iPhone・iPad からみた Claude Code の見た目はこんな感じです。
| iPhone | iPad |
|---|---|
![]() | ![]() |
iPhone / iPad から PC 上の Claude Code を操作する
Claude Code のインストールは済んでいる前提で説明します。
次の 3 つを入れました。
| ツール名 | 役割 | インストール先 |
|---|---|---|
| Tailscale | VPN 接続 | Mac・iPhone・iPad |
| Termius | SSH クライアント | iPhone・iPad |
| tmux | セッション管理 | Mac |
Tailscale と Termius は、この記事を読んで設定しました。
tmux はセッション管理に必要なものです。SSH 接続が切れてもセッションが残るようになるので、気軽に中断・再開ができるようになりますし、iPhone でやっていた作業の続きを PC でやるといったこともできます。コマンドはこの辺を覚えておくとよさそう。
あと、Claude Code を動かす PC はスリープ状態にならないように注意が必要です。Mac の場合は caffeinate コマンドをどこかで実行しておけば、スリープ状態にならないようにできます。
イベント発生時に通知を飛ばす
常に画面を見ているわけではないので、承認が求められたときやタスクが完了したときなどに通知してほしくなります。これについては Pushover の導入でいい感じになりました。
Pushover は、curl・Python スクリプト・メール送信などのさまざまな手段で通知を飛ばせるサービスです。30 日間の無料体験期間があって、今はそれで使っていますが、ライセンスは買い切りで 5 ドルと結構安いです。他にも使い道ありそうなので、体験期間が終わっても課金して使い続けようかなと思ってます。
Claude Code に hook を設定して、iOS の Pushover アプリをセットアップすれば、次のように通知を受け取れます。

コードは全部 Claude に書かせました。成果物を一応置いておきます。
音声入力でハンズフリー承認・拒否
Claude に方針を聞いてみたところ、このようなフローで承認・拒否をハンズフリーで行えるようになりました。
- Claude Code を動かす PC でサーバーを立てる
- 承認
/approveと、拒否/denyのエンドポイントを持っている。これが叩かれたときに tmux の特定のセッションに対してキー入力を行う。承認の場合は Enter を、拒否の場合は Esc を入力する。
- 承認
- iPhone・iPad に、承認用・拒否用のショートカットをそれぞれ作る
- 音声入力(Siri)でショートカットを実行する

voice-approval という、音声承認専用 tmux セッションを作って、皿洗いのときはそこで作業すると決めて(妥協して)ショートカットを作りました。
成果物はこちら。
拒否のときに Esc を入力することになっていて、この操作は拒否ではなくキャンセル(?)です。やりとりが止まってしまうのが難点ですが、拒否が必要になった場合はそもそもハンズフリーで続けるのが難しいので、一旦はこれでいいかなと思ってます。
やろうとしたが、現状できてないこと
AI の実装が速すぎて、あるいはタスクが簡単すぎて、皿洗い中に実装が終わってしまうことがあります。なのでハンズフリーで「音声入力モードに入る → テキストを入力 → 音声入力モードを解除して送信」としたかったのですが、しっくり来る感じにはなりませんでした。
音声コントロール機能 を有効にしてあれこれ試しましたが、多分 Termius と音声コントロールの相性が良くなく、音声入力モード中なのにテキストが入らなかったり、送信ボタンを押してと頼んでも押してくれなかったりと、やりたいことはできませんでした。画面の特定の場所をタップしてくれる カスタムコマンド を作る作戦もやりましたが、テキストの修正が難しすぎて断念。
皿洗い中に何かタスクをこなしてくれるようになっただけでも一歩前進なのでヨシとします。なんかいい感じにやる方法をご存知の方がいましたら、ぜひ教えてください。

