iSH Shell on iPad

I’m on a quest to turn my iPad into a viable development machine for general scripting and coding. There are a growing number of tools available for this purpose–mainly dedicated language-specific IDEs, and graphical Git clients. However, my preferred dev environment is tmux, bash, and vim–so until recently I’ve not gotten much coding done on the iPad at all. That is, until I discovered iSH shell.

iSH is a full Alpine Linux environment that runs on the iPad using user-mode virtualization. Initially, it just comes with busybox, which has a number of standard linux tools embedded, and can be used by itself for some tasks. However, iSH has recently been upgraded to include apk, meaning many more programs can now be installed with a simple apk add <package>. This means I can now trivially install lots of my favourite programs like bash, tmux, vim, and git.

Because of the virtualization, iSH is slow at some tasks–notably anything involving encrypted comms–as it doesn’t benefit from any hardware acceleration for this and has to do everything on the virtualized CPU. For light local development work it’s pretty snappy though. I’ve been happily switching between multiple instances of Vim in different Tmux panes, editing my dotfiles, without much lag at all.

Despite being slow, sometimes flaky, and a bit of a battery hog, I find iSH a really exciting development. It adds a new, vital capability to my iPad that takes me one step closer to being able to ditch the Mac completely when I’m travelling. I hope that Apple take note and start being more supportive of apps like this. They have a long history of pulling them from the App Store because of their ability to load additional code at runtime. iSH has already come close to this, but has so far managed to convince Apple not to remove it. I hope it stays that way.

Watch this blog for an upcoming guide to setting up a full development environment in iSH.

Leave a comment

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: