opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

An OpenSSH-compatible client that also handles unstable Wi-Fi and roaming
GitHub RepoImpressions2

Project Description

View on GitHub

An OpenSSH-Compatible Client That Also Handles Unstable Wi-Fi and Roaming

You're deep in a remote session over a flaky hotel Wi-Fi connection, and the drop happens. Your SSH session dies, your work is gone, and you're left reconnecting from scratch. If that scenario sounds familiar, trzsz-ssh (or tssh) is worth a look. It's an SSH client built as a drop-in replacement for the OpenSSH client, with some extended features aimed at exactly this kind of pain.

What It Does

tssh is an SSH client designed to be fully compatible with openssh. The goal is straightforward: mirror all the features you already rely on in the standard client, while adding capabilities that openssh doesn't offer. If you've got muscle memory for ssh flags and config files, the idea is that you won't have to relearn anything.

The extended feature set is where things get interesting. Paired with a companion project called tsshd, tssh supports intermittent connectivity. That means it allows roaming and can be used on high-latency links—cellular data connections, unstable Wi-Fi, and similar environments where a traditional SSH session would just fall over.

Why It's Cool

  • It's a genuine drop-in replacement, not a wrapper. The README lays out an extensive compatibility table, and it's not a token effort. Pseudo TTY handling (-t, -T, RequestTTY), algorithm selection (-c, Ciphers, KexAlgorithms), SSH proxying (-J, -W, ProxyJump, ProxyCommand)—it's all there. The same goes for network options (-4, -6, AddressFamily, ConnectTimeout), command execution (-s, RemoteCommand, LocalCommand, PermitLocalCommand), and connection multiplexing (-M, -S, -O, ControlMaster, ControlPath, ControlPersist). If you've got an existing workflow, there's a good chance it just works.

  • The compatibility runs deep. SSH agent forwarding (-a, -A, ForwardAgent, IdentityAgent, IdentitiesOnly, SSH_AUTH_SOCK), X11 forwarding (-x, -X, -Y, and the related ForwardX11 options), basic login flags, canonicalization, authentication methods, known hosts handling, and port forwarding (-L, -R, -D, plus the corresponding config directives)—all supported. That's a lot of surface area to match, and the README presents it as a core design goal rather than an afterthought.

  • The roaming support solves a real problem. Most SSH clients assume a stable connection. When the network hiccups—which happens constantly on mobile connections or public Wi-Fi—the session dies. The combination of tssh and tsshd is specifically built to survive that. If you work from coffee shops, trains, or anywhere with unreliable connectivity, this is the feature that'll actually change your day-to-day.

  • It's MIT licensed. No licensing gymnastics, no commercial tiers to worry about. You can use it, fork it, and integrate it without legal headaches.

How to Try It

  1. Head to the repository at https://github.com/trzsz/trzsz-ssh and check the releases page for your platform.
  2. Install tssh following the instructions in the README (the project maintains both English documentation at trzsz.github.io/tssh and Chinese documentation at trzsz.github.io/cn/tssh).
  3. Once installed, try using it exactly as you would use ssh. Start with something simple like connecting to a host you already have configured, then gradually test the flags you use most often.
  4. To take advantage of the roaming and intermittent connectivity features, you'll also need to set up tsshd on the server side.

Since it's designed as a drop-in replacement, the migration path is about as low-friction as it gets. You can alias it, test it alongside your existing setup, and switch over when you're comfortable.

Final Thoughts

tssh is a solid option if you spend a lot of time in remote sessions and your network isn't always cooperative. The compatibility work is the foundation here—without it, the extended features wouldn't matter much—and the README suggests that foundation is taken seriously. The roaming support is the headline addition, and it addresses a problem that openssh simply wasn't built to solve. If you're on stable wired connections all day, you probably don't need this. But if you're frequently working over cellular or unreliable Wi-Fi, it's worth trying.


Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: 40572a41-7bf7-467e-9d33-649f48a23347Last updated: October 9, 2026 at 07:09 AM