Aqua CLI

CLI для обмена сообщениями между агентами: идентификаторы узлов, приглашения в контакты, входящие и связь через релей

  • 259 ★ репозитория
  • Последний коммит
  • Apache-2.0
CLI

Широкий доступ

Почему такой уровень

  • Узел `aqua serve` слушает входящие соединения и принимает сообщения от одобренных контактов
  • При недоступном прямом соединении трафик может идти через выбранный релей
  • Вебхук отправляет содержимое входящих сообщений на указанный вами адрес
Все причины и проверки

quailyquaily/aqua

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/aqua

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Узел `aqua serve` слушает входящие соединения и принимает сообщения от одобренных контактов
  • При недоступном прямом соединении трафик может идти через выбранный релей
  • Вебхук отправляет содержимое входящих сообщений на указанный вами адрес

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Aqua — протокол и программа на Go для обмена сообщениями между агентами на разных машинах. Каждый узел создает идентификатор командой `aqua id`, запускает прием сообщений через `aqua serve` и показывает адрес для подключения. Проект вырос из mistermorph, но устанавливается отдельно. Узлы обмениваются приглашениями в контакты. После принятия приглашения `aqua send` отправляет сообщение, а входящие и исходящие сохраняются локально. Команда `aqua inbox list --unread` выводит непрочитанное, а наблюдение за ящиком связывает новые сообщения с работой агента. Соединение опирается на идентичность узлов libp2p, а имя контакта само по себе не подтверждает человека или организацию. Если прямая связь недоступна, режим `--relay-mode auto` пробует релей. Вебхук `aqua serve --webhook <url>` передает входящие события указанному обработчику. Скилл `aqua-communication` в репозитории описывает установку, обмен адресами и цикл чтения сообщений.

Для кого. Для разработчиков, которым нужно передавать сообщения между агентами на разных машинах и управлять контактами через командную строку.

Подходит, если

  • Два агента на разных машинах должны переписываться, и вам не хочется поднимать общий сервер или чат
  • Нужно принимать входящие в долговечный ящик и будить агента командой `aqua inbox watch`
  • Агент должен отвечать на события по вебхуку: `aqua serve --webhook` шлет каждое сообщение на ваш адрес
  • Соединение идет через NAT или файрвол, и нужен релей в режиме `--relay-mode auto`
  • Контакт нужно подтвердить в обе стороны, прежде чем агенты начнут обмениваться данными

Не подходит, если

  • Нужны групповые чаты с шифрованием: групповое сквозное шифрование есть только в планах проекта
  • Нужна гарантированная доставка после перезапуска: повторные отправки по вебхуку живут в памяти процесса
  • Нужен каталог пиров или поиск агентов: онлайн-каталог только планируется
  • Вы хотите связать агентов только на одной машине: проще передать данные файлом или через стандартный ввод

Пример запроса к агенту

Запусти `aqua serve` с релеем в режиме `auto`, покажи мой адрес и отправь контакту `alice` приглашение с проверкой

Ограничения

Перед `--verify` проверьте идентификатор собеседника по другому доверенному каналу. Флаг отмечает принятое доверие, но не проверяет личность человека. Без него действует доверие при первом знакомстве, TOFU. Шифрование соединения не распространяется на локальные файлы `~/.aqua`, где лежат ключи, контакты и сообщения.

Узел по умолчанию слушает TCP и UDP на `0.0.0.0:6372`. При использовании релея посредник видит сетевые адреса и сведения о маршрутизации. Вебхук получает расшифрованные события.

Для приема сообщений нужен работающий процесс. Для сборки из исходников указаны Go 1.24.6 и toolchain 1.24.13, лицензия Apache-2.0.

Как отключить. Остановите процесс `aqua serve` и удалите бинарник `aqua`. Локальные данные узла с идентичностью и ящиком сообщений удалите отдельно, если они больше не нужны.

Частые вопросы

Как поставить Aqua?

Выполните `go install github.com/quailyquaily/aqua/cmd/aqua@latest`. В `go.mod` указаны Go 1.24.6 и toolchain 1.24.13; установка скачивает зависимости и при необходимости инструменты Go. Каталог с бинарником должен быть в `PATH`.

Как два агента начинают переписку?

Оба узла создают идентификаторы и запускают `aqua serve`, затем обмениваются полученными адресами. Отправитель приглашает контакт, получатель просматривает приглашение и принимает его. `--verify` используют после проверки идентификатора по независимому каналу; только затем переходят к переписке через `aqua send`.

Что делать, если прямая связь не получается?

Запустите узел с флагом `--relay-mode auto` и укажите релей флагом `--relay`. Узел попробует прямое соединение и при неудаче пойдет через релей. Для своего релея нужна отдельная идентичность, не совпадающая с идентичностью узла.

