Claude、Codex、OpenCodeのセッションを別のマシンに移す方法(最初からやり直さずに)
同じ会話を続けたまま、セッションを所有するマシンを切り替え、必要ならワークスペースも移す方法。
- CLI
- 0.2.17
- プレビュー ref
- a2c45c8
一日の終わりによくある場面です。
- セッションはノートPCで始めた。
- ノートPCを閉じる必要がある(あるいはバッテリー切れ、スリープ、Wi-Fiの切断、カバンにしまう直前)。
- セッションは止めたくない。続けたいが、別のマシンで。
それこそがセッションの引き継ぎで実現したいことです。
同じセッションID、同じスレッドのまま、所有するマシンだけを変える。
多くのツールには、「セッション全体を別のマシンに移す」すっきりした流れがありません。
Happierにはあります。Session handoff という機能です。
要点
- 何をしたいか決めます。
- セッションを別のマシンに移す(ノートPCを閉じられるように)
- 必要なら:ワークスペースも移す(移動先にファイルがまだない場合)
- 両方のコンピューターにHappierをセットアップします(少なくとも両方を同じHappierサーバーに接続します)。
- セッションを開き、Session handoff を始めます(セッションのヘッダーメニューか セッション情報(Session info))。
- 移動先のマシンを選びます。
- 次を決めます。
- Workspace transfer:デフォルトはオフ(安全側)
- ダイレクトセッションの場合:Keep direct か Convert to synced か
問題
制約になるのは「スマートフォンを使えるか」ではないこともあります。
「今このセッションを所有しているのはどのマシンか」です。
セッションを間違ったマシンが所有していると、すべてが面倒になります。
- 実際に動かしたいツールは別の場所にある
- 作業する場所を変えるためだけにセッションを作り直す羽目になる
- 継続性が失われる(そして文脈を説明し直すことになる)
Session handoffは、「同じセッションを別のマシンで」というすっきりした操作です。
よくあるやり方とトレードオフ
- ノートPCをスリープさせてセッションが生き残るよう祈る: 大丈夫なこともありますが、頼れるものではありません。
- 別のマシンで新しいセッションを始める: 使えますが、流れが途切れます(文脈も説明し直しです)。
- セッションを分岐する: 枝分かれが欲しいときには便利ですが、「同じセッションを別の場所で生かし続ける」問題は解決しません。
- スマートフォンからノートPCにSSHする: 使えますが、閉じたいのがそのノートPCなら本末転倒です。
- HappierのSession handoff: 同じセッションIDのまま、実際の所有者を移します。
Happierが初めての方へ(概要と入手方法)
Happierは、Claude Code、Codex、OpenCodeなどのAIコーディングエージェントのためのオープンソースのコンパニオンアプリ(モバイル、Web、デスクトップ)です。
ここでの流れは、リポジトリとワークスペースはそれを持つマシンに置いたまま、スマートフォンからHappierでセッションを見守り、指示するというものです。
セットアップ:
- スマートフォンからHappierを使う方法
- GitHub: https://github.com/happier-dev/happier
- インストールとダウンロード: https://github.com/happier-dev/happier#how-it-works
- Discord(コミュニティとサポート): https://discord.gg/W6Pb8KuHfg
うまくいくワークフロー(手順)
1) 「セッションだけ」を移すか「セッションとワークスペース」を移すか決める
Session handoffには2つの調整項目があります。
- セッションの所有権: どのマシンがセッションの実際の所有者か(これが中心の機能です)。
- Workspace transfer: Happierがワークスペースのファイルを移動先のマシンにコピーするかどうか。
「このノートPCを閉じたいがセッションは生かしておきたい」が目的なら、ほとんどの場合、まずは所有権の移動から始めます。
ワークスペースの転送は任意です。移動先のマシンに必要なファイルがまだない場合や、このセッションのリポジトリの新しい置き場所を移動先にしたい場合に使います。
2) セッションからSession handoffを始める
引き継ぎは次の場所から始められます。
- セッションのヘッダーの操作メニュー
- セッション情報(Session info)画面
移動先のマシンを選んで確定します。
3) ワークスペースを転送するか選ぶ(任意)
デフォルトでは、ワークスペースの転送はオフです。
Happierにセッションのワークスペースを移動先のマシンへ本当にコピーしてほしいときだけオンにしてください。
転送を有効にした場合は、次も選びます。
- 移動先のパスがすでに存在する場合にどうするか(隣にコピーするか、置き換えるか)
- 無視対象のファイルをどう扱うか
Happierはここで厳格です。次のような安全でない転送元のパスでは、ワークスペースの転送をブロックします。
/- ホームディレクトリ
~
うっかりマシンの半分をコピーしようとすることはありません。
4) ダイレクトセッションなら、Keep directかConvert to syncedを選ぶ
Session handoffは同期(Synced)セッションとダイレクト(Direct)セッションの両方で使えます。
ダイレクトセッションの場合、引き継ぎのUIに選択肢が加わります。
- Keep direct: セッションはプロバイダー側に保持されたままです。
- Convert to synced: マシンに縛られたダイレクトの形から抜け、以降はHappierがセッションを所有します。
簡単な判断基準:
- 「プロバイダー側に保持され、マシンに紐づく」性質のままにしたいなら:Keep direct。
- 以降は通常のHappierのセッションとして扱いたいなら:Convert to synced。
5) 引き継ぎに失敗したら、認証の前提を確認する(接続済みサービスとマシンローカルの認証)
Session handoffは、移動先のマシンでプロバイダーのCLIに自動でログインしてくれるわけではありません。
ここでは2つの考え方が関わります。
- 接続済みサービス(Connected services):認証情報はHappierアカウントにあり、対応するバックエンドはコンピューターをまたいで再利用できます。
- マシンローカルのプロバイダー認証: 一部のバックエンドは、今もプロバイダーのネイティブなCLIのログイン状態に依存しています。
移動先のマシンがプロバイダーや実行環境の要件を満たせない場合、引き継ぎは完了しません。
対応プロバイダー(期待できること)
これはプロバイダーによって異なります。
現在のドキュメントによると:
- Claude:対応
- OpenCode:対応
- Codex:利用可能だが、Claude・OpenCodeより安定性は低い
現在のセッションでプロバイダーが引き継ぎに対応していない場合、その操作は非表示か使えない状態になります。
なぜうまくいくのか(そして何が壊れるのか)
Session handoffがうまくいくのは、Happierが「セッションID+トランスクリプト+セッションのメタデータ」を1つの単位として扱い、実際の所有者となるマシンを変えるからです。
壊れるのは、移動先のマシンがセッションに必要なものを実際には動かせない場合です。
- マシンがオフライン
- バックエンドがインストールされていない、またはそこでは使えない
- プロバイダーの認証がない
よくある間違い
- ワークスペースの転送をいつもオンにする → 本当にファイルのコピーが必要なとき以外はオフのままにします。
- 引き継ぎでプロバイダーのログインも直ると思う → 直りません。移動先のマシンと認証を準備しておきます。
- 所有権を移したいのに分岐を使う → 分岐は枝分かれのため、引き継ぎは「同じセッションを別のマシンで」のためのものです。
よくある質問
同じセッションIDのままになる?
なります。それが引き継ぎの要点です。
「Attach to session」と同じ?
違います。アタッチは、同じマシンのターミナルからセッションを開き直すためのものです。 引き継ぎは所有するマシンを変えます。