A terminal, not a port forward.
ngrok is a great way to expose a port. It is a terrible way to share a shell — you end up wrapping ssh-d, gotty, or ttyd, fighting auth, and praying nobody fingerprints the open SSH port. share terminal is the purpose-built version.
$npx share-terminal startIf you reach for ngrok every time someone needs to look at your machine, share terminal collapses three layers (port forward + web TTY + auth) into one tool, peer-to-peer.
Coming from ngrok?
Most teams switch in an afternoon. HTTP / TCP tunneling through ngrok edge habits map cleanly to share terminal — here's the translation.
- 01
Stop using ngrok for terminal sharing
Keep ngrok for what it's actually good at — webhook testing, exposing local dev servers. Pull the SSH-over-ngrok kludge out of your README.
- 02
Install the share terminal CLI
npx share-terminal start spins up an authenticated, encrypted, ephemeral terminal session. Pairing code prints in a box, expires in 2 minutes.
- 03
Ditch the auth wrapper
No more basic-auth proxies, no more OAuth wrappers in front of gotty/ttyd. Identity is enforced inside the protocol: viewer must match host's Google sub.
- 04
Use ngrok for the remaining 80%
Webhook callbacks, sharing a local Next.js dev server with a designer, browser-side mobile testing. Two tools, two jobs.
Questions teams ask before they switch
Can't I just expose ssh via ngrok?
Does ngrok do end-to-end encryption?
What about ngrok TCP tunnels for SSH?
When should I still reach for ngrok?
One command. One encrypted tunnel.
No global install. No SaaS dashboard. No account to provision — sign in with Google, pair, share.
$npx share-terminal start