| Session transport |
Authenticated UDP, direct or through Goblin relays; SSH for setup only | Authenticated UDP; SSH bootstrap |
SSH over TCP | Reconnectable TCP; SSH bootstrap | Runs and monitors SSH |
| Roaming / temporary loss |
Session continues with the running client, directly or through relays; relay lease applies | Session continues with the running client |
No built-in session resumption | Reconnects to the same session | Restarts SSH; does not preserve the remote PTY by itself |
| Predictive local typing |
Yes, inherited from Mosh | Yes | — | — | —; uses SSH |
| Catching up after congestion |
Latest screen state; can skip intermediate frames | Latest screen state; can skip intermediate frames |
Ordered byte delivery | Replays buffered bytes after reconnect | SSH byte delivery; restart is not replay |
| Compression |
zstd-22 state updates; optional trained dictionaries | zlib state updates |
Optional -C stream compression | No Mosh-style state compression | SSH's -C option |
| Local terminal scrollback |
Native received-row history by default; skipped output is absent | Incomplete; remote tmux/screen is the documented workaround |
Terminal-controlled byte-stream history | Terminal-controlled byte-stream history | As SSH; remote persistence needs tmux/screen |
| Carry Kitty / sixel graphics protocols |
Yes — supported static graphics via image/placement state and client-side re-encoding |
No — neither graphics protocol is carried |
Yes — inline protocol byte passthrough | Yes — inline protocol byte passthrough | Yes — through SSH's byte passthrough |
| File copying and deltas |
Two-pane file/directory copy, librsync deltas and goblin-skiffcp | Separate SSH/SFTP/rsync workflow |
SFTP/scp; rsync as a separate tool | No built-in two-pane delta-copy workflow documented | No file browser; can supervise SSH tunnels used by other tools |
| Background file FEC |
Reed–Solomon, paced below interactive work | — | —; TCP retransmission | —; TCP retransmission | —; uses SSH/TCP |
| TCP / SOCKS forwarding |
Experimental -L/-R TCP and -D SOCKS5 CONNECT, carried over Mosh UDP | — in the Mosh session |
-L/-R/-D | TCP port pairs via -t | SSH forwards with restart monitoring |
| Agent / X11 forwarding |
-A/-X; experimental, medium priority | — in the Mosh session |
-A/-X | No SSH agent/X11 channel equivalent documented | SSH options |
| Session traffic through jump hosts |
Yes — authenticated UDP relay through 1–4 Goblin servers via -J / ProxyJump |
No built-in session relay — SSH setup can jump, but Mosh UDP still travels directly to the destination |
Yes — TCP through ProxyJump / -J | Yes — TCP, with an ET server on each hop | Yes — through SSH's TCP jump-host path |
Native tmux -CC |
Explicit --tmux-control ordered channel | —; ordinary remote tmux still works |
Protocol passthrough | Protocol passthrough | As SSH; reattachment needed after restart |
| Interactive vs bulk scheduling |
Separate directional estimates; terminal first, background files last | RTT-adaptive terminal updates; no built-in bulk file path |
SSH channels over TCP | Resumable byte stream over TCP | No new transport scheduler |