メインコンテンツにスキップ

Ghostty作者の新ターミナル「Rex」とは|Ghosttyとの違い・tmuxとの比較・入手方法

AIエージェントと開発
何ができるか:端末と多重化ツール(tmuxの役割)を1つにしたターミナル。アプリを閉じてもセッションがサーバー上で動き続け、別マシンのRexにも同じ画面で接続できる Ghosttyとの違い:Ghosttyは手元で動く高速な端末アプ…
作者

obelos

公開

2026年11月1日

更新日

2026年11月1日

要点

  • 何ができるか:端末と多重化ツール(tmuxの役割)を1つにしたターミナル。アプリを閉じてもセッションがサーバー上で動き続け、別マシンのRexにも同じ画面で接続できる
  • Ghosttyとの違い:Ghosttyは手元で動く高速な端末アプリ。RexはGhosttyの端末ライブラリ(libghostty)を土台に、セッションの永続化・リモート接続・CLIからの自動操作を加えた製品
  • 入手方法:2026年10月からmacOS版の公開テスト中(招待制)。Superlogicalの公開テスト案内から申し込む。無料・アカウント不要

Rexは、Ghosttyの作者Mitchell Hashimoto氏が率いるSuperlogicalが開発している、端末エミュレーターと多重化ツール(マルチプレクサー)を1つにしたターミナルアプリです。tmuxのような従来の多重化ツールとの違いは、次の3点にまとめられます。

  1. セッションをサーバーが持つ:アプリを閉じても、シェルやAIエージェントの処理はサーバー上で動き続ける。
  2. 解釈するのはクライアント側の1回だけ:サーバーは画面を組み立てず、生のバイト列を各クライアントに配る。描画は各クライアントのlibghosttyが行う。
  3. ローカルもリモートも同じ操作:別マシンのRexにも同じ画面で接続でき、rex CLI・Lua・APIから人もAIエージェントも同じように操作できる。

Rexとは

Rexは「今使っているターミナルをそのまま置き換える」ことを狙った製品で、主な機能は永続セッション、リモート接続、プログラムの稼働状況の表示の3つです。tmuxのように別の端末の中で動かすのではなく、Rex自体が端末です。

項目 内容
開発元 Superlogical(2026年7月29日に発表された新会社。Hashimoto氏はHashiCorpの共同創業者で、Ghosttyの作者)
基盤 Ghosttyから切り出した端末ライブラリ libghostty(MITライセンス)
提供状況 2026年10月5日にmacOS版の公開テストを開始。それまでは約50人の非公開テスト。10月28日時点で追加1万2,000人に招待を送付し、iOS版のテストも招待者全員に開放、Linux・FreeBSD向けサーバーのテストは約2,000人
価格 無料。アカウント不要で、クライアントもサーバーも直接は課金しない方針。サーバーはセルフホストでき、利用者のデータは見ない・共有しない
追加機能 2026年10月に、実行中・待機中のプログラムやAIエージェントの状態をサイドバーにまとめるActivity Modeを追加。プログラムが自分の状態(作業中・入力待ち・完了)を通知するOSC 7501という仕組みを使う

GhosttyとRexの違い

観点 Ghostty Rex
位置づけ 端末エミュレーター 端末+多重化ツール(tmuxの役割を内蔵)
開発元 Mitchell Hashimoto氏(オープンソース) Superlogical(Hashimoto氏が率いる新会社)
土台 Ghostty本体 Ghosttyから切り出したlibghostty
アプリを閉じたとき シェルやプログラムも終了する サーバー上で動き続け、開き直すと同じ画面に戻る
リモート接続 SSHで入る 組み込み。Tailscaleの識別情報でログイン
自動化 設定ファイルが中心 rex CLI(–json)・Lua・APIから人もAIエージェントも操作できる
提供状況 正式版を公開中 2026年10月からベータ(macOS中心)
料金 無料 無料(アカウント不要)

使い分けの目安:手元で速い端末がほしいだけならGhostty。AIエージェントの処理を長時間動かす、複数のマシンをまたいで作業する、という使い方ならRexが向いています。

前提:従来の多重化ツールの仕組み

