Guides · September 2026

SSH on an iPad

The iPad becomes a development machine the moment it has a terminal to a real one. Here is how to set that up well, and where it stops being enough.

What a dev machine on an iPad honestly means.

iPadOS will not run your toolchain. There is no Docker, no system shell, no way to install the Node or Rust or Python your project actually needs — a-Shell runs Python and C locally, and that is impressive, but it is not your repository. So every serious “code on an iPad” setup is the same thing underneath: a terminal on the iPad, and a real computer somewhere else doing the work. That is not a compromise to apologise for. A 13-inch iPad with a Magic Keyboard, a good SSH client, and a Mac mini at home is a better development machine than most laptops, because the heavy part never runs on battery.

What makes it good is everything around the terminal: a hardware keyboard with Esc where your fingers expect it, windows you can arrange, a session that is still there tomorrow, and a host you can reach from a café. Those are the steps below.

The iPad clients.

The same apps as on the iPhone, weighed for what the bigger screen and the keyboard bring out. Prices from the vendors’ pages, September 2026.

ClientPriceKeysMoshOn the iPad
Blink ShellTwo weeks free, then $19.99/year; GPL-3.0 sourceEd25519, ECDSA, RSA, or Secure EnclaveYesCaps as Esc-and-Ctrl remaps, Split View, output to a 4K external display
TermiusStarter free; Pro $10/month billed annuallyGenerated in app; Face ID keys in the Secure Enclave on ProYesThe hotkey bar hides itself when a hardware keyboard connects; hosts synced with the desktop
Prompt 3$9.99/year or $49 once — one licence for Mac, iPad, iPhone, Vision ProPanic Sync; Face ID and Secure Enclave lockYes, plus Eternal TerminalThe same app and servers on the Mac beside it
Secure ShellFishFree to try; $14.99/year or $29.99 for lifeSecure Enclave, security keys, certificatesNot advertisedThe host’s files in the Files app; drag-and-drop into other iPad apps

Set it up.

  1. 01Install the client and make a key on the iPad

    Generate the key on the device, never copy one over. In Blink, config → Keys → Generate New; in Termius, Keychain → New key. Choose Ed25519, or a Secure Enclave key if you want one that cannot leave the iPad. Copy the public half to the host — Blink’s ssh-copy-id does it in one line — and the iPhone guide has the longer version.

    ssh-copy-id -i ipad-key user@host
  2. 02Reach the host from anywhere

    On home Wi‑Fi, ssh user@host.local. Elsewhere, put the iPad and the host on a tailnet — Tailscale’s iPad app is the same as the iPhone one, and the personal plan is free — or forward port 22 on the router and accept that sshd is now public. The tailnet is the answer for almost everyone.

  3. 03Fix the keyboard first

    Many iPad keyboards have no Esc key. Blink lets you make Caps Lock send Esc alone and Ctrl in chords, which is what most Vim and Emacs people want, and its keyboard settings cover the rest. Termius maps Ctrl, Alt, Esc, Tab, arrows, and F1 to F10 from a hardware keyboard and hides its on-screen bar when one is attached. Whatever you pick, set it up before anything else; the keyboard is why the iPad beats the phone.

  4. 04Arrange the screen

    Stage Manager gives you overlapping, resizable windows — a terminal beside a browser beside your notes — and Split View still works for two apps side by side; Blink supports Split View directly. On an M-series iPad, Stage Manager extends to an external display as a second screen rather than a mirror, which is where the setup stops feeling like a tablet, and Blink will drive that display at 4K.

  5. 05Make it survive the lid

    The keyboard case closes and the connection is gone. Run tmux on the host and start every job inside it, and connect with mosh so that closing the case, changing network, or moving from the café to the train is a hiccup instead of a loss. mosh needs UDP 60000–61000 open beside port 22, and it syncs only the visible screen, so tmux underneath is not optional.

    mosh user@host tmux attach -t work || tmux new -s work
    Each time, from the iPad

What the iPad still is.

Even set up well, the arrangement has edges, and they are the same edges wherever SSH is the plumbing.

A window, not a workstation

Everything runs on the host. When the host is a laptop that sleeps, the iPad is a window onto nothing. The setup is only as good as the machine at the other end being awake, reachable, and left in tmux.

Keys and hosts, multiplied

The iPad is your second or third device. Each one carries a key; each host carries each key; losing one device means visiting every host.

The tailnet tax

Reaching home from anywhere means a VPN agent on every host and every device, and a vendor account in the middle. Fine for one person; tedious for three machines and two tablets.

Arriving cold

You reattach to a prompt and reconstruct where you were. For long-running agents that ask questions while you are away, that reconstruction is the job.

Or skip SSH entirely.

For machines you own, there is a shape that keeps everything the iPad is good at and drops the plumbing. spawnd puts one daemon on each host; it dials out, so nothing on the host listens — no forwarded port, no VPN, no key on the iPad. The iPad’s browser is the console, installable to the home screen, approved once against a short code; if the iPad goes, revoking it is one click that every host honors.

Sessions live on the host — a worker process owns each one’s PTY — so closing the keyboard case, losing the café Wi‑Fi, or restarting the daemon costs nothing, and the scrollback is intact when you come back. What you come back to is a workspace per project with a grid of sessions across hosts, an attention cue on the one where an agent is waiting on a yes, and a notification when it happened. Your browser talks to each daemon peer-to-peer, end-to-end encrypted; the server that introduces them never sees session content. It is open source, MIT/Apache-2.0. For the case for keeping an SSH client beside it, Termius alternatives ranks eight of them honestly, with the client-free route alongside.

Start

One line on the host; the iPad brings a browser.

$curl -fsSL https://spawnd.dev/install.sh | sh
Sign up free
Install the daemon

Questions

Can you really do software development on an iPad?
Yes, as a terminal to a real machine. iPadOS won’t run your toolchain, so every serious setup is an SSH client or a browser console on the iPad and a Mac or Linux box doing the work. With a hardware keyboard and an external display it is a genuinely good arrangement.
Which SSH client is best on iPad?
Blink Shell if you live on a hardware keyboard — its remaps, mosh, and external-display support are the deepest. Termius if you want the same client on desktop and phone with hosts synced. Prompt 3 if you also use a Mac and want one licence.
Does spawnd work on an iPad?
Yes — the console is a web app, so Safari on the iPad is enough; install it to the home screen. Nothing runs on the iPad itself; the daemon runs on the macOS or Linux hosts you own.