Towards Better Terminal Emulators
In 1992, I fell in love with Unix and Linux, and I set this as my new home. I was coming from the world of DOS and Windows. While DOS was a limited operating system, there was a tremendous amount of innovation in text user interfaces. The speed, convenience and shortcuts made me feel like a super-hero. I could do so much with so little.
DOS applications were incredibly fast, and they achieved that usually by directly manipulating the memory that was mapped to the video display. But this was not the way things were done in the Unix world. In the Unix world, software was designed around the notion of sending a stream of bytes and special escape sequences to the terminal to carry out your commands.
At first, I did not feel much at home on Unix. I had exchanged some of my agility, favorite tools and super-powers for others, and I missed my old life, among the most important gaps was the lack of a file manager like the “Norton Commander”. It became clear that, if I was going to stay in the Unix world, I needed to at least make some changes around my new home, and I set out to implement a file manager for Unix which would eventually become the “Midnight Commander”
Command Line Renaissance
While the world moved to graphical user interfaces and backend systems were starting to look obsolete, the advent of open source, and the economics of cloud computing have injected new life into the Unix world and the command line. Morgan had a great twitter thread discussing how old ideas become relevant again.
In the blink of an eye, the Unix command line went from being an esoteric interface that only people that witnessed the moon landing could understand to becoming the tool of choice for cloud hackers — the lingua franca of the modern internet.
All cloud providers offer Unix solutions. They all offer command line interfaces. They compete not only on their hosting capabilities, but on the experience they provide on the command line. It has become so important that Microsoft, who popularized this movement to desktop computing, had to build an entirely new terminal emulator for the Windows desktop, and even lets you run Linux inside Windows. Modern libraries for developing text mode user interfaces are everywhere, and for many languages, Charm for Go, Gui.cs and Spectre for C#, Textual for Python are used extensively.
Ever since the launch of the iPhone, like many others, I have been in awe at how much potential is packed in these tiny devices that we carry in our pockets. I loved the mobile world so much, that I spent a decade building developer tools and libraries for building mobile applications, and for those of you that know me, I am infatuated with the design, features and capabilities of the iOS platform. And I figured I should be marrying two of my of my loves together.
We think that there are a lot of possibilities to blend the cloud world and the mobile world, and today we are launching “La Terminal” for iPhone and iPad.
La Terminal is an ssh client with a state of the art terminal emulator for mobile command line hackers on iOS and iPadOS. Our 1.0 version is the baseline that we will be building upon.
Some of La Terminal features include:
- Comprehensive VT-100 to VT-400 emulation
- Image support (sixel, and the iTerm2 standard)
- International input, and international output
- Tap support (mapped to mouse actions)
- Dynamic and true color support
- Pixel shaders for soothing backgrounds
- SSH Session preservation
- iCloud sync support for your snippets, hosts and keys.
- Keychain support to securely store your passwords and synchronize them across your devices.
- Secure Enclave keys, bound to your mobile device
- App-driven hyperlink support
We will be talking about those features in more detail in coming weeks.
Visit the App Store to join like-minded command-line aficionados in La Terminal, join the discussion and follow @LaTerminalApp on twitter.