remotehost

Put localhost on the internet
without opening a port

One command gives the app on your laptop, Raspberry Pi or office server a public HTTPS address. Test webhooks, share a preview, reach your home lab. It works behind NAT, CGNAT and company firewalls.

Start free Free plan, no card. Or try it without an account first.

Live right now: demo.t.onio.in runs on one of our machines, through a tunnel.

Why it exists

Your app runs fine. Getting one outside request to it is the hard part.

Without remotehost

  • Router port forwarding that your ISP or office blocks anyway
  • CGNAT on many mobile and home connections, so there is no public IP to forward to
  • A server to rent, a domain to point, a certificate to renew, just to show a preview

With remotehost

  • rh dials out on port 443, which almost every network allows
  • You get https://<name>.t.onio.in with a valid certificate
  • Stop the command and the address goes offline. Nothing stays open

Your machine dials out once.
The internet comes in through that tunnel,
and nothing at home is left open.

What you get

Everything a tunnel needs, nothing you have to babysit

Online in about a second

From rh http 3000 to a working public address took 1.0 s in our tests, certificate included.

Lock it to who you choose Pro

Basic auth and IP allowlists are checked on our side, before a request ever reaches your laptop.

  • 203.0.113.24 GET /200 allowed
  • 198.51.100.7 GET /admin403 not on list
  • 192.0.2.41 GET /401 password
  • 203.0.113.24 POST /api/order200 allowed

Stays up by itself

rh service install 3000 starts at boot and came back 5 s after we killed it.

rh-3000.serviceactive
process stopped, restarting
tunnel back up, same address

Try it without an account

No key yet? You get a 24 hour tunnel and a claim link. Sign in and it moves into your account, still running.

x7k2m9qp.t.onio.inanonymous
claim link · 23 h left
x7k2m9qp.t.onio.inyours
claimed by meera@ · still online

Usage you can see

Bandwidth for the period and every tunnel online, in the dashboard, the API and over MCP.

34.7GB of 100 GB this period
3 tunnels onlineresets 17 Nov

Or open it from your code

Libraries for Go, Node.js and Python start a tunnel, keep it up and hand you the URL. Handy for tests that need a public webhook address.

tun, err := remotehost.Forward(ctx, "3000", remotehost.Options{})
if err != nil { log.Fatal(err) }
defer tun.Close()
fmt.Println(tun.URL) // https://k7m2xq9p.t.onio.in
import { forward } from "@bitgeek/remotehost";

const tunnel = await forward(3000);
console.log(tunnel.url); // https://k7m2xq9p.t.onio.in
import remotehost

with remotehost.forward(8000) as tunnel:
    print(tunnel.url)  # https://k7m2xq9p.t.onio.in

How it works

Three steps, then share the link

Sign in by email

No password. Create an API key in the dashboard, or skip this and try without an account.

Run one command

rh http 3000 starts the official, unmodified frp client and points it at your port.

Share the address

A valid certificate, WebSockets and streaming included. Stop the command and it goes offline.

The internet
Visitor
browser, webhook, API client
remotehost
HTTPS edge
myapp.t.onio.in
Gate: online, within plan, allowed
Your machine
rh
$ rh http 3000
connecting…tunnel active ✓
Your machine
Your app
localhost:3000
  1. rh opens an encrypted tunnel to remotehost, outbound on port 443. Nothing at home is opened.
  2. A visitor opens https://myapp.t.onio.in.
  3. The gate checks: is the tunnel online, within its plan, and is this visitor allowed?
  4. The request goes down the tunnel to rh.
  5. rh hands it to your app on localhost:3000.
  6. Your app answers. The response goes back up the tunnel.
  7. The visitor gets the page over HTTPS, with a valid certificate.

What each part does, and the full diagram

Proof, not promises

Numbers from our own tests and builds

1.0 s
from forward(3000) to a public URL, Node.js library
1.5 s
for a killed tunnel client to be back, same address
9
platforms for rh: Linux, macOS, Windows, FreeBSD, ARM included
Apache 2.0
frp underneath, the open source tunnel, unmodified

See one running. demo.t.onio.in is a static page with sample data, served from a folder on one of our machines. Its web server listens only on 127.0.0.1; a background rh service keeps it online.

Open the live demo

Pricing

A flat monthly price, never per seat

Prices exclude GST. In India you pay in rupees by UPI. Start on Free and upgrade from the dashboard when you need more.

Free

For trying ideas and quick previews

0 a month
  • 1 tunnel online at once
  • 1 GB bandwidth per period
  • Sessions: 2 hours
  • Random names only
  • No access rules
  • Visitors see a short notice first
Start free

Pro recommended

For one developer who shares work every day

… a month
  • 5 tunnels online at once
  • 100 GB bandwidth per period
  • Sessions: unlimited
  • 3 reserved names that never change
  • Basic auth and IP allowlists
  • No notice page for visitors
Choose Pro

Team

For a team that runs shared staging links

… a month
  • 25 tunnels online at once
  • 500 GB bandwidth per period
  • Sessions: unlimited
  • 20 reserved names that never change
  • Basic auth and IP allowlists
  • No notice page for visitors
  • 10 seats
Choose Team

Paying opens soon: until then, paid plans show their price and you can start on Free. Free tunnels show visitors a short notice on their first visit (API calls skip it) and sessions reconnect every 2 hours.

Questions

Things people ask before they start

Is it free?
Yes. The Free plan gives you 1 tunnel online at a time, 1 GB a month and sessions that reconnect every 2 hours, with no card. Pro and Team add more tunnels, reserved names, access rules and no notice page for visitors.
Do I need an account?
No. Run rh http 3000 or call a library without a key and you get an anonymous tunnel for 24 hours, with a claim link. Sign in through that link and the tunnel moves into your account while it keeps running.
Does it work behind CGNAT or a company firewall?
Yes. rh makes one outbound connection on port 443, the same as a browser. Nothing on your side has to accept incoming connections, so NAT, CGNAT and most firewalls do not matter.
Is the traffic encrypted?
Visitors reach you over HTTPS with a valid certificate, and your machine talks to us over encrypted WebSocket. Your app itself can speak plain HTTP on localhost. We do not store what goes through a tunnel.
Can I keep the same address?
A random name stays yours while the tunnel runs and for 10 minutes after it stops, so a restart keeps the URL. Pro and Team reserve names that never change, like myshop.t.onio.in.
Can it run in the background?
Yes. rh service install 3000 sets it up with systemd on Linux, launchd on macOS or Task Scheduler on Windows. It starts at boot and comes back on its own after a crash.
What can I not host?
Pornography or sexually explicit material, anything unlawful in India, anything the .IN Registry does not allow on .in domains, phishing and malware. Reported tunnels are paused. The full rules are in the terms.
Which platforms does it run on?
rh runs on Linux, macOS, Windows and FreeBSD, on Intel and ARM, Raspberry Pi included. There are libraries for Go, Node.js and Python. People who already use frp can point their own frpc at us.
How is this built?
On frp, the open source tunnel (Apache 2.0). We run the server and use the official client unmodified; remotehost adds accounts, names, limits, access rules and the dashboard.

Put localhost on the internet
without opening a port

Free plan, no card. Your first public address takes one command.

Start free Or run rh http 3000 now and claim it later.