There is no WireHop server: no account, no coordination service, no company in the middle that could be breached to reach your machines. That includes us. Here are the boundaries, and where they stop.
Every member has a role and every machine has tags. Traffic is forwarded only if the role covers the tags. Default-deny: a new member reaches nothing until it is granted a role.
A session runs inside an OS sandbox, Seatbelt on macOS and Landlock on Linux: which commands may run, which paths are visible, whether it can reach the network. A client can ask for more restriction than the host set, never less.
The daemon may listen as root, but shells, commands and file transfers run as the ordinary user bound into the invite. That user is fixed when the invite is made.
Every machine keeps its own audit log of connections, commands, transfers and denials. No central collector, no telemetry. Read it with hop audit.
Each machine's identity is an Ed25519 key generated on first run. Connections are QUIC with TLS 1.3 end to end; a relay only ever sees ciphertext. Releases are signed, and the installer refuses a mismatch.
The fair question about any tool that lets software run commands on your machines.
An agent holds exactly one thing: an invite you issued it. It is single-use, time-limited, and carries the limits you set when you made it. It is not a master key, and it cannot grant itself more than it was given.
Give an agent the least invite that works. A monitoring agent wants read-only access to one machine with two allowed commands, not membership in your network.
Every restriction an invite can carry, with defaults, is in the docs: everything an invite can restrict.
A security page that only lists strengths isn't a security page.
Scoping bounds the blast radius; it does not make an agent's judgment good. If it can write to a directory, it can delete the wrong file there. Scope to the job and read the audit log.
Root on one of your machines is that machine's identity. Revoke it with hop fleet prune or an admin revoke.
An unredeemed token is a bearer credential. Short expiries and single use limit the window; they do not close it. Treat it like a password.
WireHop is for machines you own. No multi-tenant model, no per-customer isolation, no SSO. If you need those, it is the wrong tool and we would rather say so.
A relay cannot read your traffic, but it can see that two machines exchanged packets and roughly how much. If that matters, run your own.
There has been no third-party security audit. The code is public and the threat model is written down, which is not the same thing.
Found something? Report it privately through GitHub's security advisories on the repository. We aim to acknowledge within 72 hours.