マシンの接続
Connecting the Machines (herdr.dev)
要約
Herdrの最新アップデートv0.9では、複数のマシンを単一のHerdrクライアントに接続できるようになり、エージェントやローカルマシンの管理が大幅に簡素化されました。SSH経由でリモートマシンを追加でき、同じTUI内でそれらのワークスペース、タブ、エージェントをローカルのものと並行して管理できます。将来的には、Herdr Cloudを通じてSSH設定不要でマシンを簡単に接続できるようになり、クロス・マシン・エージェント連携などの機能も強化される予定です。
全文翻訳
Connecting the Machines
Herdrの次のステップは、マシンの接続です。
Herdrはすでに70万以上のダウンロードと1,000近くのプラグインを持っています。それを支える大きなコミュニティがあり、人々はエージェントやローカルマシンの管理にそれを使用しています。
Herdrにはすでに--remoteオプションがあり、リモートマシンにアタッチできます。エージェントは数時間実行されることがあるため、常に稼働しているマシンで実行したい場合があります。エージェントがまだ作業中のためにラップトップを開いたままにしておきたくないでしょう。
また、私たちはラップトップを、すべてのコンピューティングリソースを依存する場所としてではなく、クライアントとして考え始めています。多くの人にとって、持ち運ぶラップトップに数千ドルを費やすよりも、どこか別の場所で高性能なマシンを実行する方が理にかなっています。VPSや、自分のセットアップにあるMac mini、あるいはその両方を持つことができます。
しかし、これまでは各マシンに個別のHerdrクライアントが必要で、通常は別のターミナルタブで実行していました。どこのエージェントが実行されているかを覚えておき、それらのタブを切り替えて確認する必要がありました。それがボトルネックでした。
人々は数ヶ月前からこれを求めていました。Herdrのプラグインシステムと素晴らしい貢献者のおかげで、すでにコミュニティによる回避策は存在します。しかし、Herdr自体はそれをサポートするように構築されていませんでした。
なぜこれに時間がかかったのか
tmuxやZellijのようなマルチプレクサは、1つのTUIクライアントが複数のマシンにまたがる独立したサーバーを管理することをサポートしていません。それはニッチなユースケースでした。エージェントがそれを変えています。今では、どこでもエージェントを実行し、どこからでもそれらを制御したいと考えています。
Herdrにはすでにクライアントとサーバーがありましたが、1つのクライアントが1つのサーバーにアタッチされていました。Herdrで見られるすべては、そのサーバーでレンダリングされていました。複数のサーバーをそのセットアップに持ち込むことは、1つのサーバーがそれらの接続すべてを集約するようにするか、UIの場所を変更することを意味していました。
クライアントがそれらのマシンを統合することを望んでいましたが、各サーバーは独自のターミナルとエージェントを実行し続けるようにしました。それはHerdr自体の構築方法を変更することを意味しました。だからこそ、これは予想よりも時間がかかりました。
0.9では、HerdrのアウターUIはクライアントでレンダリングされます。サーバーは引き続きセッションを所有し、ターミナルビューを提供します。クライアントは、1つのサーバーのインターフェース全体にアタッチするのではなく、それらの独立したサーバーを同じTUIにまとめることができるようになりました。
これにより、クライアントとランタイムを分離し続けることで、パフォーマンスの向上にもつながります。
マシンの接続
このアップデートにより、以下を実行できます。
herdr machine add workbox
SSHターゲットを指定すると、そのマシンのワークスペース、タブ、エージェントが、同じHerdr TUI内でローカルのものと並行して利用できるようになります。別のクライアントを開かずにマシンを切り替えることができます。切断しても、エージェントはそれ自身のマシンで実行され続けます。
[動画: Herdrにリモートマシンを追加する様子]
今のところ、それらのマシンはSSH経由で到達可能である必要があります。ローカルネットワーク上にあるか、インターネット経由で到達可能であるか、あるいはTailscaleのようなもので接続されているかのいずれかです。多くの開発者はすでにそのセットアップを持っています。
セットアップの詳細は、Connecting machinesドキュメントで確認できます。
これはHerdrのマルチマシンサポートの最初のバージョンです。TUIはマシンを統合できるようになりましたが、エージェントCLIはまだ単一サーバー内で機能します。まだ他のマシンで実行されているエージェントを見ることはできません。
CLIもマシン間で機能するようにしたいと考えており、エージェントが異なるサーバーで実行されていても互いを見つけて連携できるようにしたいです。クロス・マシン・エージェント・コラボレーションは、この上に構築したいことの1つです。
それらのすべての機能を追加する前にこれをリリースしたかったのは、実際にそれを使用している人々からのフィードバックを得たかったからです。何が欠けていて、どこで問題に遭遇したかを教えてください。それが次に何を構築するかを決定するのに役立ちます。
1.0への道のり
このアップデートの後、私が望むのは、それらのマシンの接続をより便利にすることです。SSHについて考える必要も、複雑なネットワーク設定を扱う必要もありません。1つのHerdrアカウントを通じて、どこでもどんなマシンでも簡単に接続できるようになるべきです。
それがサンドボックス、仮想マシン、リモートサーバー、あるいは自分のセットアップにあるマシンであっても、Herdrをインストールして他のマシンに接続できるようになるはずです。
ここにHerdr Cloudが登場します。このリリースには間に合いませんでしたが、次に欠けているピースです。
目標は、単一のコマンドでマシンをリンクし、それらに到達する方法を心配するのをやめることです。Herdr Cloudは、それらの接続のためのミドルマンレイヤーを提供します。ターミナルトラフィックは、マシンとHerdrクライアント間でエンドツーエンドで暗号化されます。
あなたはまだあなた自身のマシンを持参します。Cloudはそれらを接続しますが、あなたのためにエージェントをホストするわけではありません。
Herdrが異なるマシン全体でターミナルとエージェントセッションを所有することは、その上に構築できるより興味深いものをもたらします。さらに探求したいことの1つは、エージェントセッションをマシン間で移動させることで、作業を開始する前にどこに配置するかを選択する必要がなくなることです。これには、マシンを接続する以上のことが必要ですが、Herdrが1.0に近づくにつれて私が考えているユースケースの1つです。
今のところ、0.9でSSH経由でマシンを接続できます。次のピースを試したい場合は、Herdr Cloudの待機リストに参加してください。