# Dosh Dosh is an encrypted remote terminal for fast reconnecting shells. It is meant to replace Mosh and day-to-day interactive SSH sessions. It runs a `dosh-server` on the remote machine and a `dosh` client locally. The first setup can use SSH. After that, Dosh can attach over encrypted UDP with cached credentials, keep terminal sessions alive, reconnect after network changes, and forward TCP ports. ## Support - Client: macOS, Linux, Windows - Server: Unix-like systems with PTYs - Windows: client only - UDP port: one configured server port, default `50000` Dosh is not an SCP/SFTP client and does not implement X11 forwarding. Windows is client-only. ## Install Server and client on Unix/macOS: ```sh curl -fsSL https://git.palav.dev/Palav/dosh/raw/branch/main/install.sh | sh -s -- both --repo https://git.palav.dev/Palav/dosh.git --port 50000 ``` Client only on Unix/macOS: ```sh curl -fsSL https://git.palav.dev/Palav/dosh/raw/branch/main/install.sh | sh -s -- client --repo https://git.palav.dev/Palav/dosh.git ``` Windows client: ```powershell irm https://git.palav.dev/Palav/dosh/raw/branch/main/install.ps1 | iex ``` ## Commands ```sh dosh setup HOST # import SSH config and trust the Dosh host key dosh HOST # connect dosh HOST COMMAND # connect and run a command dosh update # update Dosh dosh doctor HOST # check config and connectivity dosh recover HOST # clear cached attach state and re-check ``` Examples: ```sh dosh palav dosh palav tm dosh forward palav -L 8080:127.0.0.1:80 dosh forward palav -D 1080 dosh forward palav -R 2222:127.0.0.1:22 ``` Agent forwarding is opt-in with `-A` and must be enabled on the server. ## Config ```text ~/.config/dosh/client.toml ~/.config/dosh/hosts.toml ~/.config/dosh/server.toml ``` Common client settings: ```toml default_session = "new" auth_preference = "native,ssh" predict = true cache_attach_tickets = true disconnect_status = true ```