# sshx

> Shares a terminal session over the web with a single command, with real-time cursors, an infinite canvas of windows, and end-to-end encryption.

Stars: 7.7k · Language: Rust · License: MIT · Categories: Network

- Repository: https://github.com/ekzhang/sshx
- Website: https://sshx.io
- Page: https://www.trmn.sh/tools/sshx

## Install

- Homebrew: `brew install sshx`
- Install script: `curl -sSf https://sshx.io/get | sh`
- Cargo (from source): `cargo install --path crates/sshx`

## Overview

sshx is a terminal sharing tool. Running the `sshx` binary starts a remote terminal session and gives you a URL. Anyone with that URL can open the session in a browser and use the terminal together with you. It is a collaborative, web-based terminal, so the people you share with don't need an SSH client or an account.

In the browser, terminal windows sit on an infinite canvas. You can resize and move them, and zoom and pan around. Other participants' cursors show up in real time. Connections go to the nearest server in a globally distributed mesh. Sessions reconnect automatically and show real-time latency estimates. Predictive echo speeds up local editing, in the style of Mosh. Sessions use end-to-end encryption built on Argon2 and AES.

The client runs on Linux and macOS (x86_64 and ARM64, plus embedded ARMv6 and ARMv7-A) and on Windows (x86_64, x86, ARM64). The Linux binaries are statically linked. `curl -sSf https://sshx.io/get | sh -s run` runs it without installing. The README also shows this command in CI jobs such as GitHub Actions, GitLab CI, CircleCI and Buildkite. There it opens a remote session and prints the URL so you can debug a failing build. The README warns that on public repositories anyone can read the running job's logs, and so see the URL. Self-hosted deployments are not currently supported. The hosted service runs on Fly.io and Redis Cloud.

It suits developers and teams doing pair programming, remote debugging, or live demos, and anyone who needs to reach a CI runner's shell.

### Installation

```bash
# via Homebrew
brew install sshx
```

```bash
# via Install script
curl -sSf https://sshx.io/get | sh
```

```bash
# via Cargo (from source)
cargo install --path crates/sshx
```

![sshx shared terminal session in the browser](https://media.trmn.sh/cached/8936d76bc295a47ee054fc7af216edaa23134fb2734cfb6cdcac7f12016199f0.png)

## Alternatives

- [miniserve](https://www.trmn.sh/tools/miniserve.md): Single-binary, cross-platform CLI HTTP file server with auth, uploads, TLS, WebDAV, QR codes, and on-the-fly tar.gz/zip directory downloads. (Rust, 8.0k stars)
- [trippy](https://www.trmn.sh/tools/trippy.md): Network analysis tool combining traceroute and ping functionality for diagnosing networking issues (Rust, 8.1k stars)
- [spotify_player](https://www.trmn.sh/tools/spotify-player.md): Terminal Spotify client with streaming, Spotify Connect remote control, synced lyrics, audio visualization, daemon mode, and CLI commands. Requires Premium. (Rust, 7.3k stars)
- [xh](https://www.trmn.sh/tools/xh.md): HTTP client that reimplements HTTPie's syntax with focus on improved performance and speed. (Rust, 8.2k stars)
- [dog](https://www.trmn.sh/tools/dog.md): Command-line DNS client with colorful output, JSON support, and DNS-over-TLS/HTTPS protocols (Rust, 6.7k stars)

---

Canonical: https://www.trmn.sh/tools/sshx
