Skip to content

Compared to et and mosh

Ken Tobias edited this page Jun 21, 2026 · 4 revisions

Compared to et and mosh

The original Eternal Terminal (et)

Eternal Terminal by Jason (Jez) Gao and contributors is the direct inspiration for etr. ET solved the reconnecting shell problem elegantly and has been widely used in production for years. etr exists because:

  • The original ET is written in C++ with a complex build system; etr is a single cargo install
  • ET requires a pre-running daemon (etserver) on the server; etr starts the server on the fly like mosh
  • etr uses QUIC (TLS 1.3) as the transport — no custom crypto, reliable ordered delivery, and multiplexed streams built in
  • etr supports port forwarding (-L)
  • etr's wire format is documented in PROTOCOL.md

If you need a battle-tested, production-grade reconnecting terminal today, use the original ET. etr is newer and less proven. That said — go give ET a star: https://github.com/MisterTea/EternalTerminal

mosh

mosh is another reconnecting shell that also uses SSH for bootstrap and UDP for the session. Key differences:

mosh etr
Protocol model State sync (roaming cursor) Ordered stream with replay
Transport UDP (custom) QUIC (TLS 1.3)
Crypto AES-128-OCB TLS 1.3 (AES-256-GCM / ChaCha20-Poly1305)
Post-quantum No Not yet (planned via rustls-post-quantum)
Forward secrecy No Yes (TLS 1.3 ephemeral X25519 per connection)
Server process Per-session (like etr) Per-session
Scrollback No (roaming display only) Yes (stream replay)
Port forwarding No Yes (-L/-R TCP and UDP, multi-sender)
Escape sequence ~. ~.
Login shell Yes Yes (.zprofile/.zlogin sourced)
Session env vars SSH_CONNECTION ETR_CONNECTION, ETR_VERSION, SSH_CONNECTION

mosh's roaming-display model makes it very bandwidth-efficient for interactive use. etr's stream model is simpler to reason about and enables correct scrollback and replay.

Summary

et mosh etr
Language C++ C++ Rust
Server model Pre-running daemon Per-session Per-session
Crypto AES-256-GCM AES-128-OCB TLS 1.3 (AES-256-GCM / ChaCha20)
Post-quantum No No Planned
Forward secrecy Yes No Yes (TLS 1.3)
Protocol spec Internal Published PROTOCOL.md
Install Package manager Package manager cargo install etr

Clone this wiki locally