← All work
shellbridge
A command line on a desktop machine, reachable from a phone, with nothing listening for inbound connections.
Status
Working: a phone web app, a relay, and an agent on the machine.
Language
TypeScript
Terminal
node-pty and xterm.js
Inbound ports
None
Lines
2,653
Reachable without being exposed
The obvious way to reach a machine from a phone is to open a port on it, which is also the way to end up with a shell on the public internet. This inverts it: the desktop dials out to a relay and holds that connection open, the phone connects to the same relay, and neither end ever accepts an inbound connection.
TLS terminates at the edge and the relay is reached through a named tunnel, so the machine running the shell has no exposed surface at all — the thing an attacker would have to find is not there to find.