SSH-like shell access without port forwarding, VPNs, or third-party routing. Direct encrypted peer-to-peer connections with a single binary.
$ curl -fsSL https://hop.keik.ai/install.sh | bash
Existing tools all have tradeoffs. hop was built to eliminate them.
TLS 1.3 over QUIC. Your traffic is never decrypted by a relay or third-party service. Keys stay on your machines.
Works behind ISP NAT, double NAT, and carrier-grade NAT. No port forwarding or router configuration needed.
One download. No runtime dependencies, no daemon required for basic use, no accounts to create. Just run it.
Share a link or token to grant access. Each invite is single-use and cryptographically verified. No shared passwords.
Connections go directly between peers whenever possible. No bandwidth limits, no metered relay, no man-in-the-middle.
macOS (Apple Silicon & Intel) and Linux (x86_64 & ARM64). Built with Rust for native performance on every platform.
No accounts, no port forwarding, no third-party routing.
Three commands. That's it.
Run hop host on the machine you want to access. It generates an identity and starts listening for connections.
Run hop invite to generate a one-time token. Send it to whoever needs access—it's single-use and time-limited.
The other person runs hop connect <token> and gets a secure shell. Future connections use hop connect <name>.
One command to download, verify, and install.
Downloads the binary, verifies the SHA-256 checksum, and installs to /usr/local/bin. Works with curl or wget.
Keep hop running at boot with a native system service.
The package installer sets up hop as a system LaunchDaemon that starts automatically at boot. Ideal for always-on machines like home servers, dev boxes, or Mac Minis under your desk.
/usr/local/bin/hophop host at boot/Library/Application Support/hop/
Uninstall cleanly with sudo /usr/local/bin/hop-uninstall.sh. Your config at /Library/Application Support/hop/ is preserved.
Install hop as a systemd service that starts automatically at boot. Ideal for headless servers, VPS instances, or any always-on Linux machine.
/usr/local/bin/hophop host at boot~/.config/hop/ (XDG default)Restart=on-failure)journalctl -u hop)
Stop and remove with sudo systemctl disable --now hop && sudo rm /etc/systemd/system/hop.service