>_
dshh
ssh · sftp · scp · ftp · serial · local — one exe

Every protocol.
One process.

Dshh is a tabbed SSH, SFTP, SCP, FTP and serial client for Windows — with a built-in local terminal. Every protocol is implemented in-process, in Rust, inside a single portable executable — nothing shelled out, nothing on your PATH, no installer.

↓ Download for Windows View changelog
v1.1.0 · portable · win64 · no installer · no admin rights
Dshh Dshh
>_
dshh
+
production3
>_
prod-web-01
admin@10.0.4.21:22
>_
prod-web-02
admin@10.0.4.22:22
~/
assets-bucket
deploy@10.0.4.30:22
local & lab2
PowerShell
local · pwsh
bench-rig
COM4 · 115200 baud
in-process · zero external binaries
SSHprod-web-01
SFTPassets-bucket
LOCALPowerShell
SERIALbench-rig
· connecting to prod-web-01 …
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.8.0-45-generic x86_64)
Last login: Tue Jul 7 08:41:07 2026 from 10.0.4.18
admin@prod-web-01:~$ docker ps
CONTAINER ID IMAGE STATUS NAMES
f3a91c02be71 nginx:1.27 Up 12 days edge
08c4d1a99e02 api:2026.06 Up 12 days api
admin@prod-web-01:~$
~/ /var/www/assets ↑ upload
namesizemodified
releases/jul 07 09:02
img/jun 30 17:44
app-2026.06.3.js412 KBjul 07 08:58
styles.css88 KBjul 07 08:58
4 items · sftp · connected as deploy
· starting Windows PowerShell …
PowerShell 7.4 · running as you
PS C:\Users\you> dshh --version
dshh 0.2.0
PS C:\Users\you> Get-Process dshh | Select Id,CPU
Id CPU
7312 1.83
PS C:\Users\you>
· opened COM4 @ 115200 8N1
[ 0.000] boot: ESP32-S3 rev2, flash 8MB
[ 0.412] wifi: sta connected, rssi -58
[ 2.103] sensor: temp=24.6C hum=41%
[12.103] sensor: temp=24.7C hum=41%
>
df -h docker ps tail -f syslog + manage
$ run a command… ctrl+k
broadcast off
protocols

Six ways in. Zero child processes.

>_
SSHrussh

Real xterm terminal with buffer search, session logging, highlight rules and port forwarding.

~/
SFTPrussh-sftp

File browser over your existing SSH hosts — one click from any terminal session.

SCPrussh

Copy files to/from a server over the SSH channel — for hosts with SFTP disabled.

FTPsuppaftp

Plain FTP for the legacy boxes you can't decommission yet.

Serialserialport

COM ports at any baud rate — bench rigs, switches, embedded consoles.

Localportable-pty

cmd & PowerShell in a tab. Run-as-Admin opens elevated in its own window.

why in-process

One exe. The whole client.

Single process. Every protocol is a Rust crate compiled into dshh.exe. Nothing spawned, nothing on PATH.
Saved profiles. Grouped connections with duplicate and quick reconnect — not a PowerShell history.
Tabs + split pane. Terminals stay mounted across tab switches; buffers survive.
Compose + broadcast. Quick command chips, a Ctrl+K compose bar, and one-keystroke broadcast to every connected host.
task manager — before / after
# the usual stack
putty.exe  pageant.exe  plink.exe
psftp.exe  ftp.exe  ssh.exe
# dshh
dshh.exe  ← ssh · sftp · scp · ftp · serial · local
download

Get Dshh for Windows

v1.1.0 latest jul 2026
Dshh 1.1.0 — portable
↓ Dshh-portable.zipwin64
unzip & run dshh.exe · no installer, no admin
uninstall = delete the file
checking github for the latest release…
updates
You'll know when there's a new build
01  on launch, dshh checks GitHub Releases
02  compares the tag against the running build
03  newer? a quiet in-app notification — your call
You're up to date
dshh 0.2.0 · checked on launch
Checking for updates…
GET api.github.com/…/releases/latest
Update available
dshh 0.3.0 · released today
DownloadChangelog
Downloading dshh 0.3.0
Dshh-portable.exe0%
Ready — dshh 0.3.0 downloaded
saved next to dshh.exe · restart to apply
▶ simulate update check ↺ replay
No background service, nothing silent. This page reads the same feed — it always shows the newest release.
changelog

Release history

v1.1.2latest
sep 2026
Retry a wrong password, colour on connect
  • A saved session whose password the server rejects now asks for it again instead of leaving a dead tab. Type the right one and it connects, and the corrected password is written back to the saved session — but only after the server accepts it, so a second wrong guess never overwrites a working one. Covers SSH, SFTP and FTP, and asks for the key passphrase where that is what failed
  • A MobaXterm-style connect banner: a coloured box at the top of each session with the target, port, auth method, jump host, saved forwards and login command. It scrolls away with the session and lands in the log
  • The terminal status bar is drawn as coloured segments — green connected, amber connecting, red on error — with a clock alongside the uptime, grid and encoding
  • The accent colour set on a connection now tints that session's toolbar and status bar, so prod doesn't look like staging
  • All three are on by default and switch off individually in Settings › General
v1.1.1
aug 2026
Reorder quick commands and macros
  • Quick commands can be reordered — drag a row by its grip in the manage dialog and the chips above the compose bar follow that order, so the ones you actually use sit where your eye lands
  • Macros get the same handle, reordered the same way
  • Both lists also move with the keyboard: focus a grip and press the up or down arrow, which beats dragging inside a scrolling dialog
