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.
Requirements
Section titled “Requirements”etserverinstalled and running on the server, listening on TCP port 2022. PocketCmd always connects to port 2022.etterminalon the server. It ships in the same package asetserver.- SSH access to the server. ET sessions are started over SSH.
# Ubuntusudo add-apt-repository ppa:jgmath2000/etsudo apt update && sudo apt install et
# Fedorasudo dnf install et
# macOS (Homebrew)brew install MisterTea/et/etOther 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.
Set up an ET server
Section titled “Set up an ET server”- Create or edit the server with its SSH address and credentials.
- Tap Test Connection. When the test finds
etserverinstalled and running, ET appears under Protocol. - 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.
Session lifetime
Section titled “Session lifetime”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.
ET compared with Mosh
Section titled “ET compared with Mosh”| 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, port forwards and jump hosts
Section titled “Files, port forwards and jump hosts”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.
Troubleshooting
Section titled “Troubleshooting”“ET unavailable, using SSH”
Section titled ““ET unavailable, using SSH””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.
“No ET: etserver is not running.”
Section titled ““No ET: etserver is not running.””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.
ET is missing under Protocol
Section titled “ET is missing under Protocol”The server form only offers ET after Test Connection has found etserver installed and running.