Connect your devices directly - no accounts, no cloud, no subscriptions.
Works even when your network blocks everything.
Two commands on each device. No accounts to create, no keys to exchange manually, no ports to forward.
Three steps. Both devices end up in each other's authorized_keys. That's it.
Run shurli init on your server. It creates a unique identity and comes online, ready to accept connections.
Run shurli invite to get a one-time code. Send it however you like - text, email, Signal, carrier pigeon.
Run shurli join on your laptop. Both devices trust each other automatically. Access any service through the encrypted connection.
5G, hotel WiFi, corporate networks, double NAT - if your device has internet, Shurli finds a way through. Tested on the networks that block everything.
Download one file. Run it. Done. No containers, no runtimes, no databases to set up. Works offline after the initial pairing.
A simple file on your device decides who gets in. No accounts to manage, no tokens to rotate, no company in the middle. Your network, your rules.
One command on your server, one on your laptop. Share a code, done. From zero to connected in about 60 seconds.
Remote desktop, file servers, databases, web apps - anything running on your home network, accessible from anywhere as if you were on the same WiFi.
Network drops? It reconnects automatically. Bad config? It rolls back. Shurli monitors itself and recovers without you lifting a finger.
Shurli tries to connect your devices directly. When the network won't allow it, traffic flows through an encrypted relay, which never sees your data.
Single binary. No runtime dependencies. Build from source with Go.
# Clone and build
git clone https://github.com/shurlinet/shurli.git
cd Shurli
go build -ldflags="-s -w" -trimpath -o shurli ./cmd/shurli
# Move to PATH
sudo mv shurli /usr/local/bin/
# Verify
shurli version# Clone and build
git clone https://github.com/shurlinet/shurli.git
cd Shurli
go build -ldflags="-s -w" -trimpath -o shurli ./cmd/shurli
# Move to PATH
sudo mv shurli /usr/local/bin/
# Verify
shurli version# Requires Go 1.22+
git clone https://github.com/shurlinet/shurli.git
cd Shurli
go build -ldflags="-s -w" -trimpath -o shurli ./cmd/shurli
# Run directly
./shurli version