v1.1.0
aug 2026
Paste guard, transfer progress, file owners
  • Pasting two or more lines now asks first, listing the exact numbered lines that would run — every newline is an Enter to the shell, so a stray copy used to execute commands with no warning. Covers Ctrl+V, Ctrl+Shift+V, Shift+Insert and right-click paste; switch it off in Settings › Terminal
  • Uploads and downloads show a real progress bar with bytes moved, percentage and position in a multi-file batch, in the SFTP/FTP browser and the SCP dialog. Servers that won't report a size get an indeterminate bar rather than a fake percentage
  • The file browser has an owner column. SFTP resolves numeric uids against the server's own /etc/passwd, so you see root and www-data rather than 0 and 33; FTP reads the names straight out of its listing
v1.0.1
aug 2026
Right-click copy and paste
  • Right-clicking the terminal now pastes the clipboard. Select text first and the same right-click copies it instead — so select, right-click, right-click again copies a line and pastes it back without touching the keyboard
  • Fixed: a quick command typed into the new-row fields is saved when you press Done, instead of being discarded unless you started a second one
v1.0.0
jul 2026
1.0 — forwarding in every direction, macros, agent auth
  • Port forwarding now covers all three OpenSSH directions: local (-L), remote (-R, where the server listens on your behalf) and dynamic (-D), which runs a built-in SOCKS5 proxy
  • Every running forward shows live byte counters and an indicator that flashes on real traffic, so you can tell an idle tunnel from a busy one
  • SSH agent authentication — the private key never enters Dshh. Uses the Windows OpenSSH agent service, falling back to Pageant
  • Macros: record the commands you type in a terminal, name them, and replay the sequence into any session from the bottom dock
  • Optional terminal status bar with the target, time connected, grid size and encoding, plus indicators for logging, macro recording and running forwards
  • Optional Windows 11 Mica or acrylic backdrop behind the app chrome. The terminal itself stays opaque
  • Tabs carry a per-protocol icon, so a long row of sessions is scannable without reading labels
  • Settings is now organised into four tabs — General, Terminal, Output & logs, Security — instead of one long scroll
  • Font and line height are dropdowns rather than free text. The font list shows only the monospace faces actually installed on your machine, each rendered in its own face
  • Session logs default to a logs folder inside the portable data folder, so they travel with the app and auto-logging works without picking a folder first
  • The portable download is now a folder — dshh.exe beside its own data/ — so settings and saved connections travel with it to another machine or a USB stick
  • Upgrading from a non-portable build carries your existing settings and saved connections across on first run, leaving the originals untouched
v0.5.3
jul 2026
Type a path to jump there
  • The file-browser address bar is now editable — type a directory and press Enter instead of clicking down one level at a time. Works on both the remote and local panes
  • SFTP sessions show the real starting directory (e.g. /home/you) instead of a bare "."
v0.5.2
jul 2026
Transfer & dialog fixes
  • Fixed: SFTP/FTP uploads keep the file's exact name and extension — the local folder path is no longer part of the uploaded filename
  • Fixed: the connection editor and other dialogs no longer close when a text selection started inside a field ends outside the box
v0.5.1
jul 2026
Readable session logs & more terminal color
  • Recorded session logs are now clean, readable text — colour codes stripped, backspace / delete / progress-bar rewrites applied, proper UTF-8
  • Telnet sessions can record logs too
  • Richer terminal palette and more built-in highlight keywords (fatal, refused, timeout, completed, listening, …)
v0.5.0
jul 2026
File browser overhaul & zip downloads
  • Dual-pane split view — local disk next to the remote listing, drag & drop both ways to upload / download
  • File-type icons in the SFTP/FTP browser
  • Fixed: downloads keep the original file type in the save dialog; folders no longer render as plain files
  • The portable build now ships as Dshh-portable.zip
v0.4.0
jul 2026
Telnet, jump hosts, multi-exec & self-update
  • Telnet sessions and one-hop SSH jump hosts (bastion)
  • Multi-exec — broadcast typed input to several SSH tabs at once
  • Drag & drop upload into the file browser; edit remote files in your local editor with auto re-upload
  • Optional master-password encryption for saved credentials
  • In-app self-update from GitHub Releases; SCP tilde/quote fixes
v0.2.0
jul 2026
Local terminal, SCP & a terminal fix
  • Local terminal — cmd & PowerShell in a tab (portable-pty / ConPTY); Run-as-Admin opens elevated in its own window
  • SCP file transfer over the SSH channel (upload / download), for hosts with SFTP disabled
  • Fixed a PTY width desync that smeared line editing (arrows, history) after the font loaded
v0.1.0
jul 2026
Initial release
  • SSH, SFTP, FTP and serial — all in-process (russh · russh-sftp · suppaftp · serialport)
  • Tabbed workspace with split pane; terminals survive tab switches
  • Saved connection profiles with groups
  • Quick command chips, Ctrl+K compose bar, broadcast to all connected hosts
  • Buffer search (Ctrl+F), session logging, ANSI highlight rules, SSH port forwarding
unreleased
known-hosts verification (host keys are currently trust-on-first-use) · recursive transfers · multi-file drag select
docs

Up and running in 30 seconds

Quickstart
01download Dshh-portable.zip
02unzip it anywhere — a USB stick works
03run dshh.exe and add your first host with +
No installer, no admin rights, no services. Windows SmartScreen may ask once — the exe is unsigned for now.
Keyboard & commands
Ctrl + Kfocus the compose bar from anywhere
Ctrl + Fsearch the terminal buffer
Enterrun the composed command in the active tab
broadcastsend one command to every connected host
>_
dshh — in-process multi-protocol client
win64 · tauri 2 + react + rust · zero external binaries