Share a free and user-friendly cross-platform SSH client: WindTerm

Publish: 2021-09-11 | Modify: 2021-09-11

Last October, I shared about FinallShell, an SSH client that is currently my go-to tool. FinallShell is convenient and easy to use, but I was frustrated with the increasing lag and high memory usage when the number of tabs increased.

Recently, I discovered WindTerm, a cross-platform SSH client developed in C language. It is completely free for both commercial and non-commercial use, with no limitations. All released source codes (excluding the third-party directory) are provided under the Apache-2.0 license. WindTerm also performs much better than FinallShell and Electerm in terms of performance.

Key Features

The following content is machine-translated:

  • Implements SSH v2, Telnet, Raw Tcp, Serial, and Shell protocols.
  • Supports SSH automatic execution during session authentication.
  • Supports SSH ProxyCommand or ProxyJump.
  • Supports SSH agent forwarding. Introduction video.
  • Supports SSH automatic login using password, public key, 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.
  • Integrated sftp and scp clients, supporting download, upload, delete, rename, create file/directory, etc.
  • Integrated local file manager, supporting move to, copy to, copy from, delete, rename, create file/directory, etc.
  • Supports Windows Cmd, PowerShell, and Cmd, PowerShell as Administrator.
  • Supports Linux bash, zsh, powershell core, etc.
  • Supports MacOS bash, zsh, powershell core, etc.

There are many more features, but I won't list them all.

Installing WindTerm

WindTerm supports the three major platforms (Windows, Linux, MacOS). Go to Github: https://github.com/kingToolbox/WindTerm/releases to download the latest version.

For Windows users, simply extract WindTerm_2.x.x_Windows_Portable.zip and double-click WindTerm.exe to use it.

Configuration and Usage

The author has introduced various features and usage instructions on his blog: https://kingtoolbox.github.io/. I have compiled some commonly used configuration options that may be helpful.

Setting Terminal Font

WindTerm does not have a built-in option to set the font in the window. However, you can modify the theme file to achieve this. The default theme is dige-black. Open scheme.theme located in the global\themes\dige-black directory of the WindTerm installation folder and find:

{
    "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 desired.

Setting Window Opacity

Open the top menu View - Window Opacity - Custom Opacity and adjust the opacity according to your preference, as shown in the image above.

Configuration Sync

If you need to use WindTerm on multiple computers and want to synchronize session information, you can sync the profiles folder under the WindTerm installation folder using a cloud storage service. Unfortunately, WindTerm does not support custom profiles paths at the moment, so 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 the user to enter a password. If you don't want the screen to lock automatically, you can modify global\wind.config and set application.lockScreenTimeout to 0 or a negative value (requires client restart).

Shortcut Commands

This is a useful feature that allows you to add frequently used and hard-to-remember commands to the shortcut commands, making it easier to use them next time. Click the gear button at the bottom right and follow the prompts to add them.

Setting Jump Server

If you have a poor network connection to a certain VPS, you can use any existing machine as a jump server by editing Session - SSH - Proxy - Jump Server 1 and selecting the desired server.

WindTerm has many more features, but I won't introduce them all here. Interested students can visit the author's blog: https://kingtoolbox.github.io/.

Performance

The author has provided performance test data on Github. WindTerm, being developed in C language, naturally has good performance. However, as an SSH tool, it doesn't require top-notch performance as long as it doesn't lag. Subconsciously, I checked WindTerm's memory usage and found it to be only around 70MB, which is much better than FinalShell's 2GB memory consumption.

Conclusion

WindTerm is feature-rich and fully meets the needs of system administrators. It can easily replace Xshell and FinalShell without any issues. However, WindTerm is not perfect. For example, many options are not available in the window settings and can only be modified manually through configuration files, which is somewhat inconvenient. According to the author, multi-language support will be added in the next version, so hopefully WindTerm will continue to improve.

WindTerm project repository: https://github.com/kingToolbox/WindTerm


Comments