DuProcess 742477bf6e
ci / test (push) Has been cancelled
ci / fuzz-smoke (push) Has been cancelled
ci / windows-client (push) Has been cancelled
ci / package-release (linux-x86_64, ubuntu-latest) (push) Has been cancelled
ci / package-release (macos-aarch64, macos-14) (push) Has been cancelled
ci / package-release (macos-x86_64, macos-13) (push) Has been cancelled
ci / package-release (windows-x86_64, windows-latest) (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
Add Windows client packaging and recovery tools
2026-06-20 19:40:33 -04:00
2026-06-19 16:40:58 -04:00
2026-06-11 08:42:28 -04:00

Dosh

Dosh is a fast encrypted remote terminal. It keeps the good parts of SSH and Mosh for day-to-day shell work: quick attach, roaming over UDP, reconnect after network changes, persistent server-side terminals, optional predictive typing, and TCP forwarding.

Dosh uses SSH-compatible bootstrap for first setup and can use its native cached attach path after trust is established. The goal is simple: type dosh my-server and land in a usable terminal about as fast as the network can allow, then keep that terminal alive when Wi-Fi, sleep, or the client process gets messy.

Status

  • Clients: macOS, Linux, and Windows.
  • Server: Unix-like hosts with PTY support.
  • Windows: client-only; install with PowerShell and connect to a Unix Dosh server.
  • Security: encrypted transport, pinned Dosh host keys, replay-resistant attach tickets, and SSH fallback for bootstrap/recovery.
  • Not included: X11 forwarding, SFTP/SCP replacement, or a Windows server.

Install

Unix/macOS server or client:

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

Unix/macOS client only:

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:

irm https://git.palav.dev/Palav/dosh/raw/branch/main/install.ps1 | iex

The installers prefer release binaries and fall back to a source build when needed.

Use

Set up a host from your SSH config:

dosh setup my-server

Connect:

dosh my-server

Run a command on connect:

dosh my-server tm

Check the install and network path:

dosh doctor my-server
dosh selftest my-server

Repair local cached attach state without changing host trust:

dosh recover my-server

Update:

dosh update
dosh update --check

Forwarding

Local forward:

dosh forward my-server -L 8080:127.0.0.1:80

Dynamic SOCKS forward:

dosh forward my-server -D 1080

Remote forward:

dosh forward my-server -R 2222:127.0.0.1:22

Agent forwarding is opt-in with -A and must also be allowed by the server.

Config

Client config lives at:

~/.config/dosh/client.toml
~/.config/dosh/hosts.toml

Server config lives at:

~/.config/dosh/server.toml

Useful client defaults:

default_session = "new"
auth_preference = "native,ssh"
predict = true
predict_mode = "experimental"
cache_attach_tickets = true
disconnect_status = true

Development

Build and test:

cargo test
cargo build --release

Run the terminal/TUI regression harness:

make tui-harness

Package release artifacts:

sh scripts/package-release.sh
S
Description
Dosh dormant shell: SSH-speed Rust remote terminal attach over encrypted UDP
Readme 13 MiB
v0.1.17 Latest
2026-07-03 20:35:22 +00:00
Languages
Rust 94.5%
Shell 3.7%
PowerShell 1.1%
JavaScript 0.4%
Makefile 0.2%