Introduction
sshx provides instant collaborative terminal sessions accessible through a web browser. A single command generates a shareable link that lets remote participants see and interact with the same terminal, each with their own labeled cursor. It is built for pair programming, live debugging, and teaching scenarios.
What sshx Does
- Creates a shared terminal session accessible via a unique URL
- Shows each participant's cursor with a name label in real-time
- Supports multiple terminal panes in an infinite canvas layout
- Encrypts traffic end-to-end so the relay server cannot read session content
- Requires no account or installation for viewers — just a browser
Architecture Overview
sshx is written in Rust. The client binary spawns a local pseudo-terminal and establishes an encrypted WebSocket connection to a relay server. The relay forwards messages between participants without decrypting them. The browser frontend is a lightweight TypeScript application using xterm.js for terminal rendering and a custom canvas for cursor display.
Self-Hosting & Configuration
- Install the client with the one-line curl installer or build from source with Cargo
- Self-host the relay server using the provided Docker image for private deployments
- Set the
SSHX_SERVERenvironment variable to point the client at your own relay - Use
sshx --shell <path>to choose a specific shell (bash, zsh, fish) - Session links expire automatically after disconnect; no persistent data is stored
Key Features
- End-to-end encryption ensures the relay server never sees plaintext terminal data
- Infinite canvas lets participants open multiple terminal panes side by side
- Real-time multiplayer cursors with names for easy collaboration
- Cross-platform client for Linux, macOS, and Windows
- No sign-up or browser extension required for viewers
Comparison with Similar Tools
- ttyd — serves a terminal to the browser but does not support multiplayer cursors or end-to-end encryption
- tmate — terminal sharing over SSH; sshx uses the browser and adds visual multiplayer features
- VS Code Live Share — full IDE sharing; sshx is terminal-only and much lighter
- tmux shared sessions — requires SSH access for all participants; sshx works via a browser link
FAQ
Q: Is the public relay server safe to use? A: Sessions are end-to-end encrypted. The relay cannot read terminal content. For extra control, self-host the relay.
Q: Can I restrict who joins my session? A: The URL acts as the access token. Only share it with intended participants. Self-hosted relays can add network-level restrictions.
Q: Does sshx support copy-paste? A: Yes. Standard browser clipboard shortcuts work inside the terminal pane.
Q: What happens if the host disconnects? A: The session ends and the link becomes invalid. No data persists on the relay.