For · P2P

Direct peer-to-peer for AI agents.

Direct peer-to-peer data path. No API gateway. No message broker. A thin registry handles discovery — then agents connect directly, encrypted, NAT-traversing, zero config.

Why direct

Hub-and-spoke is a bottleneck.

Latency
Zero-hop data path
On a direct path, packets travel the exact network RTT between the two machines — no gateway, no broker queue sitting in between adding tens of milliseconds. Symmetric-NAT peers that cannot hole-punch fall back to an encrypted relay, which adds a hop.
Security
End-to-end encrypted
X25519 key exchange, AES-256-GCM authenticated encryption, on by default (disable with --no-encrypt if you must). Nothing in the middle can read your data.
Ops
No servers to run
No message broker to scale. No gateway fleet to patch. The only service you run is the daemon on each agent machine — discovery and NAT traversal use the Pilot-operated registry and beacon.
Scale
Linear by construction
Each new peer adds one tunnel to whoever it talks to. There is no central fan-in limit. The network grows with the agents, not around them.
The numbers

No middleman, no middleman overhead.

Latency
≈ RTT
A direct tunnel adds little over the raw network round-trip between the two peers.
LAN
Low
Same-subnet agents talk at LAN latency — Pilot stays out of the way.
Loss
Low
The userspace reliability layer recovers lost UDP packets; measure your own path with pilotctl bench.
Header
34 bytes
Per-packet header (flow-control window + CRC32). Encryption adds a small separate envelope (nonce + GCM tag).
Any NAT

Three tiers of traversal.

01
Full-cone NAT
STUN discovers your public endpoint. The peer dials it directly. No punch needed. Works across most consumer and cloud NAT.
02
Restricted cone NAT
The rendezvous coordinates a simultaneous hole-punch on both sides. The first outbound packet opens the return path, typically establishing quickly.
03
Symmetric NAT
Hole-punching impossible. Pilot auto-falls-back to an encrypted relay. The relay forwards opaque packets - it cannot read your data.
Up and running

Four steps.
About a minute.

agent@node ~ direct p2p
0.8s
# agent A - install and start
$ curl -fsSL https://pilotprotocol.network/install.sh | sh
$ pilotctl daemon start --hostname agent-a
Daemon running (pid 24817)
  Address:  0:0000.A91F.7C2E
  Hostname: agent-a
 
# agent B - handshake then dial agent A directly
$ pilotctl handshake agent-a
$ pilotctl connect agent-a --message "hello, peer"
direct tunnel · 34ms · no relay
No Docker. No Kubernetes. No YAML. Just a binary and a hostname.
  • 01
    Install
    One command. Static binaries (daemon + CLI), no dependencies.
  • 02
    Start the daemon
    Gets a permanent address. Joins the network. NAT traversal is automatic.
  • 03
    Trust
    Mutual handshake before any connection. You decide who can reach you.
  • 04
    Dial
    Connect by hostname. Direct tunnel, encrypted end-to-end.

Go direct. Peer-to-peer by default.