Skip to content

Eternal Terminal

Eternal Terminal (ET) keeps a terminal session running on the server and reconnects to it after a network drop, device sleep or IP change. It runs over TCP, so it works on networks that block the UDP traffic Mosh needs.

  • etserver installed and running on the server, listening on TCP port 2022. PocketCmd always connects to port 2022.
  • etterminal on the server. It ships in the same package as etserver.
  • SSH access to the server. ET sessions are started over SSH.
Terminal window
# Ubuntu
sudo add-apt-repository ppa:jgmath2000/et
sudo apt update && sudo apt install et
# Fedora
sudo dnf install et
# macOS (Homebrew)
brew install MisterTea/et/et

Other systems are covered in the Eternal Terminal install guide. On Linux, start the daemon with sudo systemctl enable --now et, and allow inbound TCP 2022 in the firewall.

  1. Create or edit the server with its SSH address and credentials.
  2. Tap Test Connection. When the test finds etserver installed and running, ET appears under Protocol.
  3. Select ET and save.

Opening a terminal on the server now starts ET directly. PocketCmd logs in over SSH, runs etterminal with a client ID and passkey generated for this session, and connects to etserver on port 2022. If ET cannot be started, you get a plain SSH shell instead and the message “ET unavailable, using SSH”.

You can also start a single ET session on an SSH server from its server sheet without changing the server’s protocol.

The shell runs inside etserver, independent of the connection. When the network drops, PocketCmd reconnects with the same credentials and reattaches to the same shell. ET buffers output while you are disconnected and sends it on reconnect, so the scrollback has no gaps.

The session also survives closing or restarting PocketCmd. The app stores the session credentials, sealed with your vault key, for up to 72 hours and resumes the session the next time you open it.

The server sheet’s Sessions list shows this device’s saved ET sessions. Tap one to resume it, or long-press for Resume, Copy Session ID and Kill Session. Closing a session in the app ends it on the server. Kill sessions you no longer need: etserver keeps a session until it is ended.

Eternal Terminal Mosh
Transport TCP 2022 UDP 60000–61000
Scrollback Complete Can have gaps under heavy output
Local echo No Yes, on slow links
Resume after app restart Up to 72 hours Up to 7 days

If you run tmux on the server, tmux already keeps the shell and its history, and the choice comes down to the network. See Compare Protocols.

Files, workspaces and port forwards on an ET server use a separate SSH connection to the same host. Port forwards therefore do not survive a network change the way the ET session does.

With a jump host, the SSH login that starts etterminal goes through the chain, but the ET connection goes straight from the device to port 2022 on the server.

PocketCmd logged in but could not start ET. Check that etterminal is installed and on the PATH, that etserver is running and that TCP 2022 is reachable from the device.

The server sheet found the etserver binary but no running daemon. Start it (sudo systemctl start et on Linux) and refresh the sheet’s sessions to check again.

The server form only offers ET after Test Connection has found etserver installed and running.