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

  1. Start your app locally, for example on port 3000.
  2. Run ssh -R 80:localhost:3000 sapper.sh.
  3. 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.