はじめに
こんにちは。
業務改善エンジニアのこめまるです。
今回は、iPhoneからCodex CLIを使ってみた話をまとめます。
CLIというと、どうしても
- PCで使うもの
- キーボード前提
- スマホから触るのはつらそう
という印象があります。
実際、それはかなりその通りです。
ただ一方で、状況によっては
- ちょっと確認したい
- 軽い指示だけ出したい
- 実行状況やログを見たい
- 外出先で最低限の操作だけしたい
くらいであれば、iPhoneからでも意外と触れるという感触がありました。
今回は、単に「触れた」という話だけではなく、
Tailscale + Termius を使って、iPhoneから手元PC上のCodex CLI環境に入るところまで含めてまとめます。
この記事はこんな人におすすめ
- Codex CLIに興味がある方
- 外出先から最低限だけCLI環境に入りたい方
- TailscaleやTermiusを使った安全寄りの接続方法を知りたい方
- 「スマホでCLIって実際どうなの?」が気になっている方
もちろん、結論から言うと本格作業はPCのほうが圧倒的に快適です。
ただ、それでも「これはこれで使い道があるな」と思ったので、構成・手順・使ってみた感想を順番に書いていきます。
先に結論
最初に結論を書くと、iPhoneからCodex CLIを使うこと自体は十分可能です。
今回の構成では、
- PC側にCodex CLIの実行環境を用意する
- TailscaleでiPhoneとPCを同じプライベートネットワークに入れる
- TermiusでPCにSSH接続する
- 接続先でCodex CLIを使う
という流れにしました。
このやり方なら、外部公開を前提にしなくても、比較的安全寄りに外から触れます。
ただし、向いている用途はかなりはっきりしています。
向いている用途
- 状態確認
- ログ確認
- 単発の短い指示
- 軽い再実行
- 外出先での最低限の対応
あまり向いていない用途
- 長文の指示
- 本格的な実装
- 多ファイル編集
- 差分レビュー
- 試行錯誤しながらの開発
つまり、
「iPhoneでCodex CLIをメイン利用する」のは厳しいけれど、
「補助的に使う」のは十分アリ
というのが率直な感想です。
今回の構成
今回の全体像はこんな感じです。
[iPhone]
|- Tailscale
`- Termius
|
| SSH
|
[自宅PC / 作業PC]
|- Tailscale
|- SSHサーバー
`- Codex CLI実行環境
ポイントは、iPhone上でCodex CLIをネイティブ実行するわけではないことです。
実際にCodex CLIが動いているのはPC側で、
iPhoneは Tailscale経由でPCに到達し、TermiusでSSH接続して操作する端末 になります。
この考え方にすると、iPhoneからでも
- コマンドを打つ
- ログを見る
- 実行状況を確認する
- ちょっとした指示を出す
といったことができます。
なぜTailscaleを使ったのか
iPhoneからPCに入るだけなら、他にも方法はあります。
ただ、今回は Tailscale を使いました。
理由はシンプルで、以下が大きかったです。
- ポート開放したくない
- 自宅ルーター設定をあまり触りたくない
- 公開範囲を絞りたい
- iPhoneとPCを同じ閉じたネットワークに置きたい
Tailscaleを使うと、iPhoneとPCが同じ仮想ネットワーク上に乗るので、
外出先からでも同じLANにいるような感覚で接続できます。
CLI用途だと「まず安全に接続できること」がかなり大事なので、
この構成は相性がよかったです。
なぜTermiusを使ったのか
接続先に入る端末側アプリとしては、今回は Termius を使いました。
理由としては、
- iPhoneでSSH接続しやすい
- 接続先の管理がしやすい
- ホストごとの設定を持ちやすい
- スマホでも比較的扱いやすい
あたりが大きいです。
CLIをiPhoneで触る時点で快適性には限界がありますが、
その中でも「接続しやすさ」「ホストの再利用しやすさ」はかなり大事でした。
事前に用意したもの
今回の構成で事前に用意したものは以下です。
事前に用意したもの
- Codex CLIを使えるPC
- そのPCでSSH接続できる状態
- iPhone
- iPhone側のTailscaleアプリ
- PC側のTailscale
- iPhone側のTermiusアプリ
- PCとiPhoneで同じTailscaleアカウント、または同じTailnetに参加していること
ここで一番大事なのは、PC側でSSH接続を受けられる状態にしておくことです。
Tailscaleだけ入れても、SSH先がなければTermiusからは入れません。
手順1:PC側でCodex CLI環境を使えるようにしておく
まずはPC側です。
これは当たり前ですが、iPhoneから触る前に、PC上でCodex CLIが普通に使える状態 にしておく必要があります。
最低限、以下は確認しておくと安心です。
- PC上でターミナルからCodex CLIが起動できる
- 作業対象のフォルダに入れる
- 必要な認証や設定が済んでいる
- 外から入っても困らないように、作業場所が整理されている
たとえば、普段使う作業フォルダにすぐ移動できるようにしておくと、
iPhoneから入ったときの操作がかなり楽です。
スマホから触る前提なら、
- よく使うディレクトリ
- よく使うコマンド
- 起動手順
をできるだけ簡単にしておくとかなり楽です。
手順2:PC側でSSH接続できるようにする
次に、PC側でSSH接続を受けられる状態にします。
ここは環境によって少し違いますが、考え方としてはシンプルです。
- PC側でSSHサーバーを有効にする
- 同一PC上でローカル接続確認する
- Tailscale経由で到達できるIPを確認する
たとえばWindowsなら、OpenSSH Serverを有効にしておく構成が分かりやすいです。
確認しておきたいポイントは以下です。
- SSHサービスが起動しているか
- 接続に使うユーザー名が分かっているか
- パスワードまたは鍵認証の準備ができているか
- ローカルネットワーク上でSSHできるか
ここを飛ばしてiPhone側を触り始めると、切り分けがかなり面倒になります。
まずは PC自身や同一ネットワーク上の別端末からSSH接続できること を確認してから、
iPhone + Tailscale 側に進んだほうが楽です。
手順3:PCにTailscaleを入れる
次に、PC側にTailscaleを入れます。
やることはシンプルで、
- Tailscaleをインストールする
- ログインする
- Tailnetに参加させる
- Tailscale上のIPまたはマシン名を確認する
という流れです。
接続後、管理画面やクライアント上で、PCに対して
- Tailscale IP
- マシン名
が割り当てられているはずです。
あとでTermiusから接続するときに使うので、ここは控えておきます。
たとえば、イメージとしては
-
100.x.x.xのようなTailscale IP -
my-pc-nameのようなマシン名
を使う感じです。
個人的には、最初はIPでつないで確認し、そのあと必要なら名前運用にする ほうが分かりやすいと思いました。
手順4:iPhoneにTailscaleを入れる
次に、iPhone側にもTailscaleを入れます。
やることはPC側とほぼ同じで、
- App StoreからTailscaleを入れる
- 同じTailnetに参加する
- VPNを有効にする
- PCが見えることを確認する
という流れです。
ここで大事なのは、iPhoneとPCが同じTailnetに入っていることです。
同じTailnetに入ったら、Tailscaleアプリ上でPCが見えるかを確認します。
この時点で
- iPhoneからPCのTailscale IPが見える
- 同じネットワーク上にいることが確認できる
状態になれば、かなり前進です。
手順5:iPhoneにTermiusを入れる
次に、iPhone側に Termius を入れます。
TermiusはSSHクライアントとして使います。
今回の用途では、iPhoneからPCへ入るための入口です。
入れたら、新しいホストを追加していきます。
手順6:Termiusに接続先を登録する
ここが実際の接続設定です。
Termiusで新しいホストを作るときは、たとえば以下の情報を入れます。
Termiusに登録する主な情報
- Address:PCのTailscale IP または マシン名
- Username:PC側のユーザー名
- Port:通常は 22
- Password または SSH Key:接続方法に応じて設定
たとえば考え方としては、
- Address:
100.xxx.xxx.xxx - Username:Windowsや接続先OSのユーザー名
- Port:
22
のような感じです。
最初はシンプルに Password認証で疎通確認 して、
安定して使うなら 鍵認証に寄せる のが扱いやすいと思いました。
スマホから毎回長いパスワードを打つのはかなりしんどいので、
継続利用するなら鍵認証のほうがだいぶ楽です。
手順7:iPhoneから実際にSSH接続する
ここまでできたら、いよいよ接続です。
流れとしてはこんな感じです。
- iPhoneでTailscaleを有効にする
- Termiusを開く
- 登録したホストを選ぶ
- SSH接続する
- 接続先PCのシェルに入る
ここで無事入れたら、あとはその接続先でいつも通り操作できます。
たとえば、
- 作業ディレクトリへ移動する
- Codex CLIを起動する
- ログを見る
- 軽い指示を出す
といったことができます。
手順8:接続先でCodex CLIを使う
実際に接続できたら、接続先PCでCodex CLIを使います。
流れとしてはかなり普通で、
- 作業ディレクトリへ移動する
- 必要に応じて環境を有効化する
- Codex CLIを起動する
- 軽い確認や操作を行う
という形です。
このあたりはPCで使うときと同じですが、iPhoneからだと入力コストが高いので、
- よく使うコマンドを短くしておく
- エイリアスを使う
- 作業場所を固定する
あたりをやっておくと、かなり楽になります。
実際にやってみて良かったところ
実際にやってみて、よかったのはこのあたりです。
1. 外出先でも最低限の確認ができる
たとえば、
- いま処理が動いているか
- ログがどうなっているか
- 追加で1回だけ実行したい
- 軽い確認だけしたい
といった用途では、かなり便利でした。
わざわざPCを開かなくても、スマホから最低限入れるのはやはり強いです。
2. 接続の考え方がシンプル
Tailscale経由でつなぎ、TermiusでSSHする、という構成はかなり分かりやすいです。
- 接続はTailscale
- ターミナル操作はTermius
- 実行環境はPC
と役割が分かれているので、トラブル時の切り分けもしやすいです。
3. 既存の開発環境を流用できる
iPhone向けに何か専用の仕組みを作るというより、
今あるPC環境にスマホから入れるようにするだけなので、導入しやすかったです。
この「新しいものを作るのではなく、入口だけ足す」感じはかなりよかったです。
実際にやってみてつらかったところ
もちろん、つらいところもかなりあります。
1. 長文入力がしんどい
これは本当にそのままです。
CLIは結局、文字入力が命なので、
- 長いコマンド
- 複雑なオプション
- 長文の依頼
- パスの入力
あたりはかなり面倒です。
2. 出力が長いと追いづらい
スマホ画面だと、ログや差分を追うのがかなり大変です。
- 一度に見える範囲が狭い
- スクロール量が多い
- 前後関係を見失いやすい
ので、長い出力を読み込む用途にはあまり向いていません。
3. 本格作業にはやはり向かない
結局のところ、iPhoneからのCLIは補助用途が中心です。
探索的にいろいろ試したり、ファイルを横断して見たり、
長文で考えを整理しながら依頼したりするなら、やはりPCのほうが圧倒的に楽です。
向いている使い方
今回の構成で、特に向いていると思ったのは以下です。
向いている使い方
- 実行状況の確認
- ログ確認
- 軽い再実行
- 単発の短い指示
- 外出先からの一次確認
- 「あとでPCで本格対応する前の入口」として使う
逆に、以下は素直にPCを使ったほうがいいです。
向いていない使い方
- 本格的な実装
- 複雑な修正
- 多ファイル編集
- 長い差分確認
- 長文プロンプト前提の利用
まとめ
今回は、Tailscale + Termius を使って、iPhoneからCodex CLIを触る構成を試してみた話をまとめました。
流れとしてはかなりシンプルで、
- PC側でCodex CLI環境を用意する
- PC側でSSH接続を受けられるようにする
- PCとiPhoneをTailscaleで同じネットワークに入れる
- iPhoneのTermiusからPCへSSH接続する
- 接続先でCodex CLIを使う
という形です。
実際にやってみた感想としては、
- 使えなくはない
- でも快適ではない
- 補助用途としてはかなり便利
- 本格作業はやはりPC向き
というところに落ち着きました。
個人的には、「スマホでも開発する」ではなく、「スマホでも最低限つながる」 と考えると、かなり実用的でした。
同じように、外出先からCLI環境に入りたい方や、Codex CLIをスマホから触ってみたい方の参考になればうれしいです。