MOSH(1)

NAME
mosh - mobile shell with roaming and intelligent local echo

SYNOPSIS
mosh [options] [--] [user@]host [command...]

DESCRIPTION
mosh (mobile shell) is a remote terminal application that supports intermittent connectivity, allows roaming, and provides speculative local echo and line editing of user keystrokes. Compared with ssh, mosh is more robust — its connections stay up across sleeps and changes in the client's IP address — and more responsive, because the protocol is tolerant of packet loss and the client can echo most keystrokes immediately, without waiting for a network round-trip. mosh uses ssh to establish a connection to the remote host and authenticate with existing means (e.g., public-key authentication or a password). mosh executes the unprivileged mosh-server helper program on the server, then closes the SSH connection and starts the mosh-client, which establishes a long-lived datagram connection over UDP. To improve responsiveness, mosh runs a predictive model of the server's behavior in the background, trying to guess the effect of each keystroke on the screen. It makes predictions for normal typing, backspace, and the left- and right-arrow keys. When it is confident, mosh displays the predictions without waiting for the server. The predictive model must prove itself anew on each row of the terminal and after each control character, so mosh avoids echoing passwords or non-echoing editor commands. By default, mosh shows its predictions only on high-latency connections and to smooth out network glitches. (On longer-latency links, the predicted cells are underlined until confirmed by the server.) Occasional echo mistakes are corrected within a network round-trip and do not cause lasting effect. mosh does not support X forwarding or the non-interactive uses of SSH, including port forwarding or sshfs. mosh works through typical client-side network address translators but requires UDP to pass between client and server. By default, mosh uses the ports between 60000 and 61000, but allows the user to request a particular UDP port instead.

OPTIONS

command
    Command to run on remote host. By default, mosh executes a login shell.

--client=PATH
    path to client helper on local machine (default: "mosh-client")

--server=PATH
    path to server helper on remote machine (default: "mosh-server") The server helper is unprivileged and can be installed in the user's home directory.

--predict=WHEN
    Controls use of speculative local echo. WHEN defaults to `adaptive' (show predictions on slower links and to smooth out network glitches) and can also be `always` or `never'. The MOSH_PREDICTION_DISPLAY environment variable controls this setting permanently and can adopt the same three values. Even on `always', mosh will only show predictions when it is confident. This generally means a previous prediction on the same row of the terminal has been confirmed by the server, without any intervening control character keystrokes.

-a  Synonym for --predict=always

-n  Synonym for --predict=never

-p NUM, --port=NUM
    Use a particular server-side UDP port, for example, if this is the only port that is forwarded through a firewall to the server. Otherwise, mosh will choose a port between 60000 and 61000.

ESCAPE SEQUENCE
The escape sequence to shut down the connection is Ctrl-^ . (typically typed with Ctrl-Shift-6, then a period).

SEE ALSO
mosh-client(1), mosh-server(1). Project home page: http://mosh.mit.edu

AUTHOR
mosh was written by Keith Winstein <mosh-devel@mit.edu>.

BUGS
Please report bugs to mosh-devel@mit.edu. Users may also subscribe to the mosh-users@mit.edu mailing list, at
http://mailman.mit.edu/mailman/listinfo/mosh-users