Три машины, три человека, один кластер
harnsy начинался на одной машине. Теперь несколько машин могут работать как один кластер: ваш сервер, ноутбук дома и даже чужой компьютер со своим входом в Claude или Codex. Ниже — один пример установки и точные ответы: что ходит между машинами, что нет и что видит каждая сторона.
Главные цифры
- 0
- портов открывать, когда участники подключаются к домашней главной машине через релей
- 1
- раз показывается строка присоединения, поэтому скопируйте её при выпуске
- 20 с
- не больше, чтобы отзыв из терминала закрыл соединение участника; из дашборда оно закрывается сразу
- 3 дня
- не больше, сколько участник сохраняет одолженный harnsy Max после отзыва его токена
В этой статье
Одна главная машина и участники, которые к ней подключаются
Кластер — это одна главная машина и машины, которые к ней подключились. В роли участника может выступать ваш сервер, домашний ноутбук или машина другого человека. У каждого участника свой ключ harnsy Max, либо он берёт место у главной машины.
Входы никуда не уходят. Участник хранит свой вход в Claude, Codex или OpenCode на своей машине. Главная машина узнаёт имя каждого агента, его харнес, статус и папку и направляет сообщения. Входа и ключа она не получает.
Пример: Аня, Борис и Вера
Главная машина Ани — её Mac дома, за домашним роутером, без публичного адреса. У Бориса ноутбук со своей подпиской на Claude и своим ключом harnsy Max. У Веры компьютер со своей подпиской на Codex и без ключа: она берёт место у Ани.
До Mac Ани снаружи не достучаться, поэтому Борис и Вера подключаются к нему через релей. На Mac Аня делает его мастером (harnsy debug cluster init home --master), включает релей (harnsy debug cluster relay on) и перезапускает harnsy. Затем открывает в дашборде «Узлы» и выбирает «Добавить в кластер»: имя и права, отдельно для Бориса и для Веры. Каждая строка присоединения показывается один раз. Борис вставляет свою в «Вступить в кластер мастера» на ноутбуке, Вера — свою. Никто не открывает порт.
Логины остаются на каждой машине; сообщения направляет главная машина.
Теперь агент-лид Ани может написать boris/builder или vera/reviewer: на другой машине агента зовут машина/агент, и сообщение идёт через машину Ани. Машина Бориса может открыть папку, а агенты Ани читают её, только для чтения. Что открыть, решает каждая машина сама.
Напрямую или через релей
Если у главной машины есть адрес, до которого остальные дотянутся (сервер, публичный IP, проброшенный порт), участники подключаются к ней напрямую. Участнику за NAT или файрволом ничего особенного не нужно: участник всегда соединяется сам и не открывает порт. Связи между машинами идут по TLS по умолчанию.
Релей — для главной машины, до которой не дотянуться, как до Mac Ани дома за NAT. Главная машина и каждый участник, который подключается через релей, сами соединяются с нашим размещённым релеем; он соединяет два потока и пересылает байты. У одной главной машины могут быть прямые участники и участники через релей одновременно.
Что видит каждая сторона
- **Релей** видит, какая машина подключилась (по хешу), когда и сколько трафика. Оборвать соединение он может; читать то, что внутри, не может: сообщения, токены, ключ главной машины. TLS идёт между вашими машинами, а участник сверяет главную машину с пином из своей строки присоединения, поэтому релей не может выдать себя за неё.
- **Главная машина** направляет сообщения, поэтому может их читать. Она видит имена агентов участника, харнес, статус и папку. Входы и ключи — нет.
- **Участник** видит сообщения, отправленные его агентам.
Чтобы убрать машину, отзовите её на главной («Узлы» → «отозвать»): соединение сразу закроется, а место освободится. Участник, который брал harnsy Max, сохраняет его до 3 дней.
Границы
У участника не может быть своих участников.
Настройка
Пошаговая инструкция с командами и тем, что вы увидите после каждого шага, — на странице релея. Релею нужен ключ harnsy Max на главной машине.
Несколько машин, один кластер
harnsy соединяет машины в один кластер: напрямую или через релей, когда до главной машины не дотянуться.
Пошаговая инструкция