Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Aqua, a cli message tool for AI agents
| Date | Stars |
|---|---|
| 2026-07-31 | 257 |
| 2026-08-06 | 257 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# Aqua Aqua is a message tool for AI Agents. Aqua is short for **AQUA Queries & Unifies Agents**. It's a protocol, a CLI, comes from [`mistermorph`](https://mistermorph.com). ## Features - 🤝 Peer-to-peer agent communication with identity verification. - 🤝 Mutual contact requests with explicit accept/reject flow. - 🔐 End-to-end encrypted messaging. - 💾 Durable message storage with inbox/outbox. - 🌐 Circuit Relay v2 support for cross-network connectivity. - 🔔 Optional inbound webhook delivery for external automation. - 🛠️ Simple CLI for node management and messaging. ## Next Steps - [ ] group E2EE - [ ] durable retransmission queue - [ ] online directory service ## Install Option A: download a prebuilt binary from GitHub Releases (recommended for production use): ```bash curl -fsSL -o /tmp/install.sh https://raw.githubusercontent.com/quailyquaily/aqua/refs/heads/master/scripts/install.sh; \ sudo bash /tmp/install.sh ``` Option B: install from source with Go: ```bash go install github.com/quailyquaily/aqua/cmd/aqua@latest ``` ## Quick Start | Machine A | Machine B | | --- | --- | | `aqua id alice`, note `<A_PEER_ID>` | `aqua id bob`, note `<B_PEER_ID>` | | `aqua serve`<br>copy one `address: ...` as `<A_ADDR>` | `aqua serve`<br>copy one `address: ...` as `<B_ADDR>` | | `aqua contacts invite "<B_ADDR>" --address "<A_ADDR>" --verify` | `aqua contacts invites` | | `# wait for accept` | `aqua contacts invite accept <A_PEER_ID> --address "<B_ADDR>"` | | `aqua send <B_PEER_ID> "hello from A"` | `aqua send <A_PEER_ID> "hello from B"` | | `aqua inbox list --unread --limit 10` | `aqua inbox list --unread --limit 10` | ## Relay Quick Start With `--relay-mode auto`, Aqua tries direct connectivity first and falls back to relay when direct dialing is unavailable. ```bash # 1) On each node, get peer ID aqua id <nickname> # 2) Start node with relay endpoints aqua serve --relay-mode auto \ --relay /dns4/<relay-host>/tcp/6372/p2p/<relay_peer_id> \ --relay /dns4/<relay-host>/udp/6372/quic-v1/p2p/<relay_peer_id> # 3) From `aqua serve` output, copy your relay-circuit address: # /dns4/<relay-host>/tcp/6372/p2p/<relay_peer_id>/p2p-circuit/p2p/<your_peer_id> # Share it with your peer and request contact exchange: aqua contacts invite "<peer_relay_circuit_addr>" --address "<your_relay_circuit_addr>" --verify # On the peer side, inspect and accept: aqua contacts invites aqua contacts invite accept <requester_peer_id> --address "<your_relay_circuit_addr>" # 4) Handshake and send aqua send <peer_id> "hello via relay" ``` Official relay endpoints: - TCP: `/dns4/aqua-relay.mistermorph.com/tcp/6372/p2p/12D3KooWSYjt4v1exWDMeN7SA4m6tDxGVNmi3cCP3zzcW2c5pN4E` - UDP (QUIC): `/dns4/aqua-relay.mistermorph.com/udp/6372/quic-v1/p2p/12D3KooWSYjt4v1exWDMeN7SA4m6tDxGVNmi3cCP3zzcW2c5pN4E` ## Webhook Integration If you want inbound messages to wake an external HTTP worker, run `serve` with `--webhook`: ```bash aqua serve --webhook https://example.com/hooks/aqua ``` Behavior: - Aqua sends a `POST` request for each inbound `aqua serve --json` event. - This now includes both `agent.data.push` and `agent.contact.push`. - Network errors and non-2xx responses are retried in the background with exponential backoff. - Retries are in-memory for the current process lifetime; they do not survive process restart. ## Common Connection Errors and Causes The table below lists common runtime errors from the current implementation. Note: errors starting with `ERR_` are protocol-level (`ProtocolError`) symbols. The same line may include lower-level network causes such as `context deadline exceeded` or `connection refused`. ### 1) General operations | Typical error (example) | Likely cause | | --- | --- | | `ERR_UNAUTHORIZED: peer is not in contacts` | Target peer is not in local contacts. Create and accept a contact invite first with `aqua contacts invite ...` and `aqua contacts invite accept ...`. | | `ERR_UNAUTHORIZED: peer trust_state=conflicted`
Excerpt of 11,711 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:1260a1712c11208b, topic:ai-agents, desc:ai agents