Introducing WindTerm: A Free and Powerful Cross-Platform SSH Client

WindTermSSH clientcross-platform terminallightweight SSH toolC language SSH
Published·Modified·

Last October, I shared FinallShell, a popular SSH client I currently use. While FinalShell is convenient and smooth, it becomes increasingly laggy as the number of tabs increases, and it consumes a significant amount of memory.

Recently, I discovered WindTerm, a cross-platform SSH client developed in C. It is completely free for both commercial and non-commercial use without restrictions. All published source code (excluding the third-party directory) is provided under the Apache-2.0 license. In terms of performance, it is significantly better than FinalShell and Electerm.

Key Features

The following content is machine-translated:

  • Implements SSH v2, Telnet, Raw TCP, Serial, and Shell protocols.
  • Supports automatic SSH execution during session authentication.
  • Supports SSH ProxyCommand or ProxyJump.
  • Supports SSH agent forwarding. Introduction video
  • Supports automatic SSH login using passwords, public keys, keyboard-interactive, and gssapi-with-mic.
  • Supports X11 forwarding. Introduction video
  • Supports direct/local port forwarding, reverse/remote port forwarding, and dynamic port forwarding.
  • Supports XModem, YModem, and ZModem.
  • Integrates SFTP and SCP clients, supporting download, upload, delete, rename, and create files/directories.
  • Integrates a local file manager, supporting move, copy from/to, delete, rename, and create files/directories.
  • Supports Windows Cmd, PowerShell, and running as Administrator.
  • Supports Linux bash, zsh, and PowerShell Core.
  • Supports macOS bash, zsh, and PowerShell Core.

There are too many features to list them all.

Installing WindTerm

WindTerm supports three major platforms: Windows, Linux, and macOS. Download the latest version from GitHub: https://github.com/kingToolbox/WindTerm/releases.

Windows users can simply unzip WindTerm_2.x.x_Windows_Portable.zip and double-click WindTerm.exe to start using it.

Settings and Usage

The author has introduced various features and usage instructions on his blog: https://kingtoolbox.github.io/. I have organized some common settings options that may be helpful.

Setting Terminal Fonts

WindTerm does not provide a font setting option in the window menu. However, you can modify the theme file to change it. The default theme is dige-black. Open the file global\themes\dige-black\scheme.theme in the WindTerm directory and locate:

{
			"name": "text.default",
			"style": {
				"foreground": "#F8F8F2",
				"background": "#1c1c1c",
				"fontFamily": "Microsoft-Yahei-Mono,Consolas Yahei Hybrid,Roboto Mono, Fira Code Retina, Lucida Sans Typewriter, Lucida Console, Monoca",
				"fontSize": 11
			}
		}

Modify the fontFamily property as needed.

Setting Window Transparency

Go to View - Window Opacity - Custom Opacity in the top menu and adjust according to your preference, as shown below.

Configuration Synchronization

If you need to use WindTerm on multiple computers and want to keep session information synchronized, you can directly sync the profiles folder in WindTerm using cloud storage. Unfortunately, WindTerm does not currently support customizing the profiles path, but hopefully, this will be supported in future versions.

Disabling Auto-Lock Screen

For security reasons, WindTerm automatically locks the screen after 30 minutes and requires a password. If you do not want auto-locking, modify global\wind.config and set application.lockScreenTimeout to 0 or a negative number (requires restarting the client).

Quick Commands

This is a very practical feature that allows you to add frequently used but hard-to-remember commands to quick commands for faster access. Click the gear button in the bottom right corner and follow the prompts to add them.

Configuring Jump Servers

If the network connection to a specific VPS is poor, you can use any existing machine as a jump server to log in. Simply edit Session - SSH - Proxy - Jump Server 1 to select the server.

WindTerm has many more features that I won't list here. Interested users can visit the author's blog: https://kingtoolbox.github.io/.

Performance

The author has published performance test data on GitHub. Since WindTerm is developed in C, its performance is naturally strong. However, as an SSH tool, it doesn't necessarily need top-tier performance; it just needs to run smoothly. I noticed that WindTerm's memory usage is only around 70MB, which is much better than FinalShell, which consumes 2GB of memory.

Conclusion

WindTerm is feature-rich and fully meets the needs of operations personnel, making it a viable alternative to Xshell and FinalShell. However, WindTerm is not perfect; for instance, many options are not yet available in the window settings and require manual configuration file editing, which can be inconvenient. According to the author, multi-language support will be added in the next version. I hope WindTerm continues to improve.

WindTerm Project Address: https://github.com/kingToolbox/WindTerm