Herdr(と tmux/zellij)で Claude Code や Codex を動かし、スマホから続ける方法
Claude Code や Codex のセッションを Herdr のターミナルペインで開始し、動かしたままモバイルから監視・操作する方法を解説します。
- CLI
- 0.2.17
- プレビュー ref
- a2c45c8
単独のターミナルウィンドウで始めた Claude Code セッションには問題があります。スマホから進捗を確認したいとき、セッションは動いていても、接続できる場所にありません。
Herdr(と tmux/zellij)はこのワークフローを変えます。エージェントのセッションは永続するターミナルペインで始まり、Happier はスマホからその同じペインを開きます。Happier は、Claude Code、Codex などのエージェントをクロスデバイスで実行・オーケストレーションできるオープンソースアプリです。
要点
- Herdr 0.9.2 以降をインストールします(macOS/Linux なら tmux/zellij でも可)
- Happier で: 設定(Settings)→ セッション(Session)→ 新しいセッションのターミナルホスト(Terminal host for new sessions) → Herdr(または tmux/zellij)
- Herdr のペインで
happier claudeまたはhappier codexを実行します(または Happier にペインを作らせます) - スマホから: セッションは Herdr 内に表示され、接続済みでライブの状態です
- 後で:
happier attach <session-id>で同じペインに入れます
課題
通常のターミナルウィンドウでエージェントを起動すると:
- セッションは動いていても、別のターミナルからアクセスできない
- ウィンドウを閉じるとターミナルが残らない
- 別のデバイスからエージェントの作業内容を簡単に確認できない
目指すのは、次のようなエージェントのセッションです:
- 永続するターミナルマルチプレクサで始まる
- スマホからアクセスできる(SSH でどのセッションか推測するだけではない)
- ノートPCのスリープや切断を乗り越える
よくある方法とトレードオフ
- 普通のターミナルウィンドウ: 閉じるかノートPCがスリープするまでは動きます。再接続の手段はありません。
- 手動の tmux: よりましですが、先に tmux を起動し、セッションに名前を付け、スマホからどの tmux セッションがどれかを見分ける必要があります。
- SSH して正しいペインを探す: 使えますが面倒です。結局ウィンドウ番号を推測することになります。
Happier と Herdr(または tmux/zellij) はこれを次の方法で解決します:
- 選んだターミナルホストでセッションを自動的に開始する
- モバイルではセッション名で表示する
- まったく同じペインに接続できる
Happier を初めて使う場合
Happier は、Claude Code、Codex、OpenCode などの AI コーディングエージェント向けのオープンソースのコンパニオンアプリ(モバイル/Web/デスクトップ)です。
ここでのワークフローは、Happier が Herdr(または tmux/zellij)の中で Claude Code や Codex を起動し、エージェントのターミナル画面をそのままにスマホから同じセッションにアクセスする、というものです。
セットアップ:
- スマホから Happier を使う方法
- GitHub: https://github.com/happier-dev/happier
- インストール: https://github.com/happier-dev/happier#how-it-works
- Discord: https://discord.gg/W6Pb8KuHfg
前提条件
Herdr の場合
- Herdr 0.9.2 以降(安定版が必要)
- macOS と Linux で利用可能
- ネイティブの Windows には非対応(代わりに WSL で tmux を使ってください)
Herdr のバージョンを確認します:
herdr --version古いバージョンや開発版の場合は、安定版の 0.9.2 以降にアップグレードしてください。
tmux または zellij の場合
- macOS または Linux に tmux または zellij がインストールされていること
- tmux/zellij に最低バージョンの制限はありません
- Windows の WSL でも動きます
Happier CLI
エージェントを動かしたいマシンに Happier CLI をインストールします:
手順: 新しいセッションのターミナルホストを設定する
1) Happier の設定を開く
Happier アプリ(モバイル、Web、デスクトップ)から:
- 設定(Settings) を開く
- セッション(Session) を選ぶ
- 新しいセッションのターミナルホスト(Terminal host for new sessions) を探す
2) ターミナルホストを選ぶ
次のどれかを選びます:
- ターミナルホストなし(No terminal host): セッションはヘッドレスで始まります(デフォルト)
- tmux: tmux をターミナルホストとして使う
- zellij: zellij をターミナルホストとして使う
- Herdr: Herdr をターミナルホストとして使う(CLI 0.2.16 以降が必要)
このガイドでは Herdr を選びます(tmux が好みなら tmux)。
なぜ重要か:
- ターミナルホストなし(No terminal host) の場合、Happier のセッションは明示的に接続するまでバックグラウンドで動きます
- ターミナルホストを設定すると、対応するセッションはすぐにそのターミナルに表示されます
- セッションはターミナルと Happier アプリの両方から接続できるままです
3) 設定はマシンごとに適用される
Happier はこの設定をアカウントに保存しますが、適用はマシンごとです。
複数のマシンがある場合:
- それぞれ別のターミナルホストを使える
- またはアカウントのデフォルトをローカルで上書きできる
4) 設定が保存されたか確認する
UI に選んだホスト(例: Herdr)が表示されているはずです。
Herdr で Claude Code セッションを始める
方法 A: Herdr のペインの中から始める
すでに Herdr のペインにいる場合:
happier claudeHappier は現在の Herdr ペインを Claude Code のターミナル画面に使います。
方法 B: Happier に新しいペインを作らせる
Herdr の外で happier claude を実行すると、Happier は新しい Herdr ペインを作り、そこで Claude Code を起動します。
表示される内容
Claude Code のターミナル画面(TUI)が Herdr のペインに表示されます:
- ターミナル内のプロンプトと応答
- インラインの承認リクエスト
- セッションはライブで接続済み
Herdr で Codex セッションを始める
Codex でもワークフローは同じです:
happier codex- Codex は macOS と Linux でネイティブの App Server 経路を使う
- Herdr(または別のターミナルホスト)を選ぶと、Happier はそのホストで Codex の TUI を起動する
- ターミナルホストがない場合、Codex は接続するまでサーバー経由のヘッドレスで動く
スマホから表示して接続する
Happier アプリから
- スマホで Happier アプリを開く
- セッション一覧に、動いている Claude Code または Codex のセッションが表示される
- セッションをタップして開く
何が起きるか:
- アプリにセッションのトランスクリプトと操作が表示される
- セッションが Herdr 内にあれば、接続してターミナル画面を見られる
- 承認リクエストはアプリとターミナルの両方に表示される
Herdr のペインに接続する
ターミナル(ローカルまたは SSH)から:
happier attach <session-id>Claude Code や Codex が動いているのと同じ Herdr ペインに入れます。
次も使えます:
happier herdrターミナルから Herdr を開き、Herdr の操作でセッションのペインに移動できます。
なぜこれで動くのか
Herdr(と tmux/zellij)は、切断してもターミナルのセッションを生かしておきます。
Happier はこれを次のように活用します:
- 名前付きの Herdr ペインでエージェントのセッションを開始する
- どのセッションがどのペインにあるかを追跡する
- モバイルではセッション名で表示する
happier attachでそのペインに直接移動できるようにする
結果として、エージェントのセッションを一度始めれば、次のどこからでもアクセスできます:
- 元のターミナル
happier attachによる新しいターミナル- Happier アプリ経由のスマホ
- Herdr ネイティブのペイン移動
トラブルシューティング
症状: Happier がターミナルホストの設定が必要だと言う
考えられる原因:
- Herdr がインストールされていない、またはバージョンが 0.9.2 より古い
- Herdr サーバーが動いていない
対処:
- Herdr がインストールされているか確認する:
herdr --version - バージョンが 0.9.2 以降であることを確認する
- Herdr が動いていなければ起動する:
herdr - セッションの開始をやり直す
症状: セッションは始まるが Herdr の中ではない
考えられる原因:
- セッション開始後にターミナルホストの設定を変えた
- 古い Happier CLI(0.2.16 より前)を使っている
対処:
- CLI のバージョンを確認する:
happier --version - 必要なら CLI 0.2.16 以降にアップグレードする
- 設定(Settings)→ セッション(Session)→ 新しいセッションのターミナルホスト(Terminal host for new sessions) で設定を確認する
- セッションを止めて新しく始める
症状: セッションのペインに接続できない
考えられる原因:
- セッションの Herdr ペインが手動で閉じられた
- Herdr サーバーが再起動し、ペインが復元されなかった
対処:
- セッションがまだ動いているか確認する:
happier sessions - セッションが生きていてペインがない場合も、エージェントのプロセスは続いている
- Happier アプリ(トランスクリプト/承認)から引き続き操作できる
- 接続すると新しいビューが作られるので、元のペインは必要ない
症状: Claude のセッションが複数あり、どのペインがどれかわからない
考えられる原因:
- 先にセッション一覧を確認せずにセッションを始めた
対処:
happier sessionsで、すべてのアクティブなセッションを ID 付きで一覧表示するhappier attach <session-id>で特定のセッションのペインに移動する- または Happier アプリを開き、セッションをタップして詳細を見る
よくある質問
tmux や zellij でも使えますか?
はい。同じワークフローが使えます:
- 新しいセッションのターミナルホスト(Terminal host for new sessions) を tmux または zellij にする
happier claudeまたはhappier codexを実行する- セッションは tmux のウィンドウや zellij のペインに表示される
happier attachも同じように動く
Herdr を使わなければいけませんか?
いいえ。次から選べます:
- ターミナルホストなし(No terminal host)(接続するまでヘッドレス)
- tmux
- zellij
- Herdr
ワークフローに合うものを選んでください。
ターミナルホストを切り替えられますか?
はい。設定(Settings)→ セッション(Session)→ 新しいセッションのターミナルホスト(Terminal host for new sessions) で変更します。
設定は新しいセッションに適用されます。既存のセッションは元のホストを使い続けます。
ノートPCがスリープしたらどうなりますか?
マシンに到達できる限り、セッションとその Herdr ペインは残ります。
再接続すると:
- Herdr はペインを生かしている
- エージェントのプロセスは続いている
happier attachは以前と同じように動く
マシンが完全にオフラインの場合、マシンが再接続するまで Happier のリレーは連絡が取れなくなります。
ターミナルホストはパフォーマンスに影響しますか?
いいえ。ターミナルホストは、エージェントのターミナル画面が表示される場所です。エージェントのプロセスとそのパフォーマンスには影響しません。