Skip to content
Dustin's AI Lab
Go back
Updated:

Leveling Up the iPad Workflow — Surviving Internet and Power Outages, and Why I Ditched the Magic Keyboard

A follow-up to the full iPad-runs-Claude-Code guide. This one is not about setup, it is about robustness: home internet in Bangkok drops, the rainy season kills the power, so how does the host machine survive? Plus why I gave up the Magic Keyboard for my mouth and some gestures.

On this page
  1. Connection Infrastructure
  2. Host-Side Robustness
  3. The iPad Input Strategy
  4. Merged in: The Five-Step SOP for Leaving Claude Code Running at the Hotel
  5. Merged in: Two Remote Tools

The last post covered the basic trio for running Claude Code on an iPad: tmux + Tailscale + Moshi. That one was about how to set it up. This one is about how to keep it from dying right when you need it most.

I keep a MacBook Air and a Mac mini at home as 24-hour headless hosts. When I head out I only carry an iPhone and an iPad, and I remote back in to run Claude Code and Codex. The catch: I’m in Bangkok, where the home internet drops once every month or two, and the rainy season occasionally cuts the power. So getting it installed isn’t enough. You need a fallback plan for outages.

Three parts: connection infrastructure, host-side robustness, and the iPad input strategy. The basic tmux / Tailscale / Moshi install was covered last time, so I won’t repeat it.

Connection Infrastructure

For the connection layer I run Tailscale with the MOSH protocol. It’s secure, hard to drop, and the key point is it doesn’t need to reconnect when the network switches — walk out the door, go from home wifi to cellular, and the session is still alive.

For the terminal app I switched from Termius to Moshi. Moshi was natively designed for AI agent CLIs, and it doesn’t break the rendering of CJK block characters. In my testing, Termius’s CJK rendering has a bug — Chinese characters get garbled.

Backup plan: Chrome Remote Desktop or AnyDesk. An SSH terminal handles 90% of what I do, but occasionally you need to look at something outside the terminal — some GUI app, some image. That’s when remote desktop fills the gap. It’s not the main act, it’s the spare tire.

Host-Side Robustness

This part is the core of the outage plan, because when you’re out and the host goes down, you can’t reconnect — you just sit there staring.

Two more small settings: stop the machine from sleeping — I keep it up with the caffeinate command — and give tmux full disk access, or it can’t read some paths.

The iPad Input Strategy

I took a detour on this one.

At first I bought the Magic Keyboard case. Painful experience: it wears out easily, the metal connector oxidizes and rusts, and it is heavy as hell. Heavy enough to completely kill the iPad’s mobility advantage — the whole point was to travel light, and instead I was lugging a slab of metal around. I eventually pulled it off and switched to a plain stand-style cover.

If I genuinely need to type, I now carry a Mac Magic Keyboard (Bluetooth) plus a Magic Mouse. The two together weigh just over 200 grams — far lighter than the Magic Keyboard case — and the same set works on the Mac at home and pairs with the iPad on the road. Two uses, one purchase.

The setup is the Magic Keyboard I normally use with the Mac, hooked up to an old iPad Pro from years back, then a virtual terminal back to the Mac mini. Smooth even on mobile data. The whole thing weighs far less than a keyboard case, and terminal work rarely needs a mouse anyway. Claude Code even in the middle of nowhere.

But honestly, I later found I rarely even need that set. Most of what I run isn’t coding — issue a command with my mouth, swipe with a finger, watch the result with my eyes, and that’s enough. I’m not the kind of person who hand-types code anyway, so going without a mouse turns out to be fine. Voice input plus touch gestures hold up surprisingly well for daily work.

A note on hardware: I’m using a 2018 iPad Pro. Eight years old and it still runs the remote session smoothly. Remoting doesn’t tax local resources anyway — all the compute is on the host at home, and the iPad is just a screen and a mouth. So I scrapped the plan to buy a new one. Money saved.

Finally, two handy little things: there’s a small button in the top-right corner that shows the diff directly, and another button that previews localhost. Add a fileviewer extension and the iPad turns into a file manager — documents, images, videos, all openable.

Merged in: The Five-Step SOP for Leaving Claude Code Running at the Hotel

Back in Taipei, checked into a hotel. The SOP I ran before heading out to dinner with friends:

  1. Stick any chip card in the slot to draw power.
  2. Keep the laptop charging and online.
  3. Caffeinate command to stop it from sleeping.
  4. Fire up tailscale.
  5. Test that remote desktop connects, as a backup.

Then I can sneak in some Claude Code over dinner.

Merged in: Two Remote Tools

Every file on my home machine, readable from my phone: Markdown renders natively, HTML opens as a real web page, a 300-page ebook PDF opens instantly, and a 1GB video plays with no lag. Pair copyparty and tailscale with remote-controlled Claude Code or Codex and it’s a killer combination.

Moshi, my favorite remote terminal app, shipped a web interface. Paired with Herdr it’s a godsend. The developer appears to be a Japanese digital nomad living in Bangkok. Of course he is.


15-Minute AI Adoption Diagnosis

Fill in a short form to book your free 1-on-1 diagnosis, and find out how you can work with AI without the pain and get a real productivity lift.

Book my free diagnosis
Share this post on:
Previous Post
You Have to Be in an Industry a Very Long Time to Know Its Real Pain
Next Post
Just Swap the Outer Loop