TAILSCALE + SSH + TMUX · CLAUDE CODE & CODEX 専用

Macで動くセッションにスマホから直結、10分セットアップ

ShakeJ Terminalは、AndroidスマートフォンからTailscaleとSSHを使ってMacの tmux 内で動くClaude Code・Codexセッションにそのまま接続できる専用ターミナルです。ターミナル操作が初めての方でも、順番にコピー&ペーストするだけで完了します。

macOS 13+ Ventura以降 Android 10+ スマホ・タブレット Tailscale 同じアカウントでログイン 約10分 初回のみの設定
my-mac.tailnet.ts.net alex:22 · SSH
5h 42% 7d 68% · 2セッション
実行中の TMUX セッション
c1 claude · shakej-terminal
選択待ち

> テストスイートを実行しますか? (1/2)

c2 codex · api-server
実行中

> 認証モジュールをリファクタリング中...

c1 をタップしてターミナル画面へ
$ tmux attach -t c1
● Claude Code · ~/works/shakej-terminal
+ 3ファイルを更新 · 単体テスト通過
? 実行確認: ./gradlew testDebugUnitTest
クイック選択シート
1. 今回のみ許可 2. 常に許可
ESCTABCTRL^C↑↓↵
STEP 0 約1分

準備するもの & 接続の仕組み

Mac本体macOS 13 (Ventura) 以降
AndroidスマホAndroid 10 以降
同じTailscaleアカウントMacとスマホで同じアカウントを使用
所要時間 約10分最初の1回だけ設定すればOK
Q. 「Tailscaleを入れるだけでセッションは見えますか?」

いいえ。TailscaleはスマホとMacの間に安全な「通り道(トンネル)」をつなぐだけです。実際にセッションを表示して操作するには、アプリがSSH(リモートログイン)でMacに入り、tmuxの中で動いているセッションを読み取る必要があります。そのため、以下の3つ(① リモートログインON・② 1行インストール・③ tmux内での起動)が必要です。

1. スマートフォン
ShakeJ Terminal

my-mac.tailnet.ts.net:22(ユーザー alex)へ接続

2. 専用トンネル
Tailscale トンネル

外出先からでもポート開放なしで自宅や職場のMacへ直結

3. Macの入り口
Mac SSH (ポート22)

システム設定 > 共有 > リモートログインで許可

4. 作業セッション
tmux セッション群 (c1, c2)

1行スクリプトが一覧・使用量・通知連携をセットアップ

✓ こう表示されれば成功

MacとAndroidスマホが手元にあり、Tailscaleで使うGoogle / Apple / GitHubアカウントが決まっていれば準備完了です。

STEP 1 約2分

MacにTailscaleをインストール・ログイン

Tailscaleを入れると、外出先のモバイル回線からでも自分のMacだけに安全にアクセスできる専用アドレス(例: 100.84.21.9 または my-mac.tailnet.ts.net)が割り当てられます。

Mac版 Tailscaleをダウンロード (tailscale.com/download/mac) ↗

macOS メニューバー · Tailscale ● Connected (接続済み)
Tailscale: Connected
alex@example.com · このMac: 100.84.21.9 (my-mac.tailnet.ts.net)
✓ こう表示されれば成功

画面右上のメニューバーにあるTailscaleアイコンをクリックしたとき、Connected と表示され、自分のMacの横に 100.x.y.z のアドレスが見えていれば成功です。

困ったときは: 「VPN構成の追加を求めています」と表示された場合
初回起動時にmacOSが表示する通常の確認ダイアログです。「許可 (Allow)」をクリックし、MacのパスワードまたはTouch IDで承認してください。
STEP 2 約1分

Macの「リモートログイン」をオンにする

Macの システム設定 > 一般 > 共有 を開き、リモートログイン (Remote Login) のスイッチをオンにします。右側の ⓘ ボタンを押して、アクセス許可が「すべてのユーザ」または自分のアカウント(例: alex)になっていることを確認してください。

システム設定 > 一般 > 共有 macOS
リモートログイン (SSH · ポート 22)
アクセスを許可: すべてのユーザ(または自分のアカウント alex)
ON
✓ こう表示されれば成功

