Skip to content

Getting Started

Ken Tobias edited this page Jun 17, 2026 · 5 revisions

Getting Started

Prerequisites

  • Rust toolchain on both client and server (rustup.rs)
  • SSH access to the remote host (passwordless recommended)
  • etrs in PATH on the remote host — installed automatically alongside etr via cargo install

Install

cargo install etr

This installs two binaries to ~/.cargo/bin:

  • etr — the client you run locally
  • etrs — the server binary that etr starts on the remote host via SSH

The remote host needs etrs in its PATH. If the remote also has Rust installed, run cargo install etr there too. Otherwise copy the etrs binary manually and ensure it's in PATH for SSH sessions (add ~/.cargo/bin to PATH in ~/.bashrc or ~/.zshrc).

Connect

etr user@host

etr will SSH to the host, start etrs in the background, and hand off to a persistent QUIC session. You'll see your normal shell prompt. From this point, your session survives network drops, laptop sleeps, and Wi-Fi switches.

Common variations

# Non-standard SSH port
etr -s 2222 user@host

# etrs is not in PATH — specify the full path
etr --server-path /home/user/.cargo/bin/etrs user@host

# Verbose output (see connection events)
etr -v user@host

# Full packet trace for debugging
etr -vvv user@host

Test on localhost

A quick sanity check before using on a remote host:

# Make sure passwordless SSH to localhost works
ssh-copy-id localhost

# Connect
etr localhost

Detaching and reattaching

etr does not currently support detach/reattach from the CLI (the session lives as long as the etr process). If your etr process is killed without sending a clean Disconnect, the server keeps your shell alive for 30 minutes, and a new etr invocation will start a fresh session (not reattach).

Uninstall

cargo uninstall etr

Clone this wiki locally