mobile
tmux from your phone: the modifier key problem
A native SSH app, a web terminal, or a purpose-built client can reach tmux from a phone — the real obstacle is Ctrl-b on a screen with no keyboard.
Three things can get a working tmux session in front of you on a phone: a native SSH app like
Termius or Blink, a web terminal reached through your own reverse proxy, or a purpose-built mobile
client. All three can technically render tmux's output correctly. What separates a good experience
from a frustrating one isn't the terminal rendering — it's whether pressing Ctrl-b,
tmux's prefix key, is actually usable on a screen with no physical keyboard.
The actual hard part
A soft keyboard has no key you can hold down while tapping another. Ctrl-b then
x — "prefix, then x" — assumes exactly that: hold Ctrl, tap b, release both, tap x.
iOS and Android's default keyboards have no persistent Ctrl key at all, and even where a
Bluetooth keyboard is in play, the chord-then-release pattern tmux is built around doesn't map
cleanly onto a touchscreen's tap-and-release model.
Every serious mobile terminal solves this the same way: an accessory row above the keyboard with sticky modifier keys you tap once, then tap the letter, instead of holding anything.
Tap Ctrl-b, then tap x, and the app sends the same two-keystroke sequence your keyboard would
have sent by holding Ctrl and pressing b, then pressing x alone. That row is the actual product
surface that determines whether tmux on a phone is usable — not the terminal emulation
underneath, which is a solved problem in all three options below.
Option 1: a native SSH app
Termius and Blink are mature, well-built, and genuinely good at this specific problem — both ship a customizable accessory key row, both support Mosh for connections that survive a dropped signal switching between wifi and cellular, and both render a terminal about as well as a phone screen allows. If you already SSH into arbitrary hosts and just want that experience on your phone, this is the least new to learn.
The trade-offs are the same ones that come with SSH generally, just now on a phone: a private key
lives on the device (or in the app's keychain), the host needs a reachable sshd — directly, via
Tailscale, or through a jump host — and the app has no idea what happened on your session while it
wasn't open. You reattach and read backward; nothing pushes you a summary of what you missed.
Option 2: a web terminal
Point a browser at ttyd, wetty, or a self-hosted tmate relay — covered with the actual setup in
tmux in a browser — and it works on mobile Safari or Chrome the same as
anywhere else the page loads. The catch is that building a mobile-friendly accessory key row into
a web page is real, separate engineering that most self-hosted setups skip, because the person
setting it up is usually testing from a desktop. Without one, you're typing Ctrl-b by finding
whatever workaround your mobile browser's virtual keyboard happens to support that day, which is
inconsistent across iOS and Android and across browser versions.
Option 3: a purpose-built client
A client designed around mobile from the start treats the modifier row as core, not an afterthought — mtmux's mobile UI puts prefix and common modifiers as persistent on-screen taps, the same pattern Termius and Blink use, applied to a client whose entire reason to exist is reaching a session you already run rather than an arbitrary host. It also skips the SSH key question — device pairing uses a revocable key exchange instead of a key living in the app — and adds the one thing neither SSH apps nor bare web terminals do: a push when the session you're not looking at needs you, via the agent presets or a plain idle/output watch.
| Modifier keys | Setup | Notifications | Price | |
|---|---|---|---|---|
| Native SSH app (Termius, Blink) | dedicated accessory row, mature | SSH key on the device, reachable host | none — no signal while the app is closed | free tier, paid tiers for extras |
| Web terminal (ttyd/wetty) | raw keyboard — no accessory row unless you build one | your own reverse proxy, TLS, auth | none | free, open source |
| Purpose-built client (mtmux) | on-screen prefix/modifier row, tap not hold | npm i -g mtmux, no SSH key on the phone | push on done, blocked, stalled, failed | free (1 machine + 2 devices), Pro $8/mo |
Tablets change the calculus slightly
Everything above is written with a phone in mind, but the same three options apply to an iPad or Android tablet, and the modifier-row problem is identical — a bigger screen doesn't give you a physical Ctrl key. What does change is how often a Bluetooth keyboard is realistically in reach: a tablet is more likely to be paired with one, and the moment it is, the accessory-row problem mostly disappears, because a real keyboard has a real Ctrl key again. Termius and Blink both detect an attached keyboard and get out of the way; a purpose-built client should do the same rather than forcing on-screen taps when a physical modifier key is available. If you're mostly on a tablet with a keyboard case, weigh that before choosing based on the accessory-row comparison above — it matters far more on a phone, where a Bluetooth keyboard is rarely in your pocket.
Which one, honestly
If you already SSH into a range of hosts beyond just your tmux boxes, a native app earns its keep — Termius and Blink are good enough that switching costs more than they save. If you've already got a reverse proxy you trust and only need this occasionally from a desktop-shaped browser tab, the web terminal option in tmux in a browser is the least new infrastructure. If the actual use case is checking on your own long-running sessions — agent runs, builds, deploys — from your phone specifically, and you'd rather not manage SSH keys on a device you might lose, that's the gap a purpose-built client closes. Setup details for that last option are in the docs; how the device pairing and encryption work is on the security page.
How do I press Ctrl-b on an iPhone to use tmux?
You need a terminal app with a modifier accessory row — Termius, Blink, and mobile-first tmux clients all provide one. Tap Ctrl (or the prefix key directly, if the app has a dedicated button), then tap the following key; there's no way to "hold" a key on a stock iOS keyboard.
Can tmux run directly on an iPhone, without a server?
No — tmux needs a Unix process tree to manage, which iOS doesn't expose to apps. Every option here is a client reaching tmux running on a Mac, Linux box, or WSL2 machine elsewhere, not tmux running locally on the phone.
What's the best terminal app for iPad?
For general-purpose SSH to arbitrary hosts, Termius and Blink are the mature, well-reviewed options. If the specific need is reaching your own tmux sessions with mobile-adapted input and notifications rather than SSH generally, that's a narrower category — see the options table above.
Is it safe to keep an SSH private key on my phone?
It's the standard model for native SSH apps, and Termius/Blink both support keychain-backed storage rather than a plaintext file. It's a real attack surface to weigh, though — a lost or compromised phone means a key to revoke, which is why some alternatives use short-lived, per- device pairing instead of a long-lived key.
Does mosh help with mobile tmux over spotty connections?
Yes — Mosh (used by Termius and Blink) tolerates IP changes and dropped packets far better than plain SSH, which matters a lot switching between wifi and cellular. It doesn't solve the modifier key problem on its own; that's a separate, UI-level fix.
Put this to work — mtmux attaches to the tmux server you already run.