シェルやプログラムの出力は、PTY(疑似端末)を経由して端末に届きます。tmuxなどの多重化ツールはこの経路の途中に入り、自分の中に「端末の画面モデル」を持って出力を解釈し、その差分を外側の端末エミュレーターへ送ります。

図

図

この構造では、同じバイト列をtmuxと外側の端末が2回解釈します。Hashimoto氏は、Ghostty・Kitty・Alacrittyのような最新の端末が、多重化ツール内部の端末処理より端末IOで最大100倍速いことがあると指摘しています。速い端末の前に遅い処理を挟むことになるのが、従来型の弱点です。

Rexの構造:解釈をクライアントに移す

Rexは解釈する場所を入れ替えます。サーバーはPTYを持ち、画面の差分ではなく生のバイト列を全クライアントへ複製します。各クライアントは自分のlibghosttyでそれを解釈して描画するので、解釈は1回で済みます。

図

図

接続の手順は3段階です。

  1. クライアントが接続すると、サーバーは一瞬だけPTYの処理を止め、画面サイズ・カーソル・現在の画面だけを独自のバイナリ形式で送る。ここで入力やスクロールができる状態になる
  2. 以降は生のバイト列をそのまま流し、各クライアントが独立して解釈する
  3. 過去のスクロール履歴は、新しいものから後追いで届く

解釈を担うのがクライアントのlibghosttyなので、Kitty画像プロトコルのような端末の新機能も、libghosttyが対応した時点で使えるようになります。一方、分割ごとに独立したPTY接続を持つため、tmuxのような「1つの画面の中にペインを入れ子で描く」仕組みはありません。

4つの部品:セッション・ウィンドウ・ブロック・クライアント

Rexの設定やCLIは、セッション・ウィンドウ・ブロック・クライアントの4つの名詞で組み立てられています。中身はすべてサーバーが持ち、クライアントは接続して描画し、切り離すだけです。

図

図

サイドバーには「ホスト(サーバー)→ セッション → ウィンドウ → ブロック」の階層がそのまま表示されます。プロジェクトごとにセッションを分けておくと、どのマシンのどの作業で何が動いているかを、そのまま画面上で追えます。

永続化とリモート接続

macOSアプリは同じMac上で自前のRexサーバーを動かし、さらに他のマシンのRexサーバーにも接続できます。ローカルでできる操作はリモートでもできる、というのが設計の原則です。

図

図
  • 実際のシステムログイン:リモート接続はSSHに似ていますが、SSHではありません。whoに表示され、ログインシェルが読み込まれ、ユーザーごとの制限も効きます。Hashimoto氏は自分のVPSでSSHを動かさず、Rexだけで入っています。
  • 認証はTailscaleの識別情報:tailnet上の身元をそのまま使います。どの経路で誰として接続したかはrex whoamiで確認できます。既存のSSH鍵も尊重されます。
  • 永続化:セッションはサーバー上にあるので、ビルド中にアプリを閉じても、AIエージェントの実行中にRexを更新しても、処理は止まりません。開き直すと同じセッションに戻ります。
  • 応答性:リモートでも手元と同じ感覚で操作できるよう、Moshの設計を参考にしています。

自動化:rex CLI・Lua・AIエージェント

画面でできる操作は、すべてrex CLIとLuaからも実行できます。人が使うのもAIエージェントが使うのも同じCLIなので、エージェントに別のペインを開かせ、そこでテストを動かし、結果を読み取らせるといった操作がそのまま書けます。

図

図

Rexが開く端末にはrexが自動でPATHに入り、REX_SESSION・REX_BLOCK・REX_SERVERの3つの環境変数が設定されます。そのため、ペインの中でrex splitを実行すると、そのペイン自身が分割されます。

rex ls                              # セッション一覧
rex send -s build -w 2 'make test'  # buildセッションのウィンドウ2へ入力
rex capture -b logs                 # logsというブロックの画面を取得
rex -S studio ls                    # studioというホストのセッション一覧
  • スクリプト向けの出力:多くのコマンドが--jsonに対応し、終了コードも決まっています(0:成功、1:失敗、2:引数の誤り、3:対象がないか曖昧、4:サーバーに届かない)。
  • Luaでの拡張:設定は~/.config/rex/init.luaに書きます。rex.actionで定義した独自操作は、組み込みの操作と同じようにキーに割り当て、コマンドパレットから検索し、rex doでCLIから実行できます。
  • マシンをまたぐ指示:Hashimoto氏は「昨夜自分のMac Studioで回したベンチマークを同僚のMacで回し直し、両方の結果を手元のMacで比較する」といった指示を、エージェントがRex経由で実行できると紹介しています。
  • MCPからの利用:Rex本体の窓口はCLIです。MCP対応のエージェントから使う場合は、rex CLIを包むコミュニティ製のMCPサーバー(rex-mcp)があります。

