スマホから手早くターミナルコマンドを実行する方法(SSH に張り付かずに)

本物のターミナルはマシンに置いたまま、スマホで手早くシェルを確認する(git status、ログ、開発サーバー)ためのワークフローです。

対象バージョン
CLI
0.2.17
プレビュー ref
a2c45c8

注意: 機能一覧(英語)によると、埋め込みターミナルは実験的な機能です。セッション内からコマンドを手早く実行できますが、本格的なターミナル作業には SSH/tmux や Herdr のような専用のターミナルホストを検討してください。

スマホでは、たいてい「本格的なターミナル体験」は求めていません。

欲しいのはもっと小さなことです。

  • git status を実行する
  • ログを tail する
  • 開発サーバーが起動しているか確認する
  • セッションが出力したローカル URL をコピーしたり開いたりする

たいていの場合、別の SSH アプリに切り替える手間だけで、その作業を後回しにしてしまいます。

役に立つのは、本物(リポジトリのあるマシンで動く)でありながら、小さな画面で SSH/tmux 一式に引き込まれない「ちょっとしたコマンド」のワークフローです。

多くのツールは、次の両極端のどちらかを強います。

  • SSH/tmux にどっぷり浸かる
  • ターミナルなし(スクリーンショット、ログ、エージェントの発言だけ)

コーディングエージェントをクロスデバイスで実行・オーケストレーションするためのオープンソースアプリ Happier では、セッションに紐づいた埋め込みターミナルが使えます。

要点

  1. 何が必要か決めます:
    • いくつかのコマンドやログの行(よく合います)、または
    • 本格的なターミナル作業(SSH/tmux のほうが向いています)
  2. コマンドを実行したいマシンで Happier をセットアップし(デーモンを接続し)、スマホを接続します。
  3. 任意のセッションを開き、セッションのヘッダーで ターミナル(Terminal) をタップします。
  4. ちょっとしたコマンドやログに使います。再接続し、セッションに追従します。

課題

スマホから Happier を使うとき、たいていは小さな判断をしているのであって、「一日中ターミナル作業」をしているわけではありません。

それでも、小さな判断には本物の状態が必要です。

  • 今どのブランチにいる?
  • あのコマンドは終わった?
  • エラーの行は何?

埋め込みターミナルが役立つのは、コンテキストを切り替えるのではなく、セッション UI の一部だからです。

よくある方法とトレードオフ

  • SSH アプリと tmux: 問題なく使えますが、スマホでは手間が大きいです。
  • リモートデスクトップ: 使えますが、重くて扱いにくいです。
  • エージェントのトランスクリプトを信じる: 本物のコマンド出力が1つ必要になるまでは問題ありません。
  • Happier の埋め込みターミナル: 本物のシェルを、セッションに沿ったワークフローで使えます。

Happier を初めて使う場合(概要と入手方法)

Happier を初めて見る方へ。Happier は、Claude Code、Codex、OpenCode などの AI コーディングエージェント向けのオープンソースのコンパニオンアプリ(モバイル/Web/デスクトップ)です。

ここでのワークフローは、リポジトリ/ワークスペースは所有するマシンに置いたまま、スマホから Happier で確認して操作する、というものです。ときどきのシェルコマンドも含みます。

セットアップ:

動くワークフロー(手順)

1) 埋め込みターミナル機能を有効にする

設定(Settings)→ 機能(Features) を開き、次を有効にします:

  • 埋め込みターミナル(Embedded terminal)

デフォルトの表示位置も選びます:

  • 下部パネル(Bottom panel)(大きな画面におすすめ)
  • サイドバー(Sidebar)
  • 詳細パネル(Details panel)

スマホでは、デスクトップ風のドッキングパネルを画面に並べようとせず、ターミナルに集中した表示になります。

2) セッションからターミナルを開く

  1. 任意のセッションを開きます。
  2. セッションのヘッダーで ターミナル(Terminal) をタップします。

接続済みのデーモンに支えられたライブのシェルが開きます。

3) 「セッションまわり」のコマンドに使う

よく使う例:

  • git status
  • git diff
  • tail -f <logfile>
  • pnpm dev / npm run dev(その後、検出された URL を開く)

大事な点: コマンドは、現在のセッションの接続済みマシンで実行されます。

4) シェルを失わずにターミナルを移動する

埋め込みターミナルは、セッションが持つ1つのターミナルとして感じられるように作られています。

そのため、別の位置(下部/サイドバー/詳細)にドッキングしても、Happier は同じターミナルセッションを保ちます。

5) プロバイダーのログインフローにも同じターミナル基盤を使う

一貫性のうれしい点です。プロバイダーが Happier 内からネイティブの CLI ログインフローに対応している場合、そのログイン画面は同じ埋め込みターミナルの通信経路を再利用します。

そのため、ターミナルの動き(再接続、クリア/再起動、検出された URL のバナー)を知っていれば、プロバイダーのログイン UI にもなじみやすくなります。

必要条件(満たすべきこと)

ターミナルが開かない場合、ドキュメントでは3つの条件にまとめられています。

  • 埋め込みターミナル(Embedded terminal) 機能が有効になっている
  • デーモンが動いていて接続されている
  • セッションが到達可能なマシンに解決される

マシンがオフライン(またはデーモンが未接続)の場合、ライブのシェルではなくエラー状態が表示されます。

なぜ動くのか(そして何で壊れるのか)

Happier がターミナルをセッションの一部として扱う(別の壊れやすい「リモートターミナルのページ」としてではなく)ので動きます。

壊れるのは:

  • デーモンが動いていない
  • 別のサーバープロファイルにいる
  • セッションが到達可能なマシンに解決できない

よくある間違い

  • 機能を有効にしたのにデーモンを忘れる → ターミナルはデーモンに支えられています。
  • スマホ上で動くと思い込む → 動くのは接続済みのマシンです。
  • 長い対話型の作業に使う → 手早い確認やログに向いています。

関連ガイド

mobileterminalworkflowsgitdebugging
最終更新: 2026-10-26