finds.dev← search

// the find

maxmcd/webtty

★ 2,811 · Go · MIT · updated Dec 2024

Share a terminal session over WebRTC

webtty shares a terminal session over WebRTC, meaning no relay server needed for the data path — just a peer-to-peer connection negotiated via SDP exchange. You paste a connection string to your colleague and they get a live terminal. Useful for quick pair debugging, especially when the target machine is behind a NAT you don't control.

- The core model is genuinely clever: WebRTC's NAT traversal means the session data flows peer-to-peer, not through someone's VPS. For most NAT configurations, this just works.

- The browser client (via WASM + xterm.js) means the other party doesn't need to install anything — they can connect from the static GitHub Pages URL.

- One-way mode with the -o flag is a real use case: a CI/CD job can emit a connection string on failure and let you drop into the broken environment without any pre-configured tunnel.

- Small, flat codebase — host.go, client.go, session.go. Easy to read the whole thing and understand exactly what's happening with the SDP negotiation.

- The one-way connection feature depends on 10kb.site, a third-party service the author runs personally. If that goes down, -o mode breaks entirely — and the README openly acknowledges this is philosophically awkward.

- Terminal sizing is a known rough edge. The host terminal frequently renders wrong and the workaround is 'use tmux', which is a real answer but not a fix.

- Last meaningful activity on the repo predates the current pion/webrtc API; the README itself warns about breaking API changes and tells you to manually run go get -u. That's a bad sign for long-term maintenance.

- No authentication beyond the obscurity of the SDP connection string. If someone intercepts or guesses that blob, they have a shell. Fine for a quick dev pairing tool, not appropriate for anything you'd call production use.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →