You can SSH into a server and move files around with raw scp and sftp commands, but the moment you manage more than a couple of machines you start wishing for something friendlier — without giving up the terminal. That’s exactly the gap the new wave of TUI clients fills: full-screen file explorers and SSH managers that run entirely in your terminal, need no GUI, and usually ship as a single static binary.
This guide covers the modern terminal-native clients for SSH, SFTP, SCP, FTP and friends that are worth your time: the feature-rich file transfer tools like termscp, the new dual-pane SFTP explorers like sftui and TermiRs, and the SSH manager suites like sshm-rs, OmnySSH and lssh. I looked at platform support on Linux, Windows and macOS, what each tool needs from your system, and how well they hold up as true single-binary tools — including the two strong Go-based options, because you asked.
The short version: for a WinSCP-in-the-terminal experience across the most protocols, grab termscp — it’s the most mature option, supports SFTP, SCP, FTP, S3, SMB, WebDAV and more, and ships statically linked binaries for Linux, macOS and Windows. If you want a lightweight SFTP-only dual-pane tool, sftui is the minimal pick. For an SSH manager with an integrated terminal and SFTP browser, look at sshm-rs or OmnySSH. If you prefer Go, lssh is the battle-tested multi-tool suite. The details — and what each one needs from you before it will run — are below.
Why Use a TUI Client for SSH and File Transfers in 2026?
Raw ssh, scp and sftp are fine, but they have real gaps once you move past one-off transfers:
- No visual file exploration — with plain
sftpyou type every path; a TUI lets you browse both sides with arrow keys, exactly like WinSCP or FileZilla but inside your terminal - Multiple hosts get messy — remembering hostnames, ports, keys and usernames across a fleet of servers is error-prone; the manager-style tools read your
~/.ssh/configand give you a searchable list - Consistent single binary — most of these tools compile to one static executable per platform, so you can drop them on a server, an air-gapped jump host or a colleague’s Windows machine with no dependency install
- Works over your existing SSH — these are clients, not servers: they use your current keys, agents and
sshdsessions, so no firewall changes or new daemons - Remote-friendly — run them inside an SSH session on a headless box, through
tmux, or on machines where a GUI was never installed
What Every TUI Client Needs From Your System
Before picking a tool, it helps to know the common requirements. Most clients are pure clients — they connect to a standard OpenSSH sshd or FTP server — so the checklist on your side is short, but it differs between platforms:
- A capable terminal emulator — Windows needs Windows Terminal, ConHost with VT processing, or a terminal like Windows Terminal for the full mouse and color experience; Linux and macOS terminals generally work out of the box
- An SSH agent for key authentication (recommended) — tools like sftui strongly recommend a running
ssh-agentfor encrypted keys; macOS has one built in, Linux users may need to start it, and Windows 10+ shipsssh-agent.exeas an optional service - Build-time dependencies only if compiling from source — prebuilt binaries are self-contained; if you build Rust tools yourself you typically need OpenSSL development headers (
libssl-devon Debian/Ubuntu,openssl@3via Homebrew on macOS, vcpkg on Windows) pluspkg-config - Optional OS integrations — password storage uses your platform keyring (Keychain on macOS, Credential Manager on Windows, Secret Service/libsecret on Linux); SMB support and desktop notifications may pull in
libsmbclientandlibdbuson Linux when building from source - An SSH config file to get the most out of them — the managers parse
~/.ssh/config(or%USERPROFILE%\.ssh\configon Windows) to populate their host lists, so keeping your aliases there pays off immediately
If you’re on Linux and want encrypted-key auth to just work, make sure an agent is running before you start:
|
1 2 |
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 |
The Feature-Rich File Transfer Clients
These are the tools that feel like a desktop FTP client in your terminal: dual panes, bookmarks, transfers with progress, and support for many remote protocols.
termscp — The Most Complete Terminal File Transfer Tool
termscp has been the reference answer to “WinSCP for the terminal” since 2020, and it keeps getting better. It’s a feature-rich file transfer and explorer with support for SFTP, SCP, FTP/FTPS, Kubernetes, S3, Google Cloud Storage, SMB and WebDAV, wrapped in a polished ratatui-based UI. You can browse local and remote file systems side by side, edit files in your favorite editor, keep bookmarks, and even get desktop notifications when a large transfer finishes.
- Language: Rust | License: MIT | Version: 1.2.0 (September 2026)
- Platforms: Linux, macOS, Windows, FreeBSD, NetBSD
- Protocols: SFTP, SCP, FTP, FTPS, S3, Google Cloud Storage, SMB, WebDAV, Kubernetes
- Linux release binaries are statically linked against musl — they run on any distro with no runtime requirements
- Passwords can be stored in your OS key vault; themes, custom text editor and file sorting included
|
1 2 3 4 5 6 7 8 |
# Linux/macOS one-liner curl --proto '=https' --tlsv1.2 -sSLf https://termscp.rs/install.sh | sh # Windows (PowerShell) irm https://termscp.rs/install.ps1 | iex # Arch / NetBSD / Chocolatey pacman -S termscp # or: pkgin install termscp / choco install termscp |
|
1 2 3 |
termscp # start the interactive TUI termscp user@host:/var/www # connect straight to a path termscp update # self-update |
Perfect for: anyone who wants one tool that talks to nearly every remote protocol from a terminal, with mature packaging on all three major OSes.
Heads up: building from source on Linux needs libdbus-1, pkg-config and libsmbclient, but the official binaries skip all of that.
sftui — Minimal Dual-Pane SFTP
sftui (on crates.io) is a young, focused SFTP client with a clean dual-pane interface, built with Rust and ratatui. It deliberately does one thing: browse a local and a remote directory, select files with the space bar, and transfer them with a confirmation dialog. Hosts come straight from your ~/.ssh/config, and you can switch destinations at runtime without restarting. It’s the smallest and simplest tool in this roundup — currently at version 0.4.2, having evolved quickly since its 0.1.0 debut in July 2025.
- Language: Rust | License: MIT | Version: 0.4.2
- Platforms: tested on macOS; builds for Linux and Windows via cross-platform Rust libraries
- Reads
~/.ssh/config; vim-style navigation (j/k), search with/, staging withSpace - Requires
ssh-agentfor encrypted keys — password auth and unencrypted keys also work
|
1 2 3 4 |
cargo install sftui # requires Rust + OpenSSL dev libraries sftui # browse ~/.ssh/config hosts sftui -H my-server # connect directly to a host |
Perfect for: users who want a no-nonsense, keyboard-driven SFTP browser without bookmarks, S3 support or configuration overhead.
The catch: it’s SFTP-only, officially tested on macOS, and distribution is via cargo install rather than prebuilt binaries — expect to compile it yourself.
TermiRs — Async SSH Client With Dual-Pane File Explorer
TermiRs is a modern, async SSH terminal client built on russh and ratatui that goes beyond plain terminal sessions. It manages connections from a searchable list, supports password and public-key auth, imports your ~/.ssh/config, and throws in local, remote and SOCKS5 port forwarding. The SFTP file explorer is genuinely useful: dual panes, copy/paste transfers with progress, and remote file editing through your local editor of choice. Passwords are encrypted at rest with AES-256-GCM using system-specific keys.
- Language: Rust | License: MIT | Version: 0.3.3 (June 2026)
- Platforms: macOS, Linux and Windows binaries (including
aarch64Linux musl builds) - SSH config import, port forwarding with status tracking, dual-pane SFTP explorer, external editor
- Configuration in
~/.config/termirs/config.tomlwith encrypted password storage
|
1 2 3 4 5 |
# Download the matching binary from the GitHub releases page, then: ./termirs # In the TUI: 'n' adds a connection, Enter connects, # 'i' opens the file explorer, 'p' manages port forwards |
Perfect for: people who want SSH sessions, tunneling and file transfers in one asynchronous, responsive terminal app with encrypted credential storage.
The catch: it’s a younger project (first release September 2025) and currently distributed through GitHub releases rather than package managers.
EasySCP — A Fresh Termscp-Style Client
EasySCP is a brand-new terminal file transfer client and dual-pane file manager for Linux, macOS, BSD and Windows, supporting SCP, SFTP, FTP/FTPS, SMB/CIFS, S3, WebDAV and Kubernetes file operations. Full disclosure: its feature list, install scripts and even its dependency stack read very much like a fork or close sibling of termscp — same Rust version floor, same remotefs/tui-realm ecosystem, same one-line installers — so if you know termscp, you’ll feel at home instantly.
- Language: Rust | License: MIT | Version: 1.1.1 (July 2026)
- Platforms: Linux, macOS, FreeBSD, NetBSD, Windows
- Bookmarks, recent connections, OS key vault password storage, external editor support
- Linux/macOS one-liner, Windows PowerShell installer, plus
cargo install easyscpand Chocolatey
|
1 2 3 4 5 |
curl --proto '=https' --tlsv1.2 -sSLf \ https://raw.githubusercontent.com/paulo-amaral/easyscp/main/install.sh | sh # Windows (PowerShell) irm https://raw.githubusercontent.com/paulo-amaral/easyscp/main/install.ps1 | iex |
Perfect for: trying a fresh, actively bootstrapping termscp-style client — especially if you like the idea of MacPorts-based macOS installs or want to watch a new project grow.
The catch: it’s weeks old at the time of writing, with a tiny community. For production use, the battle-tested original (termscp) is the safer bet until EasySCP builds its own track record. Note also that on macOS the Cargo fallback disables SMB support because stock macOS lacks libsmbclient.
SSH Managers With Terminal and File Transfer Built In
These tools are less “file transfer app” and more “everything you need to manage a fleet of servers” — host lists, fuzzy search, terminals, and file browsers in one TUI.
sshm-rs — SSH Manager With Integrated Terminal and SFTP
sshm-rs is a polished Rust TUI that combines a full SSH connection manager with an integrated terminal and SFTP browser. It fuzzy-searches hosts with field prefixes (tag:, user:, host:), stores credentials in the OS-native keyring, organizes servers with groups and tags, and even broadcasts commands to multiple hosts at once. The term subcommand opens an SSH terminal with a side-by-side SFTP panel, bidirectional transfers with progress, and the SFTP panel can follow the terminal’s working directory via OSC 7.
- Language: Rust | License: MIT | First release: March 2026
- Platforms: Windows, Linux, macOS — single binary with Homebrew tap, winget and install scripts
- Port forwarding (local, remote, dynamic), command snippets, themes (Tokyo Night, Catppuccin, Dracula and more)
- SFTP terminal panel: edit remote files locally, zip and download directories, right-click context menu
|
1 2 3 4 5 6 7 8 |
# macOS / Linux brew tap bit5hift/tap && brew install sshm-rs # Windows winget install bit5hift.sshm-rs sshm-rs myhost # direct connection sshm-rs term user@host # terminal with integrated SFTP browser |
Perfect for: engineers juggling many servers who want host management, snippets, port forwarding and file transfers without leaving one tool.
The catch: it’s a fast-moving 2026 project; expect occasional rough edges and check the changelog between releases.
OmnySSH — Dashboard-Style SSH Manager
OmnySSH started as a TUI and still ships one (binary name omny) alongside a desktop GUI built on the same core engine. Its angle is a live dashboard: every server gets a card showing CPU, RAM, disk, uptime, top processes and a Docker badge, with one-click PTY terminals in tabs and a two-panel SFTP browser. Snippets with parameters can be broadcast to many hosts, and a one-click SSH key setup flow hardens fresh VPS boxes. It reads your existing ~/.ssh/config — including ProxyJump bastion hosts — and never writes to it.
- Language: Rust | License: Apache 2.0
- Platforms: prebuilt TUI binaries for Linux, macOS, Windows and Termux;
cargo install omnyssh, Homebrew tap and Nix also available - Live metrics dashboard, multi-session terminal tabs, two-panel SFTP, command snippets, fuzzy search
- One-click Ed25519 key setup with
sshd_configbackup and rollback; streamer mode masks real IPs
|
1 2 3 4 |
cargo install omnyssh # or: brew install timhartmann7/tap/omnyssh omny # launch the TUI # 'a' adds a host, '/' searches, '?' shows help |
Perfect for: SREs and solo operators who want a monitoring dashboard plus terminal and file access in one window, without an account or telemetry.
Heads up: the desktop app is the headline these days; the TUI remains maintained but the project’s energy visibly points at the GUI.
sshs — Terminal User Interface for SSH
sshs is the lightweight classic of the group: a focused TUI that lists every host in your ~/.ssh/config and lets you filter and connect with a couple of keystrokes. It’s deliberately minimal — no file browser, no bookmarks — and it delegates the actual connection to your system ssh binary, which keeps it tiny and secure. One important consequence: it only works where ssh is installed and on your PATH.
- Language: Rust | License: MIT | Available since: 2022
- Platforms: Linux, macOS, Windows prebuilt binaries plus Homebrew, Chocolatey, pacman, apk, .deb and Nix packages
- Reads
~/.ssh/config; supports custom config files with--config - Requires the OpenSSH
sshclient to be installed
|
1 2 |
brew install sshs # macOS / Linux (also: choco install sshs) sshs # pick a host from the list and connect |
Perfect for: people who live in ~/.ssh/config and just want a fast, pretty host picker without learning a new tool’s ecosystem.
ssh-x-term — The Go-Based All-in-One
ssh-x-term (binary sxt) is one of the few fully self-contained SSH clients written in Go, built on Bubble Tea. It implements SSH, SCP, SFTP, port forwarding and terminal emulation itself — no external ssh, plink or PuTTY required. Beyond the usual host list and dual-pane SCP/SFTP file manager, it adds a visual tunnel manager with live topology diagrams, a packet inspector with hex dumps, and credential storage through your OS keyring or a Bitwarden vault. It’s an ambitious project that shows how far Go TUIs have come.
- Language: Go | License: MIT | Version: 2.1.2 (August 2026)
- Platforms: Linux, macOS and Windows prebuilt binaries; also Homebrew tap, Chocolatey and
npm install -g ssh-x-term - Built-in terminal emulator with xterm-256color and 10,000-line scrollback; SCP/SFTP dual-pane manager
- Local/remote/dynamic port forwarding with live topology view; keyring and Bitwarden credential storage
|
1 2 3 4 |
npm install -g ssh-x-term # or grab a binary from GitHub Releases sxt # launch the TUI # 's' opens the SCP/SFTP file manager, 't' the tunnel manager |
Perfect for: users who want a single Go binary with no SSH dependencies and like the idea of visual tunnel inspection inside the terminal.
The catch: it’s a young, single-maintainer project — impressive feature velocity, but don’t expect a huge community behind it yet. On macOS or Linux the system keyring is required for local password storage.
lssh — The Battle-Tested Go Suite
lssh is the most mature Go option and really a family of tools rather than one binary: lssh (host picker, parallel commands, port forwarding), lscp (SCP-style transfer over SFTP including remote-to-remote), lsftp (interactive SFTP shell), lsmux (pane-based multi-host workspace), lsshell, lsmon, lssync, lsdiff, lspipe and lsshfs (mount remote dirs). Since 2017 it has grown into a terminal-native remote access suite with provider-backed inventories for AWS EC2, Azure, GCP and Proxmox, plus WinRM, telnet, and Bitwarden/1Password/OS-keychain secret resolution.
- Language: Go | License: MIT | Version: 0.10.0 (2026)
- Platforms: Linux, macOS, Windows
- Works with your existing
~/.ssh/configor its own TOML config; multi-host parallel execution - Provider connectors (beta) for cloud inventories; core SSH and file transfer commands are stable
|
1 2 3 4 5 |
brew install blacknon/lssh/lssh # or: go install github.com/blacknon/lssh/cmd/lssh@latest lssh # pick hosts and connect lssh -P # multi-pane mux workspace lscp -r host1:./dir host2:./dir # remote-to-remote copy |
Perfect for: sysadmins who want a proven, Go-based multi-tool suite that scales from a single host picker to cloud inventory automation.
Heads up: you install several binaries (or an all-in-one archive) rather than one command, and provider/connector features are still marked beta/experimental in v0.10.0.
Also Worth a Look
- term-ssh — a Rust ratatui SSH and SFTP client that is, at the time of writing, barely more than a repository stub with no license or releases. Keep an eye on it; don’t build on it yet.
- TerminaSSH — a modern desktop (Tauri + React) SSH client with terminal sessions and SFTP. It’s a great app but a GUI, not a TUI, so it only makes this list as context.
- Commercial GUI tools like Termius solve the same problems with a graphical interface and a subscription — useful, but out of scope here since the focus is open source and terminal-native.
Comparison: TUI SSH/SFTP/SCP Clients in 2026
| Tool | Language | License | Platforms | Main protocols | Best for |
|---|---|---|---|---|---|
Rust | MIT | Linux, macOS, Windows, BSD | SFTP, SCP, FTP, S3, SMB, WebDAV, more | All-round file transfer | |
Rust | MIT | macOS (Linux/Windows buildable) | SFTP | Minimal dual-pane SFTP | |
Rust | MIT | Linux, macOS, Windows | SSH, SFTP | SSH + tunneling + transfers | |
Rust | MIT | Linux, macOS, BSD, Windows | SCP, SFTP, FTP, SMB, S3, WebDAV, Kube | Fresh termscp-style client | |
Rust | MIT | Linux, macOS, Windows | SSH, SCP, SFTP | Multi-host management | |
Rust | Apache 2.0 | Linux, macOS, Windows, Termux | SSH, SFTP | Dashboard + terminal + files | |
Rust | MIT | Linux, macOS, Windows | SSH (via system ssh) | Fast host picker | |
Go | MIT | Linux, macOS, Windows | SSH, SCP, SFTP, tunnels | Self-contained Go client | |
Go | MIT | Linux, macOS, Windows | SSH, SCP, SFTP, WinRM, telnet | Multi-tool server suite |
Rust or Go? The Standalone Binary Question
You asked whether a standalone binary points toward Go. The honest answer: both ecosystems deliver true single-file tools here, but they reach that goal differently, and right now the richer feature set lives in Rust.
- Rust dominates this niche — termscp, sftui, TermiRs, sshm-rs, OmnySSH and sshs are all Rust, mostly built on ratatui and crossterm. Release pipelines compile Linux binaries statically against musl, so the artifacts run on any distro with no glibc or dependency requirements.
- Go makes static binaries trivial — cross-compiling a Go binary for Linux, macOS and Windows from one machine is a single
GOOS=/GOARCH=flag away, with no musl gymnastics. That’s exactly why ssh-x-term and lssh ship clean per-platform binaries. - If you must have Go, lssh is the battle-tested suite and ssh-x-term is the ambitious all-in-one. If you just want the most capable client, the Rust tools — termscp in particular — currently offer more protocols, more mature packaging, and bigger communities.
The practical checklist for any of these: it must run on Linux, Windows and macOS from a downloaded artifact; require no runtime dependencies (static linking); read ~/.ssh/config; and play nicely with ssh-agent and your OS keyring. Every tool above clears most of that bar — the table shows exactly where each one stands.
Which TUI Client Is Right for You?
- Want a WinSCP replacement for many protocols: termscp. Most mature, most protocols, best packaging.
- Prefer Go and need one proven tool for everything: lssh, with its suite of transfer, mux and monitoring commands.
- Manage a fleet and want snippets, tags and broadcast commands: sshm-rs or OmnySSH (pick OmnySSH if live server metrics matter).
- Just want a pretty host picker over your SSH config: sshs.
- Want SSH plus tunneling plus a file explorer with encrypted config: TermiRs.
- Want the smallest SFTP-only dual-pane browser: sftui — if you’re happy to build it with Cargo.
- Curious about a self-contained Go client with tunnel inspection: ssh-x-term.
- Tempted by EasySCP’s freshness: try it in a lab, but keep termscp for anything production.
Glossary
- TUI (Text User Interface)
- A full-screen, keyboard-driven interface rendered in the terminal, as opposed to a GUI window or a plain one-shot command line. TUIs are the modern evolution of old-school terminal menus.
- SFTP (SSH File Transfer Protocol)
- A secure file transfer protocol that runs inside an SSH connection. Despite the similar name it is unrelated to FTP; it is the protocol most of these tools use for browsing and transferring files.
- SCP
- The older secure copy protocol that ships with OpenSSH. Many “SCP” clients actually perform transfers over SFTP while keeping the familiar command-line syntax.
- ssh-agent
- A background program that holds your decrypted SSH keys in memory, so you authenticate without typing a passphrase for every connection. TUI clients use it heavily for key-based logins.
- Dual-pane
- A file manager layout showing two directory listings side by side — typically local on the left and remote on the right — so you can copy between them with a couple of keys.
- OS keyring / keychain
- The operating system’s secure credential store: Keychain on macOS, Credential Manager on Windows, Secret Service (libsecret) on Linux. Clients use it to save passwords without writing them to plain files.
- Static / musl binary
- A binary compiled with no dynamic library dependencies, so it runs on any compatible Linux system regardless of distro or glibc version. Rust projects build these with the musl libc target for release artifacts.
- ProxyJump
- An OpenSSH config keyword that routes a connection through a bastion host. Modern managers parse it so multi-hop hosts appear seamlessly in their host lists.
- WebDAV / SMB / S3
- Additional remote file protocols: WebDAV for HTTP-based file shares, SMB/CIFS for Windows network shares, and S3 for object storage. Clients like termscp expose all of them through one TUI.
Frequently Asked Questions
What is the best TUI client for SSH, SFTP and SCP in 2026?
termscp is the most complete terminal file transfer tool, with SFTP, SCP, FTP, S3, SMB, WebDAV and more, plus statically linked binaries for Linux, macOS and Windows. For multi-host SSH management, sshm-rs and OmnySSH are the strongest Rust options, and lssh is the battle-tested Go suite.
Do TUI SSH and SFTP clients work on Windows?
Yes. termscp, sshs, sshm-rs, OmnySSH, ssh-x-term and lssh all ship Windows binaries or installers. You need a modern terminal like Windows Terminal for proper mouse and color support, and the OpenSSH client on Windows for tools that rely on the system ssh binary.
Are there any TUI clients that work on macOS and Linux?
Nearly all of them. termscp, TermiRs, sftui (tested on macOS), sshm-rs, OmnySSH, sshs, ssh-x-term and lssh run on both macOS and Linux. termscp and EasySCP also support FreeBSD and NetBSD.
Is termscp free and open source?
Yes, termscp is MIT licensed and free to use commercially. It has been developed in the open since 2020 and its Linux release binaries are statically linked, so they run on any distro with no runtime requirements.
What requirements do TUI SSH clients have on Linux?
For prebuilt binaries, typically none — Rust release builds are statically linked against musl. Building from source needs Rust plus OpenSSL development headers and pkg-config; optional features like SMB and password keyring support pull in libsmbclient, libdbus and a Secret Service provider.
Which TUI client is best for managing many servers?
sshm-rs offers tags, groups, snippets and broadcast commands with an integrated terminal and SFTP browser. OmnySSH adds a live metrics dashboard. lssh is the Go option with parallel execution, mux workspaces and cloud inventory connectors.
Why does sftui need an SSH agent?
sftui authenticates with the ssh2 library and relies on ssh-agent for encrypted SSH keys, since it does not prompt for key passphrases itself. Start an agent with eval “$(ssh-agent -s)” and add your key with ssh-add before launching it.
Is there a single binary Go SSH client with SFTP?
Yes. ssh-x-term is a self-contained Go client covering SSH, SCP, SFTP and tunneling with no external ssh dependency. lssh is the longer-established Go suite with separate binaries for transfers, mux workspaces and monitoring.
Are these TUI clients compatible with AWS SSM or cloud servers?
lssh has provider connectors for AWS EC2 (with SSM and Instance Connect endpoints), Azure and GCP inventories, though they are still marked beta. termscp and EasySCP connect to S3 object storage directly, and all of them work with any normal SSH server, including cloud VMs.
Can TUI clients store passwords securely?
Yes. Most use the OS keyring: Keychain on macOS, Credential Manager on Windows and Secret Service on Linux. TermiRs encrypts saved passwords at rest with AES-256-GCM, and ssh-x-term can store credentials in a Bitwarden vault via the Bitwarden CLI.
What is the difference between sftui and termscp?
sftui is a minimal SFTP-only dual-pane browser distributed via cargo install, while termscp is a full-featured file transfer tool with SFTP, SCP, FTP, S3, SMB and WebDAV support, bookmarks, themes and prebuilt binaries for every major OS. Choose sftui for simplicity and termscp for capability.
Is EasySCP a fork of termscp?
EasySCP’s feature list, installers and dependency stack strongly resemble termscp, and it presents itself as its own MIT-licensed project released in July 2026. Treat it as a very young termscp-style client and prefer the battle-tested original for production use.
