About this project
Eternal Terminal (ET) is a remote shell client-server system that survives network disruptions. Unlike plain SSH, when a connection drops, it automatically reconnects and restores the session exactly where the user left off — no interrupted commands or lost output.
### How it works
ET uses three components:
- **`et`** (client): Runs on the local machine. Authenticates via SSH, then switches to a persistent ET connection over TCP port 2022.
- **`etserver`** (server daemon): Runs as a system service (typically root-managed) on the remote host. Accepts client connections and routes them to the correct user session.
- **`etterminal`** (server-side helper): Launched by `et` over SSH. Hosts the actual terminal session and registers with `etserver` via a FIFO.
### Key features
- **Automatic reconnection**: Network blips, WiFi transitions, or VPN drops do not kill your session.
- **SSH-based auth**: Leverages existing SSH keys and config for secure authentication.
- **Port forwarding**: Supports `-t` flag for local and remote port forwarding.
- **Jumphost support**: Connect through intermediate hosts with `--jumphost` and `--jport`.
- **HTM multiplexer**: Bundled terminal multiplexer (`htm`) supports native windows, tabs, and splits in compatible terminal emulators, integrating with tmux control mode.
- **Configurable**: Server settings live in `/etc/et.cfg` (port, bind address, etc.).
### Installation
Pre-built packages are available for macOS (Homebrew, MacPorts), Ubuntu/Debian (PPA and official deb repo), Fedora, CentOS 8+, FreeBSD, openSUSE, and NixOS. Windows is supported via WSL. Source builds are also documented for Debian/Ubuntu, CentOS 7, and macOS.
### Usage
```bash
et hostname # default port 2022, current username
et user@hostname:8000 # custom port
et hostname --jumphost jump # via jumphost
```
ET reads both user-specific and system-wide SSH config files; pass `--ssh-config` with an absolute path to isolate from ambient SSH configuration, or `--no-ssh-config` to disable it entirely.
### Protocol docs
Detailed protocol and HTM design documentation is available in the repository under `docs/`.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.