DEV Community

Cover image for I built OpenSesh, an open-source MobaXterm/Termius alternative in Rust and Qt 6
caixa
caixa

Posted on

I built OpenSesh, an open-source MobaXterm/Termius alternative in Rust and Qt 6

If you work with servers, you probably have a pile of tools open at once: a terminal, an SSH client, something for SFTP, something for tunnels, maybe an RDP client too. The all-in-one apps that exist are usually closed source, Windows-only, subscription-based or built on Electron.

So I built OpenSesh: a free, open-source and native remote connections client for Windows and Linux. Version 1.0 just came out. 🎉

👉 GitHub: https://github.com/caixax/opensesh
👉 Website: https://opensesh.cc

What it does

  • Terminals: a GPU-rendered terminal for every shell you have (PowerShell, cmd, Git Bash, WSL, /etc/shells), with tabs that split into panes, move between windows and broadcast input.
  • SSH: a built-in client with jump hosts, proxies, agents, one-time codes, certificates and auto-reconnect. X11 forwarding and Waypipe let you run remote GUI programs.
  • Files: SFTP and S3 (AWS, MinIO, RustFS) in a two-pane view, and a side panel that follows your terminal's current folder.
  • Tunnels: local, remote and SOCKS forwarding that reconnects by itself.
  • More protocols: telnet, serial ports (with a hex view), mosh, Docker/Podman containers, Kubernetes pods, and RDP and VNC remote desktops in tabs.
  • Snippets and macros with {{variables}} and secrets from the vault, session recording, and paste protection that warns you before a curl | sudo bash runs.
  • Server monitor: CPU, RAM, network and disk of the server in the status bar, with no agent installed. It's just a small shell loop on a separate SSH channel.

How it's built

  • Rust for the core, with the UI in Qt 6 / QML through cxx-qt. No Electron and no webviews.
  • Secrets live in a vault encrypted with XChaCha20-Poly1305. Its key is held by the system keyring or an Argon2id master password.
  • Settings are plain TOML files. You can sync them between computers with Git or Syncthing, and conflicts are merged record by record instead of overwritten.
  • Security: every parser of untrusted input (quick connect, pastes, ~/.ssh/config, the importers, the sync merge) is fuzzed weekly, and the repo includes a written threat model and security review.
  • Releases: each package is installed and launched on a clean Debian, Ubuntu, Fedora, Arch and Windows system in CI before it's published.

Try it

On Linux:

curl -fsSL https://raw.githubusercontent.com/caixax/opensesh/main/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

On Windows there's an installer (no admin needed), a portable zip and Scoop. You can download them from the releases page.

It imports your hosts from ~/.ssh/config, MobaXterm, PuTTY, Remmina or CSV, so you can try it in a couple of minutes.

What's next

A macOS version, winget and AUR packages, and signed Windows builds.

If you give it a try, I'd love to hear what works, what breaks and what's missing. Issues and PRs are welcome! ⭐

Top comments (0)