ベータ版を使ったレビューでの評価

YouTubeのレビュー動画「Rex beta first look: will it replace my terminal?」では、自作ターミナルを日常的に使っている投稿者が、Rexのベータ版を約24時間使ったうえで「自作ターミナルから乗り換える」と結論づけています。評価点と課題は次のとおりです。

評価点

  • Tailscaleのネットワーク(tailnet)にある別のマシンのRexに直接つなぎ、そのセッションを手元で操作できる
  • アプリを終了しても処理はサーバー側で続き、再起動するとタブと実行中の処理が元に戻る
  • ホスト・セッション・タブ・ペインの階層がサイドバーに表示され、構造がひと目で分かる
  • テーマ・フォント・キーバインドを設定画面(GUI)で変更できる
  • ベータ版でも動作が安定している
  • CLIとAPIの自由度が高く、自作ターミナルで使っていたフローティングペインなどを数分で再現できた

課題

  • 投稿者が使うGitワークツリー管理で、.gitignore対象のファイル(環境変数ファイルやビルド済みの依存ファイル)を新しいワークツリーへ引き継ぐ機能が標準にない

公開情報から分かる制約として、ほかに次の点があります。

  • 利用できるクライアントは現時点でmacOS版が中心。Linux・Windows版のクライアントは開発中
  • tmuxのウィンドウ内ペイン分割の仕組みや .tmux.conf はそのまま移せない(ctrl+b>c のようなプレフィックス操作はLua設定で再現できる)
  • 設定ファイルの再読み込みは手動で、サーバーのあるマシン上でしか実行できない
  • iTerm2のような、全ペインへの同時入力(ブロードキャスト)機能はない

tmuxとの比較

Rexはtmuxの役割(永続化・セッション・分割・リモートからの再接続)を、別の構造で置き換えます。

観点 Rex tmux
立ち位置 端末アプリそのもの(端末+多重化) 既存の端末の中で動く多重化ツール
出力の解釈 クライアントのlibghosttyが1回だけ tmux内部と外側の端末で2回
分割の実体 分割ごとに独立したPTY接続を、ネイティブのタブ・分割で表示 1つの端末画面の中にペインを描く
スクロール クライアントごとに独立 1人がスクロールすると全員の画面が動く
リモート 組み込み。Tailscaleの識別情報で実際にログイン SSHで入ってからアタッチ
設定 Lua(init.lua) .tmux.conf
自動化 rex CLI(--json)、Luaアクション、サーバーAPI CLIとシェルスクリプト
成熟度 2026年10月にベータ開始、macOS中心 数十年の実績、ほぼすべての環境で動く

まとめ

Rexの本質は「多重化ツールが端末をもう1つ抱え込む」構造をやめ、サーバーは配信と状態の保持、クライアントは解釈と描画、と役割を分けた点にあります。この分担によって、高速な描画、アプリを閉じても続くセッション、ローカルとリモートを区別しない操作が同時に成り立ちます。AIエージェントを長時間動かし、複数のマシンにまたがって作業する開発スタイルとの相性が良い設計です。

関連記事

エージェントの書き込み増加に対応する基盤の刷新は、GitHubの事例で解説しています。

GitHubのアーキテクチャ刷新とAzure移行を解説|AIエージェントで書き込み5倍、Git基盤を保存と計算に分ける

AIコーディング基盤の費用と運用は、Revolutの事例で整理しています。

オープンモデル自社運用でAIコーディング費用を1/10に:Revolutの事例と他社比較

AIに読ませるドキュメントの書き方は、次の記事で紹介しています。

AIは「おすすめ」では動かず、「失敗する」と書くと動く――『AX Practitioner Playbook』の学び

参考リンク

次に読む