Home

Awesome

WindTerm

A Quicker and better SSH/Telnet/Serial/Shell/Sftp client for DevOps.

Hello WindTerm :rose:, hello world!

We're just beginning! If you want a high performance text editor, you can try WindEdit.

License

Completely FREE for commercial and non-commercial use without limitations. All released source codes (except thirdparty directory) are provided under the terms of Apache-2.0 license.

Introduction

See Intro Videos

Download

Linux binary, MacOS binary and Windows binary: https://github.com/kingToolbox/WindTerm/releases

Source Code

WindTerm is a partial open source project, and the source will be gradually opened.

Open source code includes, but is not limited to, the classes that can be used independently, such as functional, algorithms, gui widgets, etc., as well as functional libraries, such as network, protocols, etc., as well as all types that require open source according to the license.

Issues and feature requests

Any issues and feature requests are welcome.

Please click issues to commit an issue or a feature request.

Please click Discussion to discuss anything about SSH, SFtp, Shell(Linux shell, Windows cmd and powershell), Telnet, Serial and WindTerm.

Screenshots

Main Window (zsh):

MainWindow

Split views:

SplitView

DigeWhite Theme:

DigeWhite Theme

Features

SSH, Telnet, Tcp, Shell, Serial

GUI

Term

Session

Performance

Sftp Performance

The hardware used for generating the data in these benchmarks was

windows 10 - 2.3 GHz Intel Core i5 and 8GB memory.

WindTerm1.72, WindTerm 1.2, FileZilla 3.48.1, WinSCP 5.17.2 (Build 10278) tests are performed on WSL(Ubuntu 18.04.2).

The version of clients:

ApplicationVersionRelease Date
windtermv1.722020-10-25
windtermv1.22020-06-15
FileZillav3.48.12020-05-19
WinScpv5.17.2 (Build 10278)2020-03-09

All test data is for reference only.

5GB huge file (5,154,830 KB), generated by random data

Download TimeDownload RateUpload TimeUpload Rate
WindTerm 1.72 (Use high speed transfer)23s216.3 MB/s20s247.0 MB/s
WindTerm 1.7223s214.7 MB/s20s244.0 MB/s
WindTerm 1.237s139.3 MB/s43s119.9 MB/s
FileZilla32s161.1 MB/s30s171.8 MB/s
WinSCP81s63.7 MB/s91s56.7 MB/s

4400 files, 16 folders (107,042 KB), unzipped from vim-7.4.1049.zip

Download TimeDownload RateUpload TimeUpload Rate
WindTerm 1.726s3.9 MB/s13s8.1 MB/s
WindTerm 1.232s3.4 MB/s10s10.7 MB/s
FileZilla48s2.2 MB/s35s3.1 MB/s
WinSCP42s2.6 MB/s12s8.9 MB/s

Terminal Performance

The hardware used for generating the data in these benchmarks was

windows 10 - 2.3 GHz Intel Core i5 and 8GB memory.
MacOs 10.13 - 2.3 GHz Intel Core i5 and 8GB memory.

WindTerm 1.72, rxvt, putty, xterm, Windows Terminal tests are performed on WSL(Ubuntu 18.04.2).

Iterm2, kitty, Alacritty tests are performed on MacOS shell,

For WindTerm: No color scheme used in windterm. Color scheme will result in approximately 2% loss and more memory usage.

For Alacritty: Only supports up to 100,000 scrollback lines, so every test use "history: 100000" setting and no memory usage measured.

For Windows Terminal: Only supports up to 65,535 scrollback lines, so every test use "historySize: 65535" setting and no memory usage measured. 

The version of terminals:

ApplicationVersionRelease Date
windtermv1.722020-10-25
rxvt-unicodev9.2.22016-05-14
puttyv0.712019-03-16
xtermv3.302017-06-20
iterm2v3.3.62019-10-09
alacrittyv0.5.02020-07-21
kittyv0.14.62019-09-25
Windows Terminalv1.3.2651.02020-09-22

All test data is for reference only.

Test Command: "cat ./benchmark_randomdata"

The benchmark_randomdata contains 97.6MB random text (102,401,504 bytes, 1,329,878 lines, generated and tested by random_test.sh)

In all cases, three runs were made to warm system caches. The reported numbers are the median of five runs.

  1. Telnet:
Lines of scrollbackData Rate(MB/sec)Memory Usage(MB)
WindTermunlimited52.1106.6
rxvt1,350,00037.8842.2
Putty1,350,0004.9733.4
xterm1,350,0002.23328.4
Windows Terminal + telnet.exe65,5350.1Not measured, use 65,535 scrollback lines setting
  1. SSH:
Lines of scrollbackData Rate(MB/sec)Memory Usage(MB)
WindTermunlimited41.8108.5
rxvt1,350,00040.2842.2
Putty1,350,0004.8734.9
xterm1,350,0002.33328.4
Windows Terminal + ssh.exe65,5352.1Not measured, use 65,535 scrollback lines setting
  1. Shell:
Lines of scrollbackData Rate(MB/sec)Memory Usage(MB)
iterm2unlimited- (Take too long time)more than 1300
kittyunlimited17.22655
Alacritty100,00041.3-

Test command: "time seq 1 n" (n = [1000000, 2000000, 5000000, 10000000], scrollback lines: unlimited)

