Claude Code、Codex、OpenCode を自宅サーバーで動かし、スマホのブラウザから進捗を確認する方法
安定したマシンでセッションを動かし、スマホから監視するための実践的な設定。クラウド UI、SSH、スマホ向けダッシュボードのトレードオフも率直に整理します。
- CLI
- 0.2.17
- プレビュー ref
- a2c45c8
本格的な作業はキーボードの前でするものです。
でも、長時間のセッションの見守りまでそうである必要はありません。
Claude Code、Codex、OpenCode のセッションに 20〜60 分かかるなら、スマホから様子を確認できるようにしておきたいところです。
本格的な SSH 環境ではなく。
リモートデスクトップでもなく。
ただブラウザを開いて、何をしているか確認し、必要なことに答えて、先に進む。
この「スマホはブラウザだけ」という条件はシンプルに聞こえますが、大きな分かれ道が隠れています。
- クラウド UI(スマホから使いやすいが、デフォルトではローカルのリポジトリではない)
- ローカル実行(リポジトリやツールはそこにあるが、リモートで操作する画面が必要)
このガイドでは、ローカル実行 と スマホからの確認を両立する設定を扱います。
要点
- どちらの世界を選ぶか決めます。
- クラウド UI:スマホからのアクセスは簡単ですが、リポジトリのワークフローをクラウドのプロジェクトやパッチ中心に組み直すことになります。
- ローカル / サーバーでの実行:リポジトリとツールは自分のマシンに残りますが、リモートで操作する画面が必要です。
- ローカル / サーバーでの実行を選ぶなら、スリープしないマシン(自宅サーバー / デスクトップ / 開発マシン)でセッションを動かします。
- スマホからブラウザだけでアクセスするには HTTPS(セキュアコンテキスト)が必要です。セルフホストなら、Tailscale Serve で
https://*.ts.netの URL を得るのが手軽です。 - Happier はここでうまく機能する選択肢のひとつです。配信される Web UI はスマホで使いやすく、ドキュメントでも Tailscale Serve が正式な方法として扱われています。
課題
ここには別々の悩みが 2 つあります。
- セッションがどこで動くか(ノート PC がスリープする、Wi-Fi が切れる、ターミナルが閉じる)。
- スマホから どう確認し、操作するか。
多くのワークフローは (1) は解決しても (2) は解決しません。
- サーバーで動かすのは役立ちますが、それだけでスマホ向けのよい UI が手に入るわけではありません。
- クラウド UI ならスマホ向けの UI はありますが、それだけでローカルのリポジトリが使えるわけではありません。
よくある方法とそのトレードオフ
- スマホから SSH:動きますが、スマホがターミナルになります。
- リモートデスクトップ:動きますが、重く、誤タップしやすいです。
- クラウド UI:スマホでの体験は快適ですが、「自分のリポジトリ」という前提が変わります。
より合うのは次の組み合わせです。
- リポジトリを持つ安定したマシンでセッションを動かす
- スマホで使いやすいブラウザ UI
Happier は、この組み合わせに合うツールのひとつです。
選択肢の整理:実際に使われている 3 つの方法
選択肢 A:クラウド UI(スマホ優先、ローカルのリポジトリは二の次)
「スマホはブラウザだけ」を手軽に実現できる方法です。
トレードオフ:同期やパッチのワークフローに手間をかけない限り、ローカルのファイルシステムやツールチェーンをそのまま使うことはできません。
選択肢 B:ターミナル中心(SSH / Mosh)で使い勝手は割り切る
すべてがローカルに残ります。
トレードオフ:結局スマホでターミナル作業をすることになります。
選択肢 C:ローカル実行 + 本格的なリモート操作画面
「リポジトリは自分のマシンに置く」と「スマホからの確認が簡単」を両立できる方法です。
リモート操作画面には次のようなものがあります。
- 公式のリモート UI(Claude Remote Control)
- セルフホストのダッシュボード
- Happier のようなコンパニオンアプリ / Web UI
Happier を初めて使う場合
Happier は、Claude Code、Codex、OpenCode などのコーディングセッション向けの オープンソースのコンパニオンアプリ(モバイル / Web / デスクトップ)です。
ワークフローは、セッションとリポジトリを信頼できるマシンで動かしたまま、スマホの Happier から進捗を確認し、承認に対応し、追加の指示を送るというものです。
セットアップ:
- スマホから Happier を使う方法
- GitHub: https://github.com/happier-dev/happier
- インストール / ダウンロード: https://github.com/happier-dev/happier#how-it-works
- Discord: https://discord.gg/W6Pb8KuHfg
うまくいくワークフロー(Happier + Tailscale Serve)
マシンを自分で管理しているなら、ブラウザだけで使う場合の推奨ワークフローです。
1) セッションを所有するマシンで Happier を動かす
安定したマシンを選びます。
- 自宅サーバー
- デスクトップ
- 常時稼働の開発マシン
2) Web UI 用の HTTPS の URL を用意する(セキュアコンテキスト)
ブラウザは http://localhost を安全なものとして扱いますが、http://<lan-ip> や http://<tailscale-ip> はセキュアコンテキストでは ありません。
そのため、スマホからのリモートアクセスには HTTPS を使います。
Happier が推奨するのは Tailscale Serve で、tailnet の中で使える https://*.ts.net の URL が手に入ります。
Happier スタックのツールでは、クイックスタートは次のとおりです。
hstack tailscale enable
hstack tailscale urlそのあと、その https://*.ts.net の URL をスマホ(こちらも Tailscale にサインイン済み)で開きます。
3) マシンが複数あるなら、複数サーバーを整理しておく
複数のサーバー(個人用 + 仕事用 + セルフホスト)を使うようになったら、サーバープロファイルをきちんと扱います。
- 認証はサーバーごと
- 通知はサーバーを区別する
「ブラウザだけで確認」は、違うサーバープロファイルを見ていると失敗するため、ここが重要です。
4) スマホでの確認を明確なループにする
スマホからはシンプルに:
- セッションを開く
- 承認待ちになっていないか確認する
- 質問にひとつ答えるか、追加の指示をひとつ送る
本格的な編集やリファクタリングが必要なら、キーボードの前に戻るまで待ちましょう。
トラブルシューティング
Web UI は読み込めるが、暗号機能が動かない
ほとんどの場合「セキュアコンテキストではない」ことが原因です。
LAN の素の HTTP ではなく、HTTPS(Tailscale Serve / 適切な TLS)を使ってください。
マシンには到達できるが、セッションが表示されない
確認すること:
- 正しいサーバープロファイルを使っているか
- そのマシンのデーモンやランタイムが同じサーバーに接続しているか