既存の Claude、Codex、OpenCode のセッションにスマホからアクセスする方法
プロバイダーネイティブのセッションを見つけてスマホから開き、プロバイダー側のまま使うか、長く続けるためにインポートするかを決める方法です。
- CLI
- 0.2.17
- プレビュー ref
- a2c45c8
セッションは、別の場所で始まることがあります。
- ターミナルで始めた Codex の実行
- さっと始めた Claude Code のセッション
- 独自のサーバーやストアにある OpenCode のセッション
あとでスマホを開いたとき、セッションを作り直したり、コンテキストを説明し直したりはしたくありません。
目標は、その既存のプロバイダーセッションを見つけ、スマホから開いて、まっさらなチャットにコンテキストをコピーせずに続けることです。
難しいのは、多くのツールが「一覧から既存のセッションを選び、どこまで持ち運べるようにするか決める」というすっきりしたワークフローを用意していない点です。
要点
- どんな継続性が欲しいか決めます:
- プロバイダー側(既存のプロバイダーセッションをそのまま開く)
- インポート/同期(履歴とこれからの作業を、アプリが管理する1つのセッションにまとめる)
- プロバイダーのセッションがあるマシンで Happier をセットアップします(スマホも接続します)。
- ダイレクトセッション(Direct sessions)→ プロバイダー セッションを参照(Browse provider sessions) で既存のセッションを開きます。
- 長く続けたいなら、中身を確認したあとで 引き継いでインポート(Take over + import)に切り替えます。
課題
「スマホから続けたい」と言うとき、まったく違う2つのことを意味している可能性があります。
- まったく同じプロバイダーセッションで続ける(プロバイダー側での継続)
- そのセッションを、持ち運べてアプリが管理する場所に移す(インポート/同期での継続)
どちらも正当です。
問題は、多くのツールがこの2つをあいまいにしているので、違いに後から気づくことです。
- 「ノートPCがオフラインになったら、なぜこのセッションは更新されなくなったの?」
- 「マシンを切り替えたら、なぜ別のセッションのように感じるの?」
2つの所有モデルに名前を付ければ、残りのワークフローはずっとわかりやすくなります。
よくある方法とトレードオフ
- スマホでまっさらなセッションを始める: 使えますが、既存のスレッドを失います。
- 新しいセッションにコンテキストをコピー&ペーストする: 使えますが、必ず何かが抜けます(最新に保つのも大変です)。
- すべてを元のマシンに置いてリモート接続する(SSH/tmux/リモートデスクトップ): 使えますが、スマホでは重いです。
- Happier(ダイレクトセッションと引き継いでインポート): 「まず既存のセッションを開き、それからインポートするか決める」すっきりしたワークフローがあります。
Happier を初めて使う場合(概要と入手方法)
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
動くワークフロー(手順)
注意: 機能一覧(英語)によると、ダイレクトセッション(プロバイダーネイティブのセッションの参照と表示)は実験的な機能です。インポートするまで、所有するマシンに到達できる状態を保つ必要があります。0.2.16 以降、インポートの進捗を追い、停止(Stop)でき、すでにインポートされた履歴は引き続き使えます。
1) まず既存のセッションを開く(何かをインポートすると決める前に)
ここが、多くのツールが本当には対応していない手順です。
Happier での流れ:
- セッション一覧を開きます。
- ダイレクト(Direct)タブに切り替えます。
- プロバイダー セッションを参照(Browse provider sessions)を選びます。
- 次を選びます:
- マシン
- プロバイダー(Codex / Claude / OpenCode)
- ソース
Happier は、その組み合わせで見つけられる既存のプロバイダーセッションの一覧を表示します。
1つを選んで、すぐに ダイレクト(Direct)セッションとして開けます(つまり、プロバイダー側で、マシンに紐づいたセッションです)。
2) まずダイレクトで開く(後で同期するつもりでも)
この方法でプロバイダーセッションを開くと、Happier は ダイレクト(Direct)セッションとして開きます。
これが便利なのは、次のことができるからです。
- トランスクリプトを確認する
- 新しいトランスクリプトの項目を追う
- ライブのセッションを監視する
まだインポート/同期を決めずにできます。
3) 決める: ダイレクトのままか、引き継いでインポートか
セッションを開いたあと、続け方は2通りです。
方法 A: ダイレクトのままにする
ダイレクト(Direct)のままにするのは:
- プロバイダーセッションを手間なく開きたい
- プロバイダーが正となる情報源で問題ない
- 使いたいときに所有するマシンがオンラインになっている
トレードオフは重要です。
- セッションがダイレクトのままでマシンがオフラインになると、Happier はプロバイダーのトランスクリプトを追ったり更新したりできません
方法 B: 引き継いでインポート
引き継いでインポート(Take over + import)を使うのは:
- これから先は Happier にトランスクリプトを持たせたい
- 元のマシンがオフラインでも、デバイスをまたいで続けたい
- セッションを通常の Happier の同期セッションのように扱いたい
概念的には、引き継いでインポートは次のことをします。
- プロバイダーのトランスクリプトを読み込む
- その履歴を Happier のセッションにインポートする
- セッションを ダイレクト(Direct)から 同期(Synced)に変える
4) Resume ID のほうが向いている場面を知る
プロバイダーセッションの参照は、一覧を見て選びたいときに向いています。
でも、すでに ID を持っている(または新しいセッションのフローから ID で再開したい)こともあります。
そこで使うのが Resume ID です。
- Happier で新しいセッションを始める
- プロバイダーの再開可能なセッション ID を入力する
- (使える場合)Resume ID の横にある 参照(Browse)ピッカーで入力する
注目すべき点: Resume ID の参照ピッカーは、新しいセッションの画面で選んだマシン/プロバイダー/認証のコンテキストに限定されます(そのため、実際には再開できない別の「ホーム」のセッションを選んでしまうことがありません)。
なぜ動くのか(そして何で壊れるのか)
Happier が、すべてに共通する1つのセッションモデルがあるふりをしないから動きます。
橋渡しを用意しているのです。
- プロバイダーセッションをそのまま開く(ダイレクト)
- Happier ネイティブの継続性が欲しいときだけ同期/インポートする
壊れるのは、ダイレクトセッションの明らかなケースです。
- マシンがオフライン → ダイレクトセッションを追うことも操作することもできない
よくある間違い
- すぐにすべてを同期する → まずダイレクトで開き、長く使うとわかっているセッションだけを同期しましょう。
- ダイレクトがマシンに紐づくことを忘れる → 「そのマシンがスリープしていても使える」状態が必要なら、同期しましょう。
- Resume ID と参照を混同する → 参照は一覧から選ぶもの、Resume ID は「この特定のセッション ID を新しい Happier セッションで再開する」ためのものです。
よくある質問
「引き継いでインポート」でプロバイダーのセッションは消えますか?
いいえ。Happier でのインポートと継続のための操作です。
複数の Codex ホームのセッションを参照できますか?
Codex には複数のホーム(ネイティブと、接続済みサービスに基づくもの)がありえます。Resume ID のピッカーは、意図的に現在の認証/ホームの選択に限定されています。