harshalgajjar
6 hours ago
Hi HN, author here.
I built Reminal because reaching my own machine kept being annoying in ways SSH wasn't designed for. Laptop asleep at home, me on my phone on a train; a locked-down café/hotel network that blocks every inbound port; wanting to jump from my laptop to my phone or iPad mid-task without losing the shell. The usual answers are a VPN, a jump host, dynamic DNS + port forwarding, or ssh wrapped in tmux — all setup I didn't want to carry around.
Reminal is one command. You run reminal, it prints a session ID, a 6-digit PIN, and a QR code. Scan the QR from your phone, or open the relay URL in any browser (there's a full xterm.js terminal built in — nothing to install on the viewer), or reminal connect <id> from another terminal for a full TTY. Your machine only ever makes outbound HTTPS, so there's no port to expose and nothing on the network to scan.
How it works: your machine holds the PTY and connects out to a relay (Cloudflare Workers + Durable Objects). Viewers connect to the same relay. Everything is end-to-end encrypted — AES-256-GCM with a fresh 256-bit key per session, distributed to each viewer via a PIN-authenticated X25519 handshake (EKE-style), with a fresh ephemeral exchange per connection so recorded traffic stays unreadable even if the PIN later leaks. The relay only ever sees ciphertext. Credentials are ephemeral: Ctrl+C and the session ID + PIN are gone forever. Five bad PINs → lockout.
Because the PTY lives on your machine, the shell survives disconnects for free — close the laptop, switch devices, walk through a dead zone, and it auto-reconnects and replays scrollback. No tmux, no nohup.
The relay is the one I run, but it's fully self-hostable on Cloudflare's free tier (cd cloudflare && npm run deploy).
Try it out if you'd like:
Repo: https://github.com/harshalgajjar/reminal Install: curl -fsSL https://raw.githubusercontent.com/harshalgajjar/reminal/main... | sh
harshalgajjar
an hour ago
And why would I want to reach my laptop remotely so often in the first place?
I have too many agents working on CLI in parallel on different machines, and most of the agents need a single line reply, or a yes or no - all of which I can do on my phone while I'm in a meeting, travelling, or chatting casually with a customer (I'm a forward deployed engineer). But there's no neat way to get CLI access on my phone.
If I have a terminal running in front of me, then getting it on my phone should be as easy as sending a pdf over email, or airdrop; and that's the philosophy Reminal has been built around. You run `reminal`, and you get qr code (for phones) that takes you to a website (no ssh app needed) and session+key which you can use on any other terminal and it would feel exactly like typing in the source terminal. :)