Recently I bought a Smart Keyboard for my 10.5-inch iPad Pro, and started to try using it as a development machine. For the time being, it seems it's going well, which, honestly, I didn't expected either. I'd like to share how I did it.

First of all, here is a short demo.

What makes it possible is a remote shell and a terminal dev environment.


Blink is a Mosh client for iOS. Mosh is a shell focusing on mobile usage. Basically, you can consider it as a better SSH. I have a 24/7 dev server and Mosh runs on it. For more information about Mosh, please watch this talk.

Dev environment

The rest is nothing special. I use terminal environment for my daily development too, so it's not iPad-specific stuff. I use the following tools.

  • tmux: A terminal multiplexer
  • Zsh: a (good) shell
  • Emacs: a text editor

tmux is helpful to arrange screens and workspaces. I usually divide a screen into 2 virtical columns, one for a shell and the other for an editor. It works really well in iPad too.

I like Emacs for its script language and plugins. I'm a heavy user of language plugins, so there is no problem of writing code on it.

I open-source my dev environment, so please take a look if interested.