harnsy Max0.9.0 から
メインのマシンは NAT の内側に置けます。ポートは誰も開けません。
harnsy 0.9.0 から利用できます。ホスト型リレーはベータ版です。
NAT の内側にあるノート PC、自宅のコンピューター、サーバーを、クラスターのメインのマシンにできます。メインのマシンと、リレー経由で参加する各メンバーが、リレーへ外向きに接続し、リレーは両者のあいだでバイトを渡すだけです。NAT の内側のメンバーにリレーは要りません。到達できるメインのマシンへ直接参加します。
あなたのマシン間の TLS
双方が外へ接続する。
メインのマシンとメンバーが、それぞれリレーへの接続を開きます。ポートの転送は不要で、どちらのマシンにも公開アドレスは要りません。
リレーはバイトをコピーするだけ。
メンバーのストリームを、メインのマシンがそのために開いたストリームにつなぎ、以後は双方向にバイトをコピーします。読むことも、解析することも、保存することもありません。
TLS は、あなたのマシン同士で通る。
ストリームの中では、クラスター自身の TLS がエンドツーエンドで使われます。メンバーは、参加トークンに入っているピンでメインのマシンの証明書を確認するため、リレーがメインのマシンになりすますことはできません。ピンのないリレー経由の参加は拒否されます。
リレーに見えるものを、正確に。
見えるのは、誰が(メインのマシンのリレー上の ID のハッシュ。当社のホスト型リレーでは、ライセンス ID のハッシュも)、いつ、どれだけ通信したか、です。接続を切ることはできますが、中身を読むことも変更することもできません。ログには1ストリームにつき1行が残ります。ハッシュ化された ID、ネットワーク単位に丸めたクライアントのアドレス(IPv4 は /24、IPv6 は /48)、送受信のバイト数、継続時間、終了した理由です。名前も、メッセージも、トークンも残りません。
要点だけ。
メインのマシンで、マスターにして、リレーをオンにし、harnsy を再起動して、参加用の行を発行します。もう一方のマシンでは、その行を貼り付けます。手順のすべてと、そのとき見えるものは、ガイドにあります。
直接のメンバーとリレー経由のメンバーを同時に。
1台のメインのマシンに、同じネットワークのメンバーとリレー経由のメンバーを同時に持たせられます。
当社のホスト型(ベータ)。
harnsy Max当社のホスト型リレーはベータ版で、harnsy Max に含まれます。メインのマシンは、ライセンスサービスから、利用のための 1日分の許可であるチケットを受け取ります。専用のキーで使う自前のリレーは計画中で、まだ利用できません。
リレーを使う場面
メインのマシンが自宅にある
家庭用ルーターの内側にあるノート PC や Mac で、公開アドレスはありません。サーバーやほかのマシンはリレー経由で参加し、ポートを開ける必要はなく、ノート PC が別のネットワークへ移っても、メンバーが使うアドレスは変わりません。
リレーに見えるのは、どのマシンが(ハッシュとして)、いつ、どれだけ通信したかです。メッセージ、トークン、キーは見えません。
同僚が自分のログインで参加する
同僚のマシンは、自分の Claude、Codex、OpenCode のログインのまま、リレー経由であなたのメインのマシンに参加します。ログインは同僚のマシンに残り、harnsy Max は同僚自身のキーを使うか、メインのマシンの席を借ります。
メインのマシンには、エージェント名、ハーネス、状態、フォルダー、メッセージが見えます。ログインとキーは見えません。
公開アドレスのないサーバー
サーバー自身がメインのマシンで、ほかから到達できないなら、メンバーはリレー経由で参加します。ポート転送も VPN も要りません。
メンバーでしかないサーバーにリレーは要りません。到達できるメインのマシンへ直接参加します。
同じネットワークのメンバーと、そうでないメンバーがいる
1台のメインのマシンが両方を受け持ちます。同じネットワークのメンバーは直接、それ以外はリレー経由で参加します。
Nodes の各メンバーの行に経路が出ます:“via relay …” または “direct, port 7789”。
ステップごとのガイド:リレーでクラスターをつくる
ご自分のケースを選んでください。各ケースに、手順、その後に見えるもの、元に戻す方法をまとめています。ダッシュボードにボタンがあるところはボタンが先で、ターミナルの行は代わりの方法です。リレーは、ほかのマシンから到達できないメインのマシン、たとえば自宅の NAT の内側にあるマシンのためのものです。NAT の内側のメンバーにリレーは要りません。
自宅のマシンがメインのマシン
メインのマシンが自宅のノート PC や Mac、または公開アドレスのないマシンの場合です。サーバーやほかのマシンは、リレー経由でそのマシンに参加します。
メインのマシンにする。
メインのマシンにするマシンで、ターミナルから一度だけ実行します。ダッシュボードにはこのためのボタンがありません。
homeは自分で決める名前です。最初にこれを行ってください。下のリレーのコマンドは、メインのマシンでしか動きません。harnsy debug cluster init home --masterリレーをオンにする。
マシンに harnsy Max のキー(ライセンスのページ)が必要です。このコマンドは、当社のホスト型リレー(ベータ版)を使います。
harnsy debug cluster relay onこのマシンで harnsy を再起動する。
動作中のメインのマシンは、リレーの設定を起動時にしか読みません。反映するには harnsy を再起動してください。Linux:
systemctl --user restart harnsy.service。macOS:launchctl kickstart -k gui/$(id -u)/com.github.butschster.harnsy。Windows:schtasks /End /TN harnsy、続けてschtasks /Run /TN harnsy。相手のマシン用に参加用の行を発行する。
ダッシュボードで Nodes を開き、“Add to the cluster” を選びます。“Node” を選び、マシンに名前を付け(例:
server)、権限を設定して、“Master address” は空のままにします。そうすると、行にリレーのアドレスが入ります。“Issue token” を押します。“manage” はメインのマシンのシェルへのアクセスです。自分のマシンにだけ与えてください。harnsy debug cluster issue server見えるもの “Shown once. Copy it now.” と “Run this on server.” が表示され、その下に
harnsy debug cluster init server --join harnsy-relay://… --token <token>の行が出ます。リレーがつながっているか確認する。
メインのマシンで Nodes を開きます。リレーのパネルは、参加トークンができ、ライセンスがほかのマシンを許可するまで “waiting” と表示します。ターミナルでは、コマンドがリレーと、メンバーが参加するアドレスを表示します。
harnsy debug cluster relay見えるもの “connected since …”、“address for members”(
harnsy-relay://…)、そして “relay access: renews automatically” が見えます。もう一方のマシンで参加する。
もう一方のマシンのダッシュボードで Nodes を開き、“Join a master” を選び、行を貼り付けて “Join” を押します。ターミナルで行を実行しても構いません。行は全部貼り付けてください。ピンのない、リレー経由の参加は拒否されます。
harnsy debug cluster init server --join harnsy-relay://… --token <token>見えるもの “Joined … connecting…” と表示されます。メインのマシンでは、メンバーが Nodes の一覧に現れ、その行に “route: via relay …” と出ます。
元に戻すには メンバーを外すには、取り消します(ケース5)。リレーを使うのをやめるには、harnsy debug cluster relay off を実行して harnsy を再起動します。そのあとメンバーには、また直接つながるアドレスが必要です。
同僚のマシン(その人自身のログイン)
同僚が、自分の Claude、Codex、OpenCode のログインで、あなたのメインのマシンに参加します。ログインは同僚のマシンに残ります。
メインのマシンを用意する。
ケース1と同じように設定するか、同僚が到達できるアドレスを持つメインのマシンを使います。
同僚がどの harnsy Max を使うか決める。
自分の harnsy Max のキーを持つマシンは、席を使いません。持たないマシンは、空きの席があるあいだ、メインのマシンから harnsy Max を借ります。席の数はあなたのキーで決まります。
見えるもの License の “Seats for connected machines” パネルに、“Taken: 1 of 3.” と出ます。
同僚のトークンを発行する。
ダッシュボードで:Nodes → “Add to the cluster”、“Node”、相手のマシンの名前、権限、“Issue token”。必要なものだけ渡してください。
readとsendです。“manage” はあなたのシェルへのアクセスです。harnsy debug cluster issue anna-laptop --scope read,send見えるもの トークンは一度だけ表示されます:“Shown once. Copy it now.”
行を、非公開で渡す。
その行には秘密であるトークンが入っています。メインのマシンのピンも入っているので、相手のマシンは、話している相手があなたのマシンだと確認できます。
同僚が参加する。
相手のマシンで:Nodes → “Join a master”、行を貼り付けて、“Join”。ターミナルで行を実行しても構いません。
harnsy debug cluster init anna-laptop --join https://<main machine address>:7789 --token <token>見えるもの “Connected.” 自分のキーがなく、メインのマシンにも空きの席がない場合は:“Connected. The master has not lent harnsy Max yet: its license may have no free seat.”
確認する。
メインのマシンの Nodes の一覧に、同僚のマシンが出ます。席を借りていれば、License で使用中として表示されます。メインのマシンには、相手のエージェント名、ハーネス、状態、フォルダーが見えます。ログインは相手のマシンに残ります。
元に戻すには 同僚のトークンを取り消します(ケース5)。席はすぐ空きます。相手のマシンは、最後の付与が切れるまで、最長3日間 harnsy Max を使えます。
公開アドレスのないサーバー
何をするかは、サーバーの役割によります。
サーバーがメンバーの場合:直接参加させる。
メンバーは常に自分から接続し、ポートを開けません。そのため、NAT やファイアウォールの内側のサーバーも、到達できるメインのマシンに直接参加できます。トークンを発行し、ケース2と同じように参加します。
サーバーがメインのマシンの場合:リレーを使う。
サーバー自身がメインのマシンで、ほかから到達できないなら、ケース1と同じように設定します。メンバーはリレーのアドレス経由でそれに参加し、ポートは開きません。
元に戻すには ケース1またはケース5と同じです。
直接のメンバーとリレー経由のメンバーを1台のメインのマシンに
同じネットワークにいるメンバーと、いないメンバーがいます。1台のメインのマシンが、両方を同時に受け持ちます。
ケース1と同じようにリレーを設定する。
ケース1の手順1と2です。再起動はこの次です。
直接のメンバーのためにクラスターのポートを開く。
これが必要なのは同じネットワークのマシンだけです。リレー経由のメンバーしかいないメインのマシンには、開いたポートは要りません。クラスターのアドレスを付けて、インストーラーをもう一度実行します。サービスが書き換えられて harnsy が再起動します。これはリレーの設定に必要な再起動も兼ねます。
0.0.0.0はこのマシンのすべてのアドレスを意味します。自分のネットワークだけにポートを開くには、そこでのマシンのアドレス(例:192.168.1.10:7789)を指定します。このポートは、それ自身で TLS を提供します。harnsy install --cluster-addr 0.0.0.0:7789リレー経由のメンバーのトークンを発行する。
“Master address” は空のままにします。行にリレーのアドレスが入ります。
harnsy debug cluster issue far-laptop直接のメンバーのトークンを発行する。
“Master address” に、自分のネットワーク上でのメインのマシンのアドレスを入れます。
harnsy debug cluster issue office-pc --url https://<main machine address>:7789各マシンに、それぞれの行で参加させる。
ケース1の手順6と同じです。それぞれのマシンで行います。
見えるもの Nodes の各行に経路が出ます:“via relay …” または “direct, port 7789”。
元に戻すには メンバーを取り消します(ケース5)。
メンバーを外す
マシンをクラスターから外したい場合、またはトークンが漏れたかもしれない場合です。
そのトークンを探す。
メインのマシンで:Nodes → メンバーのトークンの横の “revoke”。これで完了です。ターミナルでは、先にトークンの一覧を出します。
harnsy debug cluster tokensターミナルで、番号を指定して取り消す。
番号は一覧から取ります。
harnsy debug cluster revoke <id>見えるもの ダッシュボードで取り消すとメンバーの接続はすぐに閉じ、ターミナルからでは20秒以内に閉じます。そのメンバー宛てに溜まっていたものは破棄されます。席はその時点で空きます。License の使用中の数が1つ減ります。harnsy Max を借りていたメンバーは、最後の付与が切れるまで、最長3日間それを使えます。
元に戻すには 再度参加するには、メインのマシンで新しいトークンを発行し、メンバー側では Nodes タブで “Re-join” を選ぶか、表示された harnsy debug cluster init … --join … --token … --force を実行します。
キーで有効になります。
ライセンスページで harnsy Max のキーを追加すると有効になります。
できないことも、正直に
- メインのマシンがオフラインの間も、メンバーはローカルで作業を続け、戻るまでメッセージを保持します。
- リレーは何も見えないわけではありません。誰が、いつ、どれだけ通信したかを知っていて、それをログに残します。接続を切ることはできますが、中身を読むことも変更することもできません。
- ホスト型リレー(ベータ)には harnsy Max のキーが必要です。自前のリレーは計画中です。
最初のチームは、ひと言で始められます。
インストールはエージェントへのひと言で済みます。エージェントを代わりに開くため、harnsy は端末を操作します。Linux と macOS では tmux、Windows では独自の端末ホストです。
https://harnsy.dev/llms.txt の手順に従って harnsy をインストールして