TUI programs for Windows
On Linux-based systems, contrary to Windows, there is a huge amount of command line applications, and command line applications with an Text-base user interface (TUI).
On Windows systems, command-line applications are not used as much, and TUI programs are generally rare to encounter.
The main examples of TUI programs are file managers (like mc
) and editors like vim
, nano
, and many others.
As a daily Windows user, I use cygwin
a lot. It gives me a Unix-like environment (and Unix-like programs) that works in a Windows environment (contrary to WSL2 and a virtual machine).
Nevertheless, the integration is not perfect (although most limitations can circumvented) and one might prefer a non-cygwin solution that works out-of-the-box.
The biggest inconvenience of cygwin
and similar solutions are handling paths (cygpath
helps to convert between POSIX and Windows paths), some interaction between cygwin
and non-cygwin
applications, access to network drives, some specific resources like sound system, having different programs in PATH
, and so on.
I got curious about "native" TUI programs there are for Windows, but was not able to find much.
By "native" I mean programs for which I do not need to install an environment like cygwin
, even if internally such a program might ship its own Cygwin-like environment.
File (and archive) manager
There is mc
, although support for Windows is suboptimal.
Otherwise, another open-source alternative is far
, for which Windows is the first-class citizen.
Both file managers also have their internal command-line editor.
File viewer/Pagers
For viewing textual files, a text editor, a program like cat
, bat
or less
are more than enough.
But for other file formats? Sometimes it is possible to convert them to text, and view the converted document, but for some formats specialized viewers can do a better job.
source code management
There is tig
, which is already bundled with git for Windows.
Yes, git
comes with a Cygwin-like environment, but there are executables (git.exe
and tig.exe
) that can be used from cmd
and powershell
directly.
Mail client
Alpine seems to offer a native windows binary, while mutt
and neomutt
support Windows "only" through cygwin
.
However, if you were looking for a mail client that supports the exchange protocoll… I’m afraid that there is only Outlook, or maybe this plugin for Thunderbird, but no TUI solutions.
Browser
The lynx
browser also offers a Windows installer, but it does not seem to support https
out of the box.
A possible alternative would be browsh, even if it requires Firefox.
Wishlist
I do not strictly need those programs, as I’ve never worked in a command-line-only Windows environment, like Windows Nano Server, and as I have always been able to install cygwin
, but nevertheless, there are still many programs missing.
Even in a graphical environment, TUI programs have multiple advantages.
First, there is less context switching.
Second, TUI programs are generally programmed to be used with a keyboard. This means that complex action can be achieved by pressing a sequence of keys, which is generally much faster than moving the mouse on the screen (after gathering some experience).
Third, TUI programs are generally less bloated and consume fewer resources.
Registry viewer and editor
It seems that far
has a plugin for that, but I wish there would be something "standalone".
autoruns, taskschd.msc
, and services.msc
Since there are myriads of ways of starting a program automatically, (and a myriad of programs are started automatically) autoruns
is a must-have program for maintaining your system.
Similarly, I wish there would be something for the task scheduler, I would be more than happy to use an editor; for example with crontab
, crontabe -e
opens the editor for configuring it.
And there should be also something for managing services.
Windows firewall and Network manager
Something for managing the Windows Firewall (adding, inspecting, and removing firewall rules) and the network settings.
System-wide package manager
One can only dream.
Every half-decent Linux system has a package manager.
It is not only there for installing programs, but also for managing the system itself, updating, and removing components.
Imagine being able to write pkg update defender
for upgrading Windows Defender, pkg install firefox
for installing the latest packaged version of Firefox, and pkg remove lang-de
for uninstalling the German language package, and all those operations are done consistently.
And not only that; if a program depends on another program or external library, the package manager would ensure that one version is installed, and track the dependency also during updates and removals.
No more wondering if you can remove some "Microsoft Visual C++ Redistributions".
There are some package managers, like winget
🗄️ and chocolatey
but in my experience, they have a lot of inconsistencies, and they do not handle the operating system itself.
This is not science fiction; it can be done.
In fact all Linux and BSD systems I am aware of have a package manager that can do the described operations, and much more.
appget (not apt-get
!) did a better job in providing some features, but it has been abandoned since winget
from Microsoft appeared.
Last but not least, since this is a list of TUI programs, none of the mentioned programs has a TUI like, for example, aptitude
.
Documentation
Something like man
pages.
If there were something like a system-wide package manager, then having the documentation from the command line would be even more practical.
One central place where to find the documentation for Windows, cmd
, PowerShell, and installed applications. The package manager for updating the available documentation too, just like on all Linux and BSD-based systems.
But even without a package manager, man
pages can be organized manually, and thus would still be useful.
Do you want to share your opinion? Or is there an error, some parts that are not clear enough?
You can contact me anytime.