メインコンテンツまでスキップ

AgentMux:リモートサーバー上の AI コーディングエージェントのコントロールプレーン

· 約4分

AgentMux をオープンソースにしました。リモートサーバーで動く AI コーディングエージェントを管理するデスクトップアプリです。Go + Wails 3 + React、MIT ライセンス。

私のコーディングエージェントは、結局ほとんどリモートサーバーで動かすようになりました。一度動き出すと数十分は走るので、会議に持ち出され、スリープし、ネットワークも切り替わるノート PC は向いていません。面倒なのは管理のほうです。ターミナルを開き、SSH でログインし、このプロジェクトがどのディレクトリだったか思い出し、エージェントを起動する。マシンとプロジェクトが増えると誰が何を動かしているか覚えていられなくなり、接続が切れればフォアグラウンドで起動したものも一緒に消えます。

AgentMux はそのためのものです。すべてのサーバー・プロジェクト・エージェントが一本のツリーに並び、稼働状態で色分けされるので、何が動いていてどこまで進んでいるかが一瞥でわかります。

重要なのは、起動したものがすべてサーバー上の tmux セッションで動き、デスクトップ側はプロセスを持たないことです。タブを閉じるのはデタッチだけ。アプリを終了しても、回線が切れても、蓋を閉じてもエージェントは止まらず、戻ってくればターミナルはスクロールバックごと元の位置にあります。

ほかにできることは、だいたいこのあたりです。

  • 本物のターミナル。xterm.js がエージェント自身のペインに直結するので、止めずに途中から入力を引き継げます
  • 一つの指示を複数のエージェントへ。届いたかどうかは一台ずつ受領票で返ります
  • SFTP のファイルブラウザ。テキストファイルはダブルクリックで Monaco が開き、保存はアトミックでパーミッションも維持、他から変更されていれば知らせます
  • ホストメトリクス。CPU の内訳とコア別、メモリ、ディスク、ネットワーク、温度、NVIDIA GPU の使用率と VRAM も
  • インストールパネル。そのマシンに足りないエージェント CLI(Claude Code、Codex、Gemini CLI、OpenCode、Aider、Cursor CLI)を検出し、tmux 内でインストールします

パスワードと鍵のパスフレーズはディスクに触れる前に AES-256-GCM で暗号化し、マスターキーは OS のキーチェーンに置きます。フロントエンドが知るのは「設定済みかどうか」だけです。エージェントのモデルトラフィックは中継せず、API キーにも触れません。

試すなら リリースページ に macOS・Windows・Linux のビルドがあります(署名はしていないので、初回起動だけ一手間かかります)。ソースからのビルドには Go 1.25+ と Node 20+ が必要で、リモート側は tmux と SSH アカウントがあれば十分です。

git clone https://github.com/tan-zhuo/AgentMux.git
cd AgentMux
cd frontend && npm install && npm run build && cd ..
go build -o agentmux .
./agentmux

足りていないものも多いです。当初の設計にあったオーケストレーター AI は配管を通しただけ、タブ内の分割ペインはなし、ファイル転送は 1 ファイルずつ、メトリクス履歴は開いているパネルの中だけ。エディタは Monaco であって VS Code ではないので拡張機能は動きません。必要なら、そのマシンで code-server を動かして AgentMux が tmux で維持するほうが妥当です。

コードは github.com/tan-zhuo/AgentMux にあります。試用と issue を歓迎します。

COMMENTS