iPad as a Dev Console, Part 1: SSH

I recently got an iPad to replace my venerable Huawei tablet, and I’ve been exploring how to use it for dev work.

I work mostly in nodejs on Linux, so my requirements are pretty modest:

  • ssh terminal
  • sftp for file management
  • Code editor with sftp

SSH Terminal

My first need is an ssh terminal; nothing happens without the command line. Fortunately, this is a solved problem on the iPad, with a number of good (and free!) options.

WebSSH

Screenshot of a WebSSH session highlighting the onscreen keyboard and bonus strip.

WebSSH (https://webssh.net/, freemium, CAD$9.99 for Pro) is my daily driver. It offers one of everything: a full-featured ssh client, sftp file management, and even a built in remote file editor.

The UI is clean and simple; the main screen is a list of saved hosts, with some buttons in the header and a tab bar at the bottom to switch modes

The ssh experience is superb; the bonus keyboard offers exactly the keys I miss from the stock iPad OSK, the default font and colour scheme (in dark mode, at least) are easily readable, and copy & paste are handy.

One bonus key bears special mention: instead of a tiny inverted-T or an hjkl-style row of arrow keys, it’s a single button which you tap-and-drag for directional keys, like an onscreen touchpoint. I wouldn’t have expected “clever d-pad” to be such a killer feature, but it really is that good, especially on the iPad where I’m already accustomed to the tap-flick gesture to access special characters on my OSK.

The sftp browser does what it says on the tin – browse, upload, download, etc. all work as expected. The host list is separate from the list for SSH, which is a minor inconvenience but may work out if you’re using the free version which only saves one host per component.

The built in editor… well, it exists. You can edit & save text-based files. For some reason it uses a variable-width font with no obvious way to change it, there is no apparent syntax highlighting or other amenities one would expect for a programmer’s editor.

Most functionality is available for free for a single saved host; the one-time CAD$9.99 Pro upgrade allows you to save additional hosts (and supports the developer).

Termius

Termius (https://termius.com/ios, freemium + CAD$12.99 subscription) is possibly the most popular iPad ssh client, it’s always the first answer when seeking recommendations. It’s also cross-platform with clients for Android, Mac, Linux, and Windows.

The main UI is busier than WebSSH, but still very clear & functional. A sidebar offers ready access to the various main modes.

The ssh experience is okay overall. The bonus key strip is not great; there are immovable and uncustomizable sections at each end, so the configurable bits in the middle don’t fully fit.

Mouse mode is a nice inclusion; tap a toggle, then touches on the terminal area will be sent as mouse events to amenable applications.

The default selection of bonus keys leaves something to be desired, it feels as if they were designed to be part of the extended keyboard, without a thought for actual command line usability and convenience. Fortunately it’s easy enough to define your own key groups, though only in sets of 4 (I chose 7, which would even fit onscreen without scrolling, then had to pick another as filler in order to save).

One nifty extra feature is that on login, it grabs your shell history, so recent commands are available in the snippet chooser. It’s a subtle thing, but a killer feature for a back scroll commando like me. The feature can be disabled in host settings if that seems creepy or insecure.

SFTP file management is a breeze, with a 2-column browser which can include multiple local or remote sources. SFTP host configuration is shared with the SSH component, so you only have to enter hosts once.

There is no built in text editor at all.

Author: Eddie Roosenmaallen

By day I'm the Release Manager at Distributive (née Kings Distributed Systems); I help build the Distributed Compute Protocol at https://dcp.cloud. In my off time I explore Linux, JavaScript and the web, and I try to share some of my knowledge and some of my humour online.