Share your terminal, peer to peer
Run one command, share a link. Your terminal streams straight to the browser over an encrypted WebRTC connection — no terminal data ever passes through a server.
Join a session
Have a code?
Paste the code or link your host shared, and jump straight into their terminal — nothing to install.
How it works
A handshake, then the server steps aside
The signaling server only introduces the two peers. After that, terminal data travels directly — it never sees your session.
Run porthole host
The agent spins up a PTY on your machine and registers a short-lived session with the signaling server.
Share the link
You get a link, code, and QR. The viewer opens it in any browser — desktop or mobile — and the two peers negotiate a connection.
Stream peer to peer
Once the WebRTC DataChannel opens, the server drops out. Keystrokes and output flow directly between host and browser.
Features
Everything you need to share a shell
Built for the way developers actually pair, debug, and demo — with privacy as the default, not an add-on.
Private by design
Terminal data flows over an encrypted WebRTC DataChannel directly between peers. The signaling server only brokers the handshake — it never sees a single keystroke.
One static binary
No runtime, no dependencies. Cross-compiled for macOS, Linux, and Windows.
Read-only mode
Share a view-only session. Input is rejected at the source, not just hidden in the UI.
Password protected
Gate any session behind a password so only the people you trust can connect.
Open on mobile
Scan the QR and watch — or type — from any phone. The viewer is built for touch too.
Runs anywhere
Any modern browser is the viewer. Nothing to install on the watching end.
Install
Up and running in one command
Grab the agent for your platform, then run porthole host. The viewer needs nothing but a browser.
$ curl -fsSL https://assets.porthole.professorhusnain.com/install.sh | shPrefer to build from source, or want every flag? Read the docs
Security & privacy
Terminal data never touches the server
Porthole was built privacy-first. The architecture makes eavesdropping not a policy you trust, but a thing that can't happen.
The server never sees your terminal
Signaling brokers the connection and then gets out of the way. Terminal bytes travel peer to peer — there is nothing to log, store, or leak.
Encrypted end to end
WebRTC DataChannels are encrypted with DTLS by default. The stream between your machine and the browser is private in transit.
Enforced at the source
Read-only and password rules are applied by the agent on your machine — not trusted to the viewer — so a tampered client can't bypass them.
Share your next session in seconds
Install the agent, run one command, send the link. That's the whole thing.