リバース接続でパブリック IP 不要
PC 上のアダプターは外向き接続のみ——パブリック IP もポートマッピングもトンネルも不要。あらゆるファイアウォールや社内ネットワークで動作します。
tunnelbox は opencode、Claude Code、Codex、DeepSeek Harness、OpenClaw、Hermes、Cursor、CodeBuddy、Kimi Code、TraeCode、Qoder をあなたのポケットに——ストリーミング出力の閲覧、タスクの投入、危険な操作の承認ができます。パブリック IP もポート転送も不要。
$ opencode serve --print-logs
[tunnelbox] リレー wss://relay.tunnelbox.top に接続中 …
[tunnelbox] ペアリングコード:8F3K-9Q2Z (10 分間有効)
[tunnelbox] スマホで QR をスキャンして開始:
└ またはスマホで tunnelbox アプリを開き、コードを手入力
[tunnelbox] ✓ エージェントを登録しました agentID: opencode-main
[tunnelbox] ✓ スマホの接続を待機中 …▍
主な機能
CLI / ヘッドレスエージェントのエコシステムに、統一されたリモートゲートウェイを——セッション、ストリーミング、権限、コマンドを 1 つのプロトコルに正規化。
PC 上のアダプターは外向き接続のみ——パブリック IP もポートマッピングもトンネルも不要。あらゆるファイアウォールや社内ネットワークで動作します。
opencode、Claude Code、Codex などを同時に実行。それぞれ独立してペアリング・接続し、スマホで切り替えられます。同じタスクを別のエージェントで比較することも可能です。
bash の実行やファイル編集の前に、権限リクエストがスマホのカードに届きます——許可 / 拒否 / 常に許可をワンタップで。危険な操作が自動承認されることはありません。
ターミナルに QR コードとペアリングコードが表示されます。tunnelbox アプリの「スキャンしてペアリング」ですぐ接続。コードは 1 回限りで 10 分後に失効します。
セッション一覧 / ストリーミング出力 / 権限承認 / スラッシュコマンドをすべて 1 つのプロトコルに正規化——スマホ側は背後がどのエージェントかを気にする必要がありません。
リレーはステートレスな転送のみを行い、会話内容を保存しません。通信はすべて TLS。プライバシーを重視する方はリレーをセルフホストして管理できます。
対応エージェント
各エージェントは、そのセッション / ストリーミング / 権限を統一リモートプロトコルに正規化するアダプターに対応——リレーとスマホ側は何も意識しません。
| エージェント | アダプター | 種類 | ステータス |
|---|---|---|---|
| O opencode | プロセス内プラグイン(@tunnelbox/opencode) | A | ✅ MVP · 実装済み |
| DS DeepSeek Harness (dsh) | ネイティブ Cordis プラグイン(@tunnelbox/dsh-tunnelbox) | B | ✅ 実装済み |
| CC Claude Code | claude-agent-sdk ブリッジ(別プロセス) | B | ✅ 実装済み |
| CX Codex | codex app-server ブリッジ(別プロセス) | B | ✅ 実装済み |
| OW OpenClaw | 公式 Gateway operator WS · Gateway ≥ 2026.6.11 | B | ✅ 実装済み · テスト済み(6.35 / 9.4) |
| HM Hermes | hermes chat -Q -q oneshot ブリッジ(Native プラグイン含む) | B | ✅ 実装済み |
| CS Cursor | Cursor CLI agent acp(別プロセス) | B | ✅ 実装済み |
| CB CodeBuddy | CodeBuddy CLI codebuddy --acp(別プロセス) | B | ✅ 実装済み |
| K Kimi Code | Kimi Code CLI kimi acp(別プロセス) | B | ✅ 実装済み |
| T TraeCode | TraeCode CLI traecli acp serve(別プロセス) | B | ✅ 実装済み · 実験的 · E2E 未検証 |
| Q Qoder | Qoder CLI qoder --acp(別プロセス) | B | ✅ 実装済み |
A プロセス内プラグイン · エージェントのサーバープロセス内で動作;B CLI / ヘッドレスブリッジ · 別のコネクタプロセスが非対話モードを駆動。同種の複数インスタンスに対応(opencode1 / opencode2 …)。
仕組み
エージェントエコシステムのための統一リモートゲートウェイ:スマホはリレーに接続し、PC 上のアダプターが逆方向に接続——メッセージは双方向に流れます。
Android · iOS アプリ
クラウドサーバー · セルフホスト可能
エージェントアダプター
リバース接続は NAT やファイアウォールを自然に貫通——社内ネットワークや寮でも問題なく動作し、パブリック IP やトンネルサービスは不要です。
低コストでスケールしやすい。ノードはステートレスで自動再接続し、セッションデータは常に PC 上のエージェントのローカルストレージにのみ存在します。
初回スキャンでセッショントークンを取得し、以後は自動接続。MySQL を設定すればリレー再起動時も再ペアリング不要です。
ダウンロード
公式サイトから tunnelbox アプリをダウンロード(Android / iOS 対応)。QR コードをスキャンするか、下のボタンをタップしてください。
スキャンしてアプリをダウンロード
ネイティブモバイルアプリ:スキャンでペアリング、リモートセッション、ストリーミング出力、危険操作の承認、プッシュ通知。
チュートリアル
どのエージェントも同じ流れ:PC にアダプターをインストール → スマホでスキャン → 開始。下のセットアップ手順では各エージェントのコマンドを順番に掲載——ワンクリックでコピーできます。
使用するエージェントのアダプターをインストールして実行します(コマンドは下の「セットアップ手順」)。起動するとターミナルに QR コード + ペアリングコード が表示されます。
公式サイトから tunnelbox アプリ(Android / iOS)をダウンロードしてインストールし、ログインします。
「スキャンしてペアリング」をタップし、ターミナルの QR コードを写して自動接続——またはペアリングコードを手入力。ペアリング後、エージェントはホーム一覧に表示されます。
エージェントのチャット画面を開きます:タブでセッションの切り替え / 作成、プロンプト送信、ストリーミング出力をリアルタイム表示、カードで危険操作を承認、いつでも「停止」できます。
下からエージェントを選び、手順どおりに進めてください——各コマンドにワンクリックコピーのボタンがあります。
まず opencode 本体をインストールします(macOS / Linux は公式ワンライナー、Windows は WSL か Chocolatey / Scoop):
# macOS / Linux (official one-line installer)
curl -fsSL https://opencode.ai/install | bash
# Windows (PowerShell): Chocolatey / Scoop / WSL
choco install opencodeインストール後、opencode --version でバージョンが表示されれば成功です。
// opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@tunnelbox/opencode"]
}--print-logs 推奨)。プラグインがリレーに接続し、QR コードとペアリングコードを表示します。opencode 内で「スマホ用ペアリングコードを表示」と頼むか、いつでも /pair を入力すると、チャットにペアリングコードとスキャン可能な QR が表示されます。opencode serve --print-logs✅ ターミナルに [tunnelbox] の QR コードが表示されれば完了——スマホでスキャンしてペアリングします。
公式リレーを使う場合、設定は不要です。独自のリレーを使う場合は、TUNNELBOX_RELAY_URL 環境変数を設定するか、opencode.json のオブジェクト形式で options.relayUrl を渡します:
// opencode.json (custom relay)
{
"plugin": [{ "package": "@tunnelbox/opencode", "options": { "relayUrl": "wss://relay.tunnelbox.top" } }]
}状態は ~/.tunnelbox/remote-state.json に保存されます(エージェント ID と言語のみ)。1 台の PC で複数のアダプターを実行でき、それぞれ独立してペアリングし、スマホからワンタップで切り替えられます。
まず Claude Code 本体をインストールします(公式ネイティブインストーラー——自動更新、追加ランタイム不要):
# macOS / Linux / WSL (official native installer)
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iexインストール後、claude --version が動作すれば成功。初回起動時は有料の Claude アカウントでログインします。
# no repo clone needed
npm install -g @tunnelbox/claude-codetunnelbox-claude-code✅ QR コードが表示されれば完了——スマホでスキャンしてペアリングします。
すべて任意です。よく使う例:
TUNNELBOX_RELAY_URL=wss://relay.tunnelbox.top \
TUNNELBOX_CWD=D:/workspace/project \
TUNNELBOX_CLAUDE_MODE=plan \
tunnelbox-claude-codeツール承認は既定でスマホに届きます(許可 / 拒否 / 常に許可)。切断または 120 秒のタイムアウトで自動的に拒否(fail-closed)——自動承認はされません。モード:default / plan / acceptEdits / bypassPermissions。
codex app-server サブコマンドに対応した Codex CLIまず Codex CLI 本体をインストールします(公式インストーラーまたは npm):
# macOS / Linux (official installer)
curl -fsSL https://chatgpt.com/codex/install.sh | sh
# Windows PowerShell
irm https://chatgpt.com/codex/install.ps1 | iex
# or Node: npm install -g @openai/codex
npm install -g @openai/codexcodex --version で確認し、codex login でログインします。アダプターの自己チェック:tunnelbox-codex --check(codex app-server が利用可能か確認)。
# no repo clone needed
npm install -g @tunnelbox/codextunnelbox-codex✅ QR コードが表示されれば完了——スマホでスキャンしてペアリングします。
すべて任意です。よく使う例:
TUNNELBOX_RELAY_URL=wss://relay.tunnelbox.top \
TUNNELBOX_CODEX_SANDBOX=workspace-write \
tunnelbox-codex
# optional: TUNNELBOX_CODEX_APPSERVER_ARGS="--stdio"承認と選択はネイティブ:codex はツール承認リクエストと選択式の質問をそのままスマホに送り(許可 / 拒否、選択肢の選択)、推論はリアルタイムにストリーミングされます。切断 / タイムアウトは自動拒否(fail-closed)。許可される範囲は引き続き TUNNELBOX_CODEX_SANDBOX に従います(read-only / workspace-write / danger-full-access)。
$DSH_HOME/.credentials.yaml、既定は ~/.dsh)まず dsh 本体をインストールします(DeepSeek 公式 npm パッケージ。Node.js ^22.19 または >=24 が必要):
# Install dsh globally (official package)
npm install -g @deepseek-ai/dsh
# or try instantly: npx @deepseek-ai/dsh webインストール後、dsh --version が動作すれば成功。初回利用時に DeepSeek API キーを設定します($DSH_HOME/.credentials.yaml に保存)。
dsh plugin --profile tunnelbox add @tunnelbox/dsh-tunnelbox
dsh --profile tunnelbox --dump-config # verify the tunnelbox-dsh layerdsh --profile tunnelbox✅ QR コードが表示されれば完了。モデル / 作業ディレクトリは profile の cordis.yml で設定できます。
すべて任意です。profile 設定の例(cordis.patch.yml):
- id: tunnelbox-dsh
config:
relayUrl: 'wss://relay.tunnelbox.top'
model: 'deepseek-v4-flash'
cwd: 'D:/workspace/project'承認は dsh の approval / sandbox-policy に従います(既定は workspace-write + ask)——危険な操作はスマホに届きます。複数インスタンスを実行するには、それぞれ異なる DSH_HOME を設定します。
まず OpenClaw をインストールし(公式インストーラー)、onboard ウィザードを完了します:
# macOS / Linux (official installer)
curl -fsSL https://openclaw.ai/install.sh | bash
# Windows PowerShell
iwr -useb https://openclaw.ai/install.ps1 | iex
# finish the setup wizard after install
openclaw onboardopenclaw が動作し、Gateway が実行されていれば準備完了です。
# no repo clone needed
npm install -g @tunnelbox/openclawアダプターは ~/.openclaw/openclaw.json から Gateway トークンを自動的に読み取ります(または TUNNELBOX_OPENCLAW_TOKEN)。Gateway がデバイス承認を求める場合は、一度承認してください:
openclaw devices list # note the requestId
openclaw devices approve <requestId>tunnelbox-openclaw✅ デバイスを承認すると QR コードが表示されます——スマホでスキャンしてペアリングします。
すべて任意です。よく使う例:
TUNNELBOX_RELAY_URL=wss://relay.tunnelbox.top \
TUNNELBOX_OPENCLAW_GATEWAY_URL=ws://127.0.0.1:18789 \
tunnelbox-openclawセッション削除は Gateway 経由で完全削除されます(sessions.delete、operator.admin が必要)。アダプターは gateway.auth.token / password を自動検出します(設定、環境変数、実行中の Gateway プロセス、または 2026.9.1 以降の認証情報ファイル)。TUNNELBOX_OPENCLAW_TOKEN で上書き、--check-gateway-auth で確認、--save-token で保存、TUNNELBOX_OPENCLAW_AUTOSTART=start|install で Gateway を自動起動できます。承認(exec/plugin)とツールカード(コマンド引数付き)はスマホに届きます。対話式の選択 / 質問カードは Gateway ≥ 2026.7(question.*)が必要で、古い Gateway では承認またはプレーンテキストとして表示されます。
hermes setup で設定)まず Hermes Agent をインストールし(公式インストーラー)、セットアップを完了します:
# official installer
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
# finish setup after install
hermes setuphermes chat -Q -q "hi" が応答すれば準備完了です。
# no repo clone needed
npm install -g @tunnelbox/hermestunnelbox-hermes✅ QR コードが表示されれば完了——スマホでスキャンしてペアリングします。
すべて任意です。よく使う例:
TUNNELBOX_RELAY_URL=wss://relay.tunnelbox.top \
TUNNELBOX_HERMES_MODEL="anthropic/claude-sonnet-4" \
tunnelbox-hermes注意:このヘッドレスアダプターはスマホ承認を提供しません。危険な操作は hermes 自身のセキュリティポリシーで制御されます(fail-closed)。セッションは実際の Hermes セッションで継続します(初回ターン後に id を自動検出)。対話セッションの承認 / 質問フローは Hermes 公式ネイティブプラグイン(native-plugin/)にあります。
まず Cursor CLI 本体をインストールします(公式インストーラー):
# macOS / Linux (official installer)
curl https://cursor.com/install -fsS | bash
# Windows PowerShell
irm 'https://cursor.com/install?win32=true' | iexagent -p "hello" が正常に出力すれば準備完了(ヘッドレス利用は Cursor の課金対象)。
# no repo clone needed
npm install -g @tunnelbox/cursortunnelbox-cursor✅ QR コードが表示されれば完了——スマホでスキャンしてペアリングします。
すべて任意です。よく使う例(plan モード + ファイル編集を許可):
TUNNELBOX_RELAY_URL=wss://relay.tunnelbox.top \
TUNNELBOX_CURSOR_MODE=plan \
TUNNELBOX_CURSOR_FORCE=1 \
tunnelbox-cursorスマホ承認は利用できません(Cursor の hooks は IDE / Cloud agent 専用で、ヘッドレスの agent -p には外部承認リレーがありません)。また print モードでは思考が抑制されます(推論カードなし)。実行される内容は permissions の allow/deny + --force/--yolo + --sandbox で決まります。既定は読み取り専用(--force なしではエージェントは提案のみで編集しません)。実際に編集するには TUNNELBOX_CURSOR_FORCE=1 を設定します。CLI がまだない場合:macOS / Linux は curl https://cursor.com/install -fsS | bash、Windows は irm 'https://cursor.com/install?win32=true' | iex。
まず CodeBuddy CLI 本体をインストールします(npm グローバルインストール):
# install the CodeBuddy CLI
npm install -g @tencent-ai/codebuddy-code
# first login (or use CODEBUDDY_API_KEY)
codebuddycodebuddy --version でバージョンが表示されれば準備完了。初回実行にはログインが必要です。
# no repo clone needed
npm install -g @tunnelbox/codebuddytunnelbox-codebuddy✅ QR コードが表示されれば完了——スマホでスキャンしてペアリングします。
すべて任意です。よく使う例(plan モード):
TUNNELBOX_RELAY_URL=wss://relay.tunnelbox.top \
TUNNELBOX_CODEBUDDY_MODE=plan \
tunnelbox-codebuddycodebuddy --acp(ACP)を駆動します。ツール承認はスマホに届きます(許可 / 拒否 / 常に許可)。オフラインまたは 120 秒のタイムアウトで自動拒否(fail-closed)。選択 / プラン / 質問はネイティブ ACP(AskUserQuestion / ExitPlanMode / elicitation)。未ログインの場合は codebuddy を一度実行してログインします(または CODEBUDDY_API_KEY を設定)。
まず Kimi Code CLI 本体をインストールし(公式スクリプトまたは npm)、一度実行して /login を送信します:
# macOS / Linux (official installer)
curl -fsSL https://code.kimi.com/kimi-code/install.sh | bash
# Windows PowerShell
irm https://code.kimi.com/kimi-code/install.ps1 | iex
# first login
kimi # then send /loginkimi --version でバージョンが表示されれば準備完了。初回実行には /login が必要です。
# no repo clone needed
npm install -g @tunnelbox/kimitunnelbox-kimi✅ QR コードが表示されれば完了——スマホでスキャンしてペアリングします。
すべて任意です。よく使う例(plan モード):
TUNNELBOX_RELAY_URL=wss://relay.tunnelbox.top \
TUNNELBOX_KIMI_MODE=plan \
tunnelbox-kimikimi acp(ACP)を駆動します。公式の機能マトリクスにはネイティブの session/list|resume|delete が含まれます。ツール承認と質問プロンプトは session/request_permission を共有してスマホに届きます。オフラインまたは 120 秒のタイムアウトで自動拒否(fail-closed)。未ログインの場合は kimi を一度実行して /login を送信します。
公式ドキュメントに従って TraeCode CLI 本体をインストールし、ログインします:
# see https://docs.trae.cn/cli_what-is-trae-cli
traecli logintraecli --version が動作し、traecli login が成功すれば準備完了です。
# no repo clone needed
npm install -g @tunnelbox/traetunnelbox-trae✅ QR コードが表示されれば完了——スマホでスキャンしてペアリングします。
すべて任意です。よく使う例(auto 権限モード):
TUNNELBOX_RELAY_URL=wss://relay.tunnelbox.top \
TUNNELBOX_TRAE_PERMISSION_MODE=auto \
tunnelbox-traetraecli acp serve(ACP)を駆動します。公式ドキュメントは ACP 対応のみを記載し機能マトリクスを公開していないため、このアダプターは実験的です——ストリーミング / 承認 / 選択 / 中止は実機の CLI で検証してください(npm run probe)。承認は既定で fail-closed。TraeCode CLI は TRAE エンタープライズ フラッグシップ プランが必要で、既定は Max モードです(クォータに注意)。
まず Qoder CLI 本体をインストールし(npm)、ログインします:
# install Qoder CLI
npm install -g @qoder-ai/qodercli
# log in (or set QODER_PERSONAL_ACCESS_TOKEN)
qoder loginqoder --version でバージョンが表示され、ログイン済みなら準備完了です。
# no repo clone needed
npm install -g @tunnelbox/qodertunnelbox-qoder✅ QR コードが表示されれば完了——スマホでスキャンしてペアリングします。
すべて任意です。よく使う例(auto 権限モード):
TUNNELBOX_RELAY_URL=wss://relay.tunnelbox.top \
TUNNELBOX_QODER_PERMISSION_MODE=auto \
tunnelbox-qoderqoder --acp(ACP)を駆動します。ツール承認はスマホに届きます(許可 / 拒否 / 常に許可)。オフラインまたは 120 秒のタイムアウトで自動拒否(fail-closed)。選択 / プラン / 質問は ACP 権限チャネルを経由します。未ログインの場合は qoder login を実行するか QODER_PERSONAL_ACCESS_TOKEN を設定します。
plugin/ 配下にある各アダプターの README にあります。docker compose up -d でリレーをワンコマンドでデプロイ(MySQL 永続化は任意)。nginx.conf テンプレートがリバースプロキシ HTTPS を提供し、NATS_URL を設定すると複数ノードにスケールできます。FAQ
使えます。PC 上のアダプターは外向きの WebSocket 接続(リバース接続)のみを行います。パブリック IP、ポート転送、トンネルは不要で、NAT やファイアウォールを貫通するため社内ネットワークでも問題なく動作します。
リレーはステートレスな転送のみを行い、会話内容を保存しません。通信はすべて TLS。ペアリングコードは 1 回限りで 10 分後に失効し、セッショントークンは SHA-256 ハッシュで保存されます。プライバシーを重視する方はリレーをセルフホストして、データを自分のサーバーに留められます。
PC 上のエージェントのローカルストレージにのみ保存されます。セッションを開くとアプリがリアルタイムで PC から履歴を取得します。PC がオフまたはプラグインがオフラインの間は取得できません。リレーはクラウド同期やバックアップを行いません——これは意図的なプライバシー優先・低コストのトレードオフです。
opencode、Claude Code、Codex、DeepSeek Harness、OpenClaw、Hermes、Cursor に対応し、同種の複数インスタンス(例:opencode1 / opencode2)も利用できます。それぞれ独立してペアリング・接続し、スマホの一覧から切り替えたり、同じタスクを別のエージェントで並べて比較できます。
はい。bash やファイル編集などのツールが呼び出されると、各エージェントのネイティブな ask / 承認モデルに従ってリクエストがスマホに届き、許可または拒否した後にのみ実行されます。ツールごとに「常に許可」を選ぶこともできます(現在のセッションのみ)。
無料かつオープンソースです(リポジトリの LICENSE を参照)。リレーはセルフホスト可能:Docker / docker compose でワンコマンドでデプロイでき、nginx リバースプロキシで HTTPS、MySQL 永続化、NATS マルチノードスケールに対応します。Android / iOS アプリは公式サイトで入手できます。
tunnelbox はスマホからのリモート操作を中心に設計されています:リレーによるリバース接続とネイティブ Android / iOS アプリで、PC 上の複数の CLI エージェントをどこからでも操作できます。統一プロトコル、ステートレスリレー、セルフホストのしやすさにより、1 台のマシンで多数のエージェントを簡単に運用・管理できます。
PC にアダプターをインストールし、スマホを取り出してスキャン。すべてのエージェントが待機しています。