端末をどこへでも届ける
Termbridgeはローカルサーバーを起動し、Cloudflare経由でトンネル接続して、tmuxセッションをあらゆるブラウザーにストリーミングします。
npx termbridge最新リリース 0.3.13 MIT Node 20+, tmux, cloudflared
# Create a tmux session and start the agent
tmux new-session -d -s claude "claude"
# Then attach Termbridge to it
termbridge --session claude実践例
パソコンで起動し、別のデバイスで端末を開きます。
ノートパソコンからスマートフォンへ
npx termbridgeはローカルサーバー、tmuxセッション、Cloudflareトンネルを起動し、1回限りのログインリンク付きQRコードを表示します。
コードをスキャンすると、トークンがCookieセッションに交換されます。--proxy 5173を追加すれば、端末の横にプレビュー画面を表示して開発サーバーを確認できます。
npx termbridge# Start your Vite app first
cd my-app && npm run dev # runs on port 5173
# Then start Termbridge with proxy
termbridge --proxy 5173モバイル対応
QRコードをスキャンすれば、スマートフォンのブラウザーで端末を開けます。
本物の端末
tmuxとnode-ptyが本物のPTYをxterm.jsに接続し、色表示とTUIに対応します。
Cloudflareトンネル
Quick Tunnelを使えば、ポート転送なしでローカルサーバーを公開できます。
トークンでログイン
QRリンクには90秒間有効な1回限りのトークンが含まれます。使用するとHttpOnlyおよびSecure属性付きのセッションCookieが設定され、CSRFチェックが行われます。1分あたりの使用回数は5回までです。セッションの有効期限はありません。
複数セッション
1つのサーバーで複数のtmuxセッションをホストし、アプリ内で切り替えられます。
1つのコマンド
npx termbridgeを実行すると、サーバー、Cloudflareトンネル、QRコードが起動します。macOSまたはLinuxでNode 20+、tmux、cloudflaredが必要です。Windowsには対応していません。
CLI優先
TTYの状態とQR出力を備えた、端末を中心に設計されたツールです。
QRで接続
実行のたびに、1回限りのログインリンクを含むQRコードを1つ表示します。使いたいデバイスでスキャンしてください。
開発サーバーのプレビュー
ローカルのViteアプリをプロキシし、端末の横にプレビューを表示できます。
HMRの中継
WebSocketプロキシにより、Viteのホットモジュール置換が動作します。
表示の切り替え
下部バーの表示シートから、端末とプレビューを切り替えられます。
フルスタックの開発環境
端末でコマンドを実行しながら、アプリの更新をリアルタイムで確認できます。
Termbridgeを選ぶ理由
ポート転送もVPNも不要
アカウント不要のCloudflare Quick Tunnelで、ローカルサーバーに公開HTTPSURLが割り当てられます。接続するデバイスに必要なのはブラウザーだけです。
全画面プログラムも動作
node-ptyがtmuxに接続し、256色対応の端末として認識されるため、htopやvimなどのTUIもローカルと同じように動作します。
ブリッジを終了してもセッションは継続
Ctrl+Cを終了するとトンネルとサーバーは閉じますが、tmuxセッションは実行され続けます。再起動時に--sessionを指定すると、既存のセッションに接続できます。
自分のマシンで実行
サーバー、WebSocket、端末レジストリは自分のパソコン上で動作し、既定では127.0.0.1で待ち受けます。Termbridgeは独自のバックエンドを運用しません。
との比較
別のデバイスから端末に接続する方法と、Termbridgeとの違い。
| ツール | 得意なこと | Termbridgeとの違い |
|---|---|---|
| ttyd | 得意なことttydはCJKやIME入力、ZMODEMやtrzszによるファイル転送、Sixel画像、SSL、基本認証に対応し、あらゆるコマンドをウェブ上で共有できます。macOS、Linux、BSD各種、OpenWrt、Windowsで動作します。 | Termbridgeとの違いTermbridgeはトンネル、1回限りのQRログインリンク、スマートフォン用操作バーを追加し、再起動後もシェルが残るようtmuxで管理します。macOSとLinux向けに設計されています。 |
| sshx | 得意なことsshxは1つのコマンドで端末を誰とでも共有できます。無限キャンバス上で共同作業者のカーソルが見え、エンドツーエンド暗号化に対応しています。Linux、macOS、Windows向けのバイナリがあります。 | Termbridgeとの違いTermbridgeは自分の端末への接続を目的としています。実行ごとに1回だけ使えるログインリンクを発行し、通信はCloudflareトンネルを通って自分のマシン上のサーバーに届きます。 |
| Tailscale SSH | 得意なことTailscale SSHでは、tailnet内のSSH接続の認証と認可をTailscaleが担います。ノードキーを使ってWireGuardで暗号化され、Tailscaleを実行するあらゆるデバイスから接続できます。 | Termbridgeとの違いTermbridgeなら、接続先のデバイスにクライアントやプライベートネットワークは必要ありません。公開URLとQRコードが提供され、ブラウザーで端末を開けます。 |
出典、チェック済み
質問と回答
Termbridgeのドキュメントから、簡潔に回答します。
既定のモードでは、通信はお使いのパソコン上のTermbridgeサーバーに届くまで、Cloudflare Quick Tunnelを経由します。Termbridgeは独自のバックエンドを運用しません。Daytonaサンドボックスモードでは端末がDaytonaアカウント内のサンドボックスで動作し、直接モードではサーバーもそこで動作するため、Daytonaのプレビューリンクから接続します。
QRリンクには90秒間有効で1回だけ使えるトークンが含まれます。使用するとHttpOnlyセッションCookieが設定され、端末のWebSocket接続にもCSRFトークンが必要です。信頼できない相手にはQRコードやURLを共有しないでください。
はい。TERMBRIDGE_SESSIONS=3を設定すると、tmuxセッションが3つ起動します。アプリ内の端末切り替えメニューから切り替えられます。
公式には対応していません。TermbridgeはmacOSとLinux向けに設計されています。WSLで動作する可能性はありますが、テストされていません。
まだ対応していません。利用できるトンネルプロバイダーはCloudflareのみです。独自ホスト名の名前付きCloudflareトンネルを使うか、トンネルを無効にして独自の公開URLを指定するか、Daytonaの直接モードを利用できます。
ローカルモードではTermbridgeの実行中は接続が続き、パソコンがスリープするかTermbridgeが終了すると切断されます。tmuxセッションは維持されるため、Termbridgeを再起動し、新しいQRコードをスキャンして--sessionで接続できます。Daytonaの直接モードでは、サーバーはサンドボックス内で動作します。
Node 20+、tmux、cloudflaredをインストールし、npx termbridgeを実行してQRコードをスキャンすれば、スマートフォンのブラウザーで端末を開けます。