リモートログインのトグルスイッチがオンになっており、ⓘ の詳細画面で自分のアカウント(またはすべてのユーザ)が許可されていれば成功です。

困ったときは: システム設定で「リモートログイン」が見つからない
システム設定の左上にある検索欄に「リモートログイン」または「共有」と入力するとすぐに見つかります。また、次のステップ3の1行コマンドを実行すると、オフの場合は自動的に共有設定画面が開きます。
STEP 3 約2分

1行インストールコマンドを実行する

まずMacのターミナル (Terminal) アプリを開きます。キーボードの ⌘ Command + Space を押してSpotlight検索を開き、Terminal(または ターミナル)と入力して Return を押してください。

⌕ Terminal ⌘ + Space

下のコピーボタンを押し、開いたターミナル画面に貼り付けて(⌘ + V)、Return を押します:

Mac ターミナル — 1行インストールコマンド
curl -fsSL https://terminal.gamely.cc/install.sh | bash

完了すると、最後にスマホアプリへ入力するアドレスとアカウント名が以下のように表示されます:

==> [1/6] リモートログイン(SSH)確認 ... 有効 (ポート 22)
==> [2/6] Homebrew・必須ツール(tmux, jq)確認 ... 完了
==> [3/6] Python 3 確認 ... Python 3.12.4
==> [4/6] ~/.shakej-terminal ファイル配置 ... 完了
==> [5/6] Claude Code フック登録 (~/.claude/settings.json) ... 完了
==> [6/6] Tailscaleアドレス・ステータス確認 ... OK
============================================================
ShakeJ Terminal サーバー設定完了
============================================================
• スマホアプリに入れるアドレス : 100.84.21.9 (または my-mac.tailnet.ts.net)
• アカウント名 (Username) : alex
• ポート (Port) : 22
• 案内 : Claude・Codexはtmux内で起動: tmux new -s c1
✓ こう表示されれば成功

ターミナルの最後にスマホアプリに入れるアドレス(例: my-mac.tailnet.ts.net)、アカウント名(例: alex)、ポート 22 が表示されれば成功です。

困ったときは: Homebrewがなくてtmuxがインストールされていないと言われた場合

MacにHomebrewが入っていない場合は、以下の2つのコマンドを順番にコピー&実行してから、もう一度1行インストールを実行してください:

1. Homebrewのインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. tmux と jq のインストール
brew install tmux jq
STEP 4 約1分

Claude Code・Codexをtmuxの中で起動する

なぜこれが必要? 通常のターミナル画面はMacのモニター上にしか存在せず外から見えませんが、tmux の中で起動しておけばウィンドウを閉じても裏でセッションが生き続け、スマホとMacの両方から同じ画面にいつでも接続できます。

1. c1 という名前で新しいtmuxセッションを作る
tmux new -s c1
2. tmuxセッションの中で claude(または codex)を起動する
claude

終了するときはターミナルのウィンドウをそのまま閉じてもセッションは消えません。あとからMacで既存の c1 セッションに再接続したいときは、次のコマンドを実行します:

Macで既存の c1 セッションに再接続する
tmux attach -t c1
alex@my-mac ~/works/project $ claude
╭──────────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code │
╰──────────────────────────────────────────────────╯
[c1] 0:claude* "my-mac" 19:30
✓ こう表示されれば成功

ターミナル画面の一番下に緑色のバー([c1] 0:claude*)が表示された状態でClaude CodeやCodexが動いていれば成功です。

困ったときは: 「duplicate session: c1」と表示される場合
すでに c1 というセッションが存在しています。tmux attach -t c1 で既存のセッションに入るか、2つ目のセッションを作る場合は tmux new -s c2 のように別の名前をつけてください。
STEP 5 約3分

Androidスマートフォンから接続する

1. Androidスマホに Tailscale アプリをインストールし、Macと同じアカウントでログインしてVPNスイッチをオンにします。
2. ShakeJ Terminal アプリを開き、ホストを追加 (+) をタップして、ステップ3で表示されたアドレス・アカウント名・ポート 22を入力します。
3. 認証方法でMacのログインパスワードを入力するか、より安全な「鍵を作成」を選びます。

A. ホストを追加
アドレスmy-mac.tailnet.ts.net
アカウントalex
ポート22
認証パスワード / 鍵を作成
B. 初回接続の指紋確認

