Hi, this is PDX_Kurt with a review of the iOS and iPadOS app called Termius, which is a mobile terminal app. What’s a mobile terminal app, you say? Well, most of us have heard of, and possibly used, THE Terminal, which is a utility program built into the MacOS environment. The Terminal is what Bart and Allison’s whole “Taming the Terminal” educational series was about: it’s a way to interact with your computer through a command line interface, rather than a graphical interface.
Now iOS and iPadOS have no built-in functional equivalent to the Terminal. This is where Termius comes in: Termius gives you a streamlined and efficient way to interact with another computer through a command line interface over a network. Much of the infrastructure that underpins the Internet takes place on various servers that have no graphical user interface (no GUI), and so they are managed through a command line interface for the purposes of provisioning, configuration, and upgrade. You could summarize the problem to be solved as, “How do I log into my server, remote computer, or network attached storage device while sipping coffee on the couch in my bunny slippers using my iPad?”
The first order of business when using a terminal interface is getting connected. For that, Termius needs to know the IP address or host URL, username, connection method, and password credentials; this information will then be stored, along with a name that you assign to it, within Termius as a host. You can create many hosts in Termius; they appear in a list of hosts, and then they’re just a tap away. This makes logging into your remote server very frictionless! You can even have multiple hosts active at one time, and switch between them quickly in the Terminals section of the app.
Termius not only supports Secure Shell, or SSH, which is the standard way to interact with a remote server, but it also supports something called MOSH, which is a more advanced version of SSH that supports better responsiveness and the ability to maintain connections across changes in network connectivity, such as switching from WiFi to cellular.
If you’ve listened to the Taming the Terminal series you know that setting up a public/private key certificate arrangement is more secure than using a simple password to log in (see Taming the Terminal chapter 30). Termius can import a private key that you already have created on another computer, either by copy and paste, or it can grab one stored in a text file from your iCloud Drive.
Better yet, Termius can create a brand new strong key pair right within the app, and then transfer the public key to your server with just a tap on the screen (this assumes that you haven’t already locked down your server to deny password login). All of this key management takes place under the Keychain tab heading.
Termius also supports something that its authors called Snippets. These are really just shell scripts: you type in Unix commands once to store them, and then they are available instantly to execute with a tap on the screen from the Snippets list. If you have associated a Snippet with a particular host during the creation process you don’t even have to go through the Hosts interface; just tap the Snippet, and Termius will log you into the associated host and execute the script!
Snippets can be set to log you out after completion or leave you logged in to execute another Snippet or to type in custom Unix commands. The snippets are available in a list via a sidebar that you can invoke with a tap. Some very common snippets that you might want to set up are a snippet simply containing the word ‘top’ to see a live display of CPU processes, or ‘sudo shutdown now’ to force your Mac to shut down gracefully from a situation where it is completely stuck.
Aside from Snippets, Termius remembers previous commands that you’ve entered, and if you start to type a Unix command that it recognizes from your previous history it will present you with a hovering list of history commands consistent with what you have typed so far.
So, if you once edited a certain file like /etc/ssh/sshd_config to tighten up the SSH security on your remote host, and you start to type ‘sudo vi /etc’ Termius will give you the option to tap on the complete command from its hovering history list! It’s another way that Termius converts dense strings of Unix into simple taps.
The sidebar in the Termius user interface has four useful tabs: the Snippets list, a history of commands that you can tap to run again, a tab of useful keyboard shortcuts for keys that don’t appear in the usual iOS or iPadOS on-screen keyboard (things like the Escape key and function keys), and a palette of visual themes for the current host (so you can quickly differentiate between different hosts).
This brings me to my absolute favorite feature of Termius: dealing with sudo. Sudo, you might recall, is how one elevates one’s privileges for a Unix command so that it appears that the root user (the most privileged user) is executing the command. Many sensitive actions on a Unix system require you to preface the command with sudo, and then the shell will query you to enter your login password before proceeding to execute the command as root.
Using sudo in a terminal normally forces you to switch apps to your password manager, look up the password in its database, and then either copy and paste it or briefly memorize it long enough to be able to enter it. But… recall that you stored a user password when you created a host, so with Termius it takes as little as one tap to paste in your stored user password! There’s a button that says “Paste stored password” right at the top of the keyboard tab of the Termius sidebar.
Termius also allows you to transfer files using the SFTP (secure FTP) protocol. You can download files from a server to your iPad or iPhone, or even transfer files directly between two hosts. The SFTP interface has two panes; within each pane, you can tap on folders to drill down or tap on the path at the bottom of the pane to move up the directory tree. Once you find a file that you want to transfer you swipe left, gently, and you’ll get options to copy, change permissions (or chmod), rename, or delete the file. If you select Copy it transfers a copy of the selected file to the other host in the other pane. The reason I say to swipe left gently is because if you do a big swipe you’ll delete a file!
Curiously, the one thing that I could not figure out how to do was end an SFTP session! The built-in documentation tells you how to do all kinds of things in the SFTP interface, but it doesn’t tell you how to break the connection. This is kind of consistent with my general impression of the documentation: the app itself is super well thought out and implemented, but the documentation seems to lag a bit behind or is sometimes incomplete. For instance, the February 2024 release of Termius supposedly includes AI support to convert natural language queries to Unix commands, but I could find no reference to the feature in their support documentation. I’m guessing that AI only works with a paid subscription.
Termius is available for iOS and iPadOS, but also for MacOS, Android, Windows, and even Linux.
Are you ready for the best part about Termius? Everything I’ve described so far, including multiple simultaneous host support, key certificate login, snippets to automate repetitive tasks, SFTP file transfer, sudo pasting convenience, and more is functional in the FREE version of Termius! It’s crazy, I know.
So what do you get with the paid version, which by the way is not cheap at $119 per year? Well, the primary feature that you get is the ability to share all these capabilities across multiple devices and with multiple team members. You also get some convenience features like a cloud vault for data, synchronized credential sharing across devices, and sharing a terminal session (and likely AI conversion of natural language queries to Unix commands mentioned earlier). So if you’re part of an IT team managing a fleet of servers you can set it up so that everyone on the team has the same management access and the same snippets using Termius, across any of their supported client devices.
But for those of us who just operate solo, on our cloud instances, remote Macs, or network storage boxes, the free version is incredibly useful. I can tell you that for me personally the Termius experience is so streamlined and efficient that I turn to my iPad before I fire up Terminal on my Mac when I need to do something in a command line interface. If you do any work in the Terminal I urge you to give Termius a try.