Termius (YC W19) – SSH client that works on desktop and mobile

We are Roman and Dmitry, co-founders of Termius (https://termius.com). Termius is an SSH client that works on desktop and mobile. The big difference with other SSH clients that Termius syncs data across devices using end-to-end encryption.

DevOps, sysadmins, and network engineers benefit from using Termius because they can keep all the information for managing their servers in one secure place, e.g., snippets, connection strings, history, etc. Our product vision is to rebuild the command line experience around an engineer, not around the mainframe where it all started. For example, Termius will help engineers to safely keep information about their servers, shell commands, and terminal logs. This information will be accessible from any device and used to improve productivity, e.g., autocomplete commands in the terminal.

Dmitry and I met when we both got our first job in a small game development studio in Omsk, Siberia. Actually, at that time, it was an advertising agency with an ambition to become a game development studio. We were students, and it was a perfect place to learn on our own a ton about software development in C++. After four years of hard work, we managed to release a 3D game for PC with real-time physics. We involved kids in testing the gameplay, which allowed us to watch other people using our software. It was a life-changing experience when we saw how software could drive emotion, especially with kids and games. After that, we got hooked on building products that people love.

After the commercial failure of the game studio, we went to work for an outsourcing company. We were working on some enterprise software, which was not a lot of fun. Therefore we were working after-hours and weekends on many ideas. After two years, we decided to start our own outsourcing company. We planned to use outsourcing company resources to develop our first product.

Roman started Termius as his pet project at our outsourcing company about seven years ago. Roman needed a way to start a C++ project compilation from my iPhone. The project used a lot of Boost::Spirit and a complete rebuild could take around 15 mins. This time was ideal for a cup of coffee with colleagues or a short bout of office-chair fencing. However, some compilation or linking errors could come up, so he needed to keep an eye on it. It was hard to justify paying $10 for iSSH for such a minor use case. Free SSH clients in the App Store were ugly or had ads in the terminal window. Roman thought that a basic SSH client with the terminal must be available on all platforms for free and ad-free. SSH is as universal as email, and most operating systems have at least one basic and free email client. That is how it is all started.

First, we needed to solve a couple of UX challenges. SSH client requires terminal emulator support to render the output. Also, the mobile keyboard doesn’t have some necessary keys like Fn, Ctrl, Alt, and Tab. Besides, these keys must support sequences(Ctrl-Alt-x or Ctrl-x Ctrl-f) to support Emacs. That was our first UX challenge. Initially, we developed Ctrl and Alt in the shape of a lollipop pinned to the sides of the terminal window. Those were special buttons with two states: tap for single usage(for Ctrl-C) and drag to the center(locked state) for combinations like Ctrl-Alt-x. We have changed the design of the terminal window three times to make it easier to grasp. We ended up emulating a lot of what native OS does because users are familiar with those patterns already. In the recent versions, all the additional keys are grouped and sit on top of the system keyboard. Ctrl and Alt work a lot like Shift(double tap to lock) which was introduced later by Apple.

Once we released Termius (at that time was called Server Auditor) for iOS and Android, we started to get quite a lot of feedback on the missing features and bugs. Frequently this feedback was in the form of one-star review with a typical comment like “Will switch to 5 stars if you add blah”. In some cases, we had no idea why users needed those features and had no way to ask about it. App Store did not provide the response feature at that time. Therefore we integrated the feedback channel and the feature voting straight into the app(UserVoice). After that, we were able to communicate with our users a lot easier. This tight feedback loop kept us engaged and motivated to keep working on the product. We also got to hear stories from users who used Termius in different life situations. Some users fixed a server being on holiday or saved their bacon because they could continue working from their iPhone. One of the fascinating cases was a story from one visually impaired user who was managing a server on his iPad using Termius and VoiceOver.

Initially, we released Termius as a free app for iOS and Android. After a year of continuous work, the apps got to the first places in both app stores when you search for SSH. Organic search traffic combined with good ratings drove pretty good daily downloads numbers. We realized that we are building something that people want.

When we were researching user churn, we realized that we could solve even a bigger problem. Some users stopped using the mobile app because it was daunting to keep the information up to date on the mobile device. They downloaded Termius to use when they are away from their desk. However, when an emergency happened, they didn’t have all the things to deal with it, e.g., connection strings, keys, commands to restart a service, you name it. As a result, a standalone mobile SSH client was useless for them, and they had to run to their desk. We realized that if we add a desktop app and secure sync with end-to-end encryption, then all the data would stay fresh on all devices and users would be able to rely on the mobile apps.

Moreover, having sync enabled us to rethink the whole command line user experience. For example, Termius could accumulate all the commands when you work in a shell and use them for auto-complete an all devices. Another example, that engineers encouraged to invest a bit of their time to keep the information in order because it stays with them all the time. Termius supports groups and tags to maintain a list of hundreds of hosts.

What is next? Tens of millions of engineers use the command line to interact with remote computer systems. Many of them maintain infrastructure together. Our next step is to bring more collaboration to sysadmin and DevOps teams based on their interaction with the command line. Things like terminal logs, recently executed commands and lists of currently runnings systems could be shared among all team members with Termius. That would make the whole process more transparent and new member on-boarding a lot easier. The similar transition that Google Docs brought to collective document creation.

HackerNews community probably has the highest concentration of engineers who might use Termius daily. Therefore we would love to hear your feedback!

Get Top 5 Posts of the Week

best of all time best of today best of yesterday best of this week best of this month best of last month best of this year best of 2023 best of 2022 yc s24 yc w24 yc s23 yc w23 yc s22 yc w22 yc s21 yc w21 yc s20 yc w20 yc s19 yc w19 yc s18 yc w18 yc all-time 3d algorithms animation android [ai] artificial-intelligence api augmented-reality big data bitcoin blockchain book bootstrap bot css c chart chess chrome extension cli command line compiler crypto covid-19 cryptography data deep learning elexir ether excel framework game git go html ios iphone java js javascript jobs kubernetes learn linux lisp mac machine-learning most successful neural net nft node optimisation parser performance privacy python raspberry pi react retro review my ruby rust saas scraper security sql tensor flow terminal travel virtual reality visualisation vue windows web3 young talents

andrey azimov by Andrey Azimov