Как разбудить агента входящим сообщением?

Используйте `aqua inbox watch` для пробуждения по новым письмам или запустите `aqua serve --webhook` с адресом вашего обработчика. Для каждого входящего события уходит POST-запрос, а ошибки повторяются в фоне.

Зачем в репозитории `SKILL.md`?

В нем скилл `aqua-communication` описывает агенту порядок работы: установку, получение идентификатора, подключение через релей, приглашения контактов и цикл работы с входящими.

Обсуждение

Вопросов и отзывов пока нет.

Open Agent Email — свой почтовый сервер для ИИ-агентов: ящики, ответы в ветке письма, одобрение человеком, вебхуки и MCP на 96 инструментов

MCP-серверШирокий доступ2,1 тыс.Звезды репозитория

Агент пишет вам на телефон или звонит по VoIP, голосовой ИИ обсуждает решение, а стенограмма возвращается агенту

СкиллШирокий доступ290Звезды репозитория

Подключает Claude Code, Cursor, Codex или OpenCode к Telegram, Slack и Discord: коллеги пишут боту, отвечает кодовый агент

CLIШирокий доступ322Звезды репозитория

CLI, который передает сообщения вашего WeChat агенту через официальный ClawBot (iLink) и отправляет ответы обратно

CLIШирокий доступ206Звезды репозитория

Скилл помогает подключить агенту почту и мессенджеры через Caspian, сохранив общую обработку входящих сообщений

СкиллШирокий доступ970Звезды репозитория

CLI для KakaoTalk на Mac: агент читает чаты, ищет по сообщениям и отправляет тексты через автоматизацию клиента

CLIШирокий доступ182Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
Aqua (эта карточка)нет259
hcomнет638связывает агентов в разных терминалах на одной машине
AgentBridge — мост между Claude Code и Codexнет422локальный мост между Claude Code и Codex в одной сессии

Коротко о README

CLI хранит сообщения на диске и поддерживает наблюдение за входящими. Это транспорт между программами: он не включает языковую модель и не исполняет прочитанное сообщение как задачу без подключенного агентского процесса.

Бейдж для README

Исходный SKILL.md

---
name: aqua-communication
description: "Aqua is a CLI-first message tool for AI agents. Use aqua CLI to exchange messages, manage contacts and invites, and drive agent inbox workflows with unread, watch, mark-read, or webhook-triggered serve integrations."
---

# Aqua Communication Skill

## Goal

Use `aqua` to establish trusted peer communication and exchange messages reliably between other agents.

When acting as an agent, treat Aqua as:

- transport + local mailbox
- `aqua serve` for receiving traffic
- `aqua inbox watch` for prompt wakeups
- `aqua inbox list --unread` and `aqua inbox mark-read` for inbox-driven work loops
- optional `aqua serve --webhook ...` when your runtime can supervise a long-lived daemon and prefers HTTP wakeups

## Identity Syntax

* If you want to use aqua peer id to identify a peer in file or storage, use format `aqua:<PEER_ID>`, e.g., `aqua:12D3KooWSYjt4v1exWDMeN7SA4m6tDxGVNmi3cCP3zzcW2c5pN4E`.
* If nickname is specified, use markdown-like syntax `[<nickname>](aqua:<PEER_ID>)`, e.g., `[John Wick](aqua:12D3KooWSYjt4v1exWDMeN7SA4m6tDxGVNmi3cCP3zzcW2c5pN4E)`.
* The `<PEER_ID>` is the source of truth and `<nickname>` is an optional annotation for human-friendly display. 
* Use `aqua` cmd if you find this kind of syntax in the context or files.

## Defaults

- Official `relay_host` for relay mode: `aqua-relay.mistermorph.com`
- Official `relay_peer_id`: `12D3KooWSYjt4v1exWDMeN7SA4m6tDxGVNmi3cCP3zzcW2c5pN4E`
- Official relay endpoint
  - TCP: `/dns4/aqua-relay.mistermorph.com/tcp/6372/p2p/12D3KooWSYjt4v1exWDMeN7SA4m6tDxGVNmi3cCP3zzcW2c5pN4E`
  - UDP (QUIC): `/dns4/aqua-relay.mistermorph.com/udp/6372/quic-v1/p2p/12D3KooWSYjt4v1exWDMeN7SA4m6tDxGVNmi3cCP3zzcW2c5pN4E`

## Install Aqua CLI:

```bash
curl -fsSL -o /tmp/install.sh https://raw.githubusercontent.com/quailyquaily/aqua/refs/heads/master/scripts/install.sh; \
sudo bash /tmp/install.sh
```

## Quick Start with Official Relay Node (Recommended)

1. Get your peer ID and optionally set a nickname:

Сообщить о проблеме

Foxx AIAqua
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.