n = 1,000,000

Time(sec)Memory Usage(MB)
WindTerm1.23616.1
rxvt5.082633.3
putty4.161551.1
xterm40.4212500.7
iterm22.116146.3
Kitty2.5352376.5
Alacritty1.162Not measured, use 100,000 scrollback lines setting
Windows Terminal + ssh.exe23.246Not measured, use 65,535 scrollback lines setting

n = 2,000,000

Time(sec)Memory Usage(MB)
WindTerm2.28724.1
rxvt10.8961266.6
putty16.0451102.6
xterm68.1545005.5
iterm24.181383.2
Kitty5.6204749.9
Alacritty2.322Not measured, use 100,000 scrollback lines setting
Windows Terminal + ssh.exe50.381Not measured, use 65,535 scrollback lines setting

n = 5,000,000

Time(sec)Memory Usage(MB)
WindTerm5.52068.2
rxvt27.5333166.2
putty45.9112757.1
xterm-Out of memory
iterm210.8051048.3
Kitty-Out of memory
Alacritty5.799Not measured, use 100,000 scrollback lines setting
Windows Terminal + ssh.exe130.371Not measured, use 65,535 scrollback lines setting

n = 10,000,000

Time(sec)Memory Usage(MB)
WindTerm10.674133.3
rxvt-Out of memory
putty-Out of memory
xterm-Out of memory
iterm220.4682231.3
Kitty-Out of memory
Alacritty11.598Not measured, use 100,000 scrollback lines setting
Windows Terminal + ssh.exe264.739Not measured, use 65,535 scrollback lines setting

n = 10,000,000 scrollback = 30 Lines

Time(sec)Memory Usage(MB)
WindTerm10.1670.7
rxvt9.6870.1
putty95.3820.4
xterm286.5100.1
iterm225.4487.4
Kitty16.1040.5
Alacritty11.798Not measured, use zero scrollback lines setting
Windows Terminal + ssh.exe261.096Not measured, use zero scrollback lines setting

Linux Terminal Performance

The hardware used for generating the data in these benchmarks was

Debian 10 Vm - 4cpu and 4GB memory.

For WindTerm: No color scheme used in windterm. Color scheme will result in approximately 2% loss and more memory usage.

For other terminals: No memory usage measured because most of them write the history to disk or only support a limited number of lines in memory..

The version of terminals:

ApplicationVersionRelease Date
Windtermv1.92020-12-22
Gnomev3.30.22018-10-22
Mate Terminalv1.20.22019-02-11
Konsolev18.04.02019-04-12
Xfce4 Terminalv0.8.7.42018-5-15
QTerminalv0.14.12019-01-26

All test data is for reference only.

Test Command: "cat ./benchmark_randomdata"

The benchmark_randomdata contains 97.6MB random text (102,401,504 bytes, 1,329,878 lines, generated and tested by random_test.sh)

In all cases, three runs were made to warm system caches. The reported numbers are the median of five runs.

Cost Time
WindTerm1.976s
Gnome Terminal9.781s
Mate Terminal9.841s
Konsole25.050s
xfce4 Terminal10.520s
QTerminal20.763s

Test command: "time seq 1 n" (n = [1000000, 2000000, 5000000, 10000000], scrollback lines: unlimited)

n1,000,0002,000,0005,000,00010,000,00010,000,000<br>(scrollback lines: 100)
WindTerm0.846s (18.6MB)1.574s (26.6MB)4.046s (56.4MB)8.232s (102.2MB)7.748s (3.4MB)
Gnome Terminal0.920s2.152s5.271s11.111s13.109s
Mate Terminal0.822s1.698s5.943s10.920s12.290s
Konsole1.612s3.199s8.157s16.029s15.650s
xfce4 Terminal0.870s2.160s5.866s12.089s13.304s
QTerminal9.272s18.391s45.999s104.277s17.208s

Latency

Considering the network influence on the latency, the following data is from WindEdit. DIGEdit is the text component of WindTerm.

MinMaxAvgSD
WindEdit1.97.62.90.8
Windows Notepad0.916.57.81.8
GVim0.910.42.81.2

Shortcuts

Shortcut Keys List

Roadmap

Release cycle:

4-8 weeks.

Prerelease cycle:

1~2 weeks

Roadmap of v2.6 (Late-August, for reference only)

Download: WindTerm 2.5.0 (2022-7-24)

Roadmap of version 2.x:

Release Schedule:

VersionLevelTargetStatusTimeline
v0.xBasicBasic framework and basic features, but complete a high-performance text editor (WindEdit) as the base, and be able to use them normally.FinishedLong long ago ~ Sprint of 2020
v1.xManualPerfect features and can be used by most developers in their daily workFinishedSpring of 2020 ~ Winter of 2020
v2.xSemi automaticThrough triggers, macros, events, notifications and so on, developers can be assisted to complete some operations.DevelopingSpring of 2021 ~ Summer of 2022
v3.xFully automaticThrough plugins, scripts, machine learning and so on, automatically operating with achieving non-attendedPlanningSummer of 2022 ~ Winter of 2023

Acknowledgement

Contribution
EvoWebFranceFrench translation
kvnklkGerman translation
LemonawaSimplified Chinese translation
LuxNegraFrench translation
MosamXuSimplified Chinese translation