MacのSSHホスト鍵指紋:
SHA256:9xK4m...pQ2v

信頼する (Trust)
C. 一覧から c1 をタップ
[c1] claudeタップ →
[c2] codex実行中

「鍵を作成」を選んだ場合: アプリで公開鍵をコピーし、メモ等でMacへ送ったら、下のコマンドの 貼り付けた公開鍵 の部分に入れ替えてMacのターミナルで実行します:

Macに公開鍵を登録するコマンド(Macのターミナルで実行)
mkdir -p ~/.ssh && echo '貼り付けた公開鍵' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys

4. 初回接続時にホスト鍵の指紋(フィンガープリント)確認が出たら「信頼する」をタップします。
5. セッション一覧で c1 をタップすれば接続完了です!

✓ こう表示されれば成功

セッション一覧で c1 をタップするとMacで動いているClaude Code・Codexの画面がスマホに表示され、入力した文字がリアルタイムでMacにも反映されます。

困ったときは: 公開鍵を登録したのに認証エラーになる場合
公開鍵の文字列(ssh-ed25519 AAAA...)の途中に改行が入っていないか確認し、Macのターミナルで chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys を実行して権限を整えてください。
STEP 6 約1分

知っておくと便利な5つの機能

1. 特殊キーバー

キーボード直上のバーから ESC、TAB、CTRL、矢印キー(↑↓←→)、中断(^C)をワンタップで送信できます。

2. 2本指で文字サイズ調整

ターミナル画面を2本指でピンチイン・ピンチアウトすると、見やすいフォントサイズにその場で変更できます。

3. 切れても自動再接続

移動中に電波が切れたりアプリを開き直しても、ホーム画面に戻ることなく開いていたセッションへ自動的に再接続します。

4. 上部の使用量バー

画面上部のスリムなバーで、5時間・週間の使用量ゲージや接続ステータスをひと目で確認できます。

5. 権限確認・完了通知

Claudeが権限確認で待機したときや作業が完了したときにスマホへ通知が届き、選択シートからワンタップで承認できます。

✓ こう表示されれば成功

2本指で文字の大きさを変えたり、特殊キーバーから ESC や矢印キーがスムーズに使えることを確認してみましょう。

困ったときは: スマホに通知が届かない場合
Androidの 設定 > アプリ > ShakeJ Terminal > 通知 がオンになっているか確認し、Macでステップ3の1行スクリプトを実行してフックが登録されているか確認してください。
STEP 7 FAQ

トラブル解決 FAQ(よくある質問)

1. 接続がタイムアウトする (Connection timed out)

多くの場合、Tailscaleがオフになっているか、Macがスリープ状態になっていることが原因です。

  • スマホとMacの両方でTailscaleがConnected(オン)になっているか確認してください。
  • Macが自動でスリープしないようにするには:Macの システム設定 > エネルギー(MacBookの場合は バッテリー > オプション)を開き、「ディスプレイがオフのときに自動でスリープさせない」をオンにしてください。
2. パスワードが合わない・認証に失敗する

Apple IDのパスワードではなく、Macのロック解除に使うログインパスワードを入力してください。また、アカウント名 (Username) にはフルネーム(漢字やスペース入り)ではなく、Macのターミナルで whoami と打ったときに表示される短い英数字のアカウント名(例: alex)を入力してください。

3. 接続できたのにセッションが1つも表示されない

Claude CodeやCodexをtmuxの外(通常のターミナルタブ)で起動しているためです。Macのターミナルでまず tmux new -s c1 を実行し、その画面の中で claude を起動すると一覧に表示されます。

4. 日本語や韓国語の文字が崩れる・ずれる

Macのターミナルでステップ3の1行インストールスクリプト(curl -fsSL https://terminal.gamely.cc/install.sh | bash)をもう一度実行してから再接続すると、文字コードと文字幅の設定が正しく反映されます。

5. 複数のMac(Mac miniとMacBookなど)を切り替えたい

それぞれのMacでステップ1〜3のセットアップを行い、ShakeJ Terminalアプリのホストを追加 (+) から各MacのTailscaleアドレスを登録すれば、複数台をいつでも切り替えて使えます。