Expose a local port with one SSH command.
Sapper is a public SSH tunneling service. No client to install, no account to create. Your local server gets a public HTTPS address in seconds.
ssh -R 80:localhost:3000 sapper.sh
# → https://<name>.sapper.sh
Paid tunnel holders
Manage your tunnel keys in the dashboard: switch tunnels on and off, set expiry dates, and get the command for each key. You sign in with GitHub, and Sapper never sees your password.
Log in to your dashboard
Quick start
- Start your app locally, for example on port 3000.
- Run
ssh -R 80:localhost:3000 sapper.sh.
- Open the
https://<name>.sapper.sh address the server prints.
The first visit to a Sapper address shows a short warning page. It exists to protect visitors from phishing. Click through to reach your site.
Who it's for
For anyone who needs to reach a local service from the internet without the usual setup.
Pricing and free tier
Free not open yet
The free tier is planned. When it opens, it will have:
- Random subdomains
- HTTP tunnels only
- A warning page on first visit
Session limits and a throughput cap are planned too. They are not in place yet, so the free tier does not work at the moment.
Paid invite only
Paid tunnels are available by invitation. What you get now:
- A dashboard for up to 5 tunnel keys per account
- A reserved subdomain for each key's HTTP tunnel
- Up to 5 forwards per key, one HTTP and the rest TCP. Each TCP forward gets a public port, shown in the dashboard while the tunnel is up
- Switch tunnels on and off, set expiry dates, and add notes
- A one-line command, or an agent script, that keeps the tunnel up
Visitors to paid tunnels see the same warning page for now.
Paid pricing is not set yet. Until then, Sapper runs on donations.
Buy me a coffee
Acceptable use
Sapper is a developer tool. It is not for phishing, malware distribution, or hosting anything illegal. Read the full abuse policy and terms of service before you use it.
To report abuse, email [email protected]. Every tunnel can be shut down individually.