Porthole

Quickstart

Host your first peer-to-peer terminal session in under a minute.

Once the agent is installed, sharing a terminal is one command.

Start a session

porthole host

Porthole spawns your shell and prints a code, a link, and a QR code:

┌─────────────────────────────────────┐
│  🔭 Porthole v0.1.0                 │
└─────────────────────────────────────┘

  Session ready!

  Code  →  p3rx-9kma
  Link  →  https://porthole.professorhusnain.com/s/p3rx9kma

  [ QR code ]

  ● Waiting for viewer...

You are now typing in the shared shell. It is a normal shell — your prompt, your aliases, your working directory.

Share it

Send someone the code or the link, or have them scan the QR from a phone. They can watch in two ways, and both are first-class:

The moment they connect, the two of you are on a direct, encrypted peer-to-peer channel and the server steps aside.

End the session

Press Ctrl+] then q, or just exit the shell (exit or Ctrl+D). The session tears down immediately and the link stops working.

Ctrl+C does not end the session

While hosting, your terminal is in raw mode and Ctrl+C belongs to the shared shell — exactly as it does over SSH. It interrupts whatever is running inside the session; it does not stop sharing.

The local command prefix is Ctrl+]. See Host controls for the full list.

Common variations

Share a view-only session that rejects all input:

porthole host --readonly

Require a password before anyone can join:

porthole host --password "correct horse"

Invite specific people, each with their own private link:

porthole host --allow Ali --allow Sana

Redact credentials from output before it reaches the viewer:

porthole host --mask

Record the session to a file you can replay later:

porthole host --record

Automatically close the session after a while, or after the first viewer leaves:

porthole host --expire 30m
porthole host --once

See the CLI reference for every flag.

On this page