
The terminal that
gets out of your way.
Manage complex local stacks without the mental overhead. Terminal7 is a visual multiplexer that replaces tmux chords with intuitive controls, keeping your workflow organized, persistent, and secure across every device.


/ and ? without lifting your hands off the keyboard.
Why seven? Becuase it’s the first seventh genreation terminal.
Terminals have been with us since the first digital computer, Z3, came out in 1941. Z3’s terminal was just a numeric keypad. It took 14 years till the Whirlwind Mark I computer that had a keyboard-typewriter.
It took nine more years for the first display screens to be released in 1964. This early the next geenration to come along and very few lucky developers got to work with screen. This generation of Terminals worked in block mode, where the entire screen is transmitted.
Docker is great. It’s not only a lightweight VM but also a library of OS images. It makes it easy to run a server on a machine without having to install anything on the host.
This is especially true for python and node projects which depend on a lot of external libraries. Docker helps package it all in a portable image with all dependencies includes. A docker image can run on any machine and used by k8s and other orchestration tools.
[Edit: 2024-08-07 Addinng the second visit to the wizrds and some code]
WebRTC is a weird protocol. On one hand, it has the power to connect to every device on the network and stream video, audio and data. On the other, it’s incomplete. It depends on “magic” - an unspecified signaling server that teleports connection candidates between the peers until a connection is made.
This magic was new to me so I sought advice. My quest led me to a sect of wizards that were practicing this kind of sorcery. They call themselves pions and they share a Golang WebRTC library to use in their quests. The pions can be found on #pion channel on the gophers’ slack. I messaged them with a simple query: How to conjure the signaling magic?
As Terminal7 includes three main components, changes can get complicated. When a change encompasses more than one program, we tread carefully, using tests to separate concerns and break down the work.
We start at the lowest level, usually writing webexec tests. For example, when adding clipboard support, I first wrote grey box tests to ensure webexec adheres to the new clipboard protocol.
Grey box tests are tests that access the internal state of the program to validate its behavior. They are not as complete as black box tests but they are faster as they require less setup. In webexec case, we use Go built-in testing and a WebRTC test client to ensure webexec is adhering to its contract.
Greetings Snowflakes!
I hope this version finds you well. It’s a big one, with one big feature and a few improvements. I want to thank Yael Hazan and Alon Milveski for their contributions to this release.
Yael added a color indication to the latency: yellow when it’s above 100ms and red when it’s above 400ms. Alon trimmed the in-gate stats, leaving only latency and moved the display inside the terminal window. They both found a couple of bugs and together we squashed them.
Greetings Earthlings!
I hope this version finds you well. This patch version was includes:
We’ve also added the new support command that send your report together with Terminal7’s log to our support system. Please use it when you find bugs or things look funny.
Happy hacking!
Greetings Users & The Curious
I hope this version finds you well. This version has been unlike any before - just as I was starting to work on it war broke out.
Stories from the massacre hit me hard and I barely got anything done in the first couple of weeks. Almost every day we’ll have sirens go off rushing us the bomb shelter just below my building’s lobby. I remember one siren that went off just as I was cornering one snicky bug. I felt the complex flow I held in my mind dissolved in a second as my daughter was urging me to leave the keyboard and run to the shelter. Still, I’m thankful for that and other snicky bugs as they kept my mind away from the horrors.
This is a big version, on of the biggest we’ve ever released. Version 1.7 added Android support and 1.8 adds a Web version.
It is packaged as a Progressive Web App and can be installed from chrome’s toolbar. Naturally, it doesn’t support SSH, only WebRTC. I use it on my desktop to work on the localhost making the transition to/from the iPad seamless. When at home I use Terminal7 on the large screen and mechanical keyboard. When I roam, I connect to my desktop and it’s just like I’m back at my seat.
Greetings Terminal7 users,
I am excited to introduce you to Version 1.6 of Terminal7, the terminal designed for the tablet age. With this latest release, we make the SSH version free as its been since the PuTTY days.
One of the major updates in Version 1.6 is the division of Terminal7 into two distinct versions: a free version and an online service. The free version, which is now available in the App Store, supports only SSH connections. You can connect to any SSH server and take advantage of a range of features: a local multiplexer, camera pane, touch gestures, true colors, nerd fonts and more. Additionally, we have added biometric authentication for added convenience and security.
WebRTC is a weird protocol. It’s a monster made from over 30 RFCs that can carry real time video, audio and data. Still, it can’t establish a connection on its own. It counts on the app to provide a signaling service that passes ICE candidates between the peers.
In a WebRTC apps, ICE is used to discover the best path for sending data between the two parties. This process involves gathering a list of candidate IP addresses and ports, and then trying each one in turn until a successful connection is made. The actual process of gathering candidates and establishing a connection is handled by the WebRTC library, leaving the application developer to focus on the connection.