>>> SSH & terminal on iPhone SSH From Your iPhone. With A Real Ctrl Key

iOS has no terminal app of its own, so to SSH from an iPhone you need one. RETRO TMUX is an SSH client for iPhone that logs in with a key from your Keychain, attaches to real tmux sessions on your server and gives you Esc, Tab, Ctrl and arrows. Lock the phone and your work keeps running.

tl;dr.txt— less —[ 1/1 ]

$ sudo apt install tmux && tmux new -s work

# then, on your iPhone:

RETRO TMUX → + ADD HOST → TEST SSH → work → you're in.

# lock the phone whenever. the session lives on the server, not in your pocket.

// Why tmux //

Your iPhone Locks. tmux Doesn't Care

An iPhone is the worst place for a plain SSH session. iOS suspends apps seconds after they leave the screen, and the connection goes with them. The server hangs up on your shell, and the build, the migration or the agent you left running dies with it. With tmux, your work lives on the server: the phone can lock, ring or drop to one bar, and you carry on exactly where you left off.

plain SSH
  • You lock the phoneConnection dropped, job killed
  • A call comes inShell gone by the time you hang up
  • Signal drops on the trainStart again from scratch
  • You get back to your laptopNew shell, empty screen
SSH + tmux
  • You lock the phoneUnlock, history intact
  • A call comes inYour job kept running
  • Signal drops on the trainReconnects, history intact
  • You get back to your laptoptmux attach, carry on

// The keyboard //

iPhone Terminal App. With The Right Keys

The iPhone keyboard has no Ctrl, no Esc and no Tab, which is roughly all a terminal needs. RETRO TMUX brings its own.

  • Always-visible key row: Esc, Tab, Ctrl, ^C, arrows.
  • Retro keyboard in the DOS font, with a permanent number row and F1–F12.
  • Sticky Ctrl, key repeat on hold, long-press alternates.
  • Home, End, PgUp, PgDn, Del, ^L, ^Z, Shift-Tab.
  • Ctrl-C that actually reaches the program, Claude Code included.
  • The system keyboard is one tap away for dictation and accents.
  • An UPLOAD key: send a file or photo over SFTP, get its server path at the cursor.

// Built for a phone //

80 Columns. On A Phone

A terminal on a 6-inch screen only works if the app is stubborn about the details.

Never Squeezed

At least 80 columns, and 24 rows in portrait, so htop, vim and AI agents always get room to draw. Fit-width by default, pinch to zoom.

Scroll With A Finger

Everywhere, including inside mouse-mode programs like htop, vim and Claude Code. Full-screen apps render properly and keep their history.

Select, Copy, Tap Links

Drag handles with edge auto-scroll, copy to the clipboard. Links are underlined: tap to open or copy, like a CLI's sign-in link on a server with no browser.

Keys In The Keychain

Generate an Ed25519 key on the iPhone or import yours from Files, iCloud Drive or AirDrop. Keys stay on the device unless you choose iCloud Keychain, and Face ID locks the whole app.

Knows Your Server

Unknown or changed host keys are shown for you to check before anything is sent. No account, nothing of ours in between.

Width Stays Put

The keyboard only borrows rows, and gives them back when it closes. The width never changes, so full-screen programs and agents don't reflow.

RETRO TMUX extra keys on iPhone: Alt, Shift-Tab, Home, End, PgUp, PgDn, Ctrl shortcuts, symbols and F1 to F12
Home, End, PgUp, ^L, F1–F12: one tap on ⋯
RETRO TMUX windows and splits sheet on iPhone: new window, split side by side or top and bottom, close a split
Windows & splits, managed from the phone

// Setup · about 5 minutes //

How To SSH From Your iPhone

You need a server or computer you can SSH into (a cloud VPS, a Raspberry Pi, a Mac with Remote Login on) with tmux 3.0 or newer.

  1. 01

    Make sure tmux is on the server

    Most Linux servers install it in one command. Then start a named session for your work.

    $ sudo apt install tmux   # or: brew install tmux
    $ tmux new -s work
    you@server: ~
    $ tmux new -s work
    (a fresh shell, now living inside tmux)
    $ npm run build
    [work] 0:node*"server" 14:02
  2. 02

    Add your server, with a key

    Tap + ADD HOST and enter the address. Generate an Ed25519 key on the iPhone, install it with your password once (the app gives you the command to paste), then log in with the key from then on. TEST SSH checks the key and the server before you save.

    RETRO TMUX on iPhone: editing a host on the SSH key tab, with NEW KEY and IMPORT KEY. The private key stays in the phone's Keychain
  3. 03

    Pick your session

    You see the server's live tmux sessions. Tap work to attach. If it has several windows, pick one from the list.

    RETRO TMUX on iPhone: the server's tmux sessions, with the window picker open showing a Codex window (idle) and a Hermes window (running)
  4. 04

    Type, then just leave

    Use the key row for Ctrl, Esc and arrows. When you're done, lock the phone. Detaching never kills the session: pick it up later from the iPhone, an iPad or your laptop.

    # later, from any computer:
    $ tmux attach -t work
    A tmux session on iPhone in RETRO TMUX running the Hermes agent, with the retro keyboard and the Esc, Tab, Ctrl key row

// Choosing an iPhone SSH app //

Choosing An SSH App For iPhone

There are several good SSH clients for iPhone. If you work in tmux, these are the things that matter, and how RETRO TMUX handles each.

What to checkWhy it mattersRETRO TMUX
Survives the phone lockingiOS suspends apps in seconds; a plain SSH shell dies with themYour work lives in tmux on the server
Ctrl, Esc, Tab, arrowsTerminal programs are unusable without themAlways-visible key row, sticky Ctrl, F1–F12
Room to drawA 40-column terminal breaks vim, htop and agentsNever fewer than 80 columns, pinch to zoom
Where your keys liveAn SSH key is a key to your serveriPhone Keychain. No account, no cloud of ours
Real tmux integrationSessions and windows as tmux sees them, not just a shell that happens to run tmuxYes, through tmux control mode, with an ordinary attach as fallback
Servers without tmuxNot every box you SSH into has tmuxPlain shell mode: an ordinary SSH login
AI agent awarenessKnow if Claude Code or Codex is working or waiting, without attachingWorking / needs you / done / idle

No tmux on that server? RETRO TMUX opens a plain SSH shell too. On a bigger screen? Here's SSH on iPad, with split panes. Running AI agents? Here's how to use Claude Code or Codex on your iPhone. Comparing apps? Termius vs Blink vs Prompt.

// No tmux? //

Just Need A Shell? Plain Shell It Is

Not every server has tmux, and sometimes you only want to restart a service from the sofa. Add the host as Plain shell and RETRO TMUX opens an ordinary SSH login, with the same keyboard, the same keys in the Keychain and the same 80 columns.

  • An ordinary login shell over SSH, password or key.
  • Same key row: Esc, Tab, Ctrl, ^C, arrows, F1–F12.
  • The honest bit: no sessions that survive, no windows, no agent status. Lock the phone and the shell goes with the connection.
  • Want those back? sudo apt install tmux and switch the host to tmux sessions.
Adding a host in RETRO TMUX on iPhone: the Type switch set to Plain shell instead of tmux sessions

// FAQ //

SSH On iPhone, Answered

Can you SSH from an iPhone?

Yes, with an app: iOS has no built-in terminal. An SSH client for iPhone such as RETRO TMUX connects to your server with a password or an SSH key kept in the iPhone Keychain. RETRO TMUX then attaches to tmux on the server, so your work keeps running when the phone locks.

Does the iPhone have a terminal app?

Not a real one. The closest built-in thing is the Shortcuts action “Run Script Over SSH”, which runs one command and shows you the output. For an interactive terminal with a keyboard, scrollback and full-screen programs like vim or htop, you need a terminal app from the App Store.

Why does my SSH session disconnect when I lock my iPhone?

iOS suspends apps shortly after they leave the screen, and their network connections go with them. With plain SSH, the server then hangs up on your shell and whatever was running in it dies. Run your work inside tmux and it keeps going on the server; you just reattach.

Is it safe to keep SSH keys on an iPhone?

In RETRO TMUX, private keys and passwords live in the iPhone Keychain and stay on the device, unless you choose to sync keys with iCloud Keychain. There is no account, and your SSH session goes straight to your server. Generate a fresh Ed25519 key on the phone rather than copying your laptop's key around, and it can be revoked on its own if the phone is lost.

What is the best SSH client for iPhone?

It depends on what you do once you're in. If you work in tmux or run AI coding agents like Claude Code on a server, pick an app built for tmux: a key row with a real Ctrl and Esc, at least 80 columns, and sessions that survive the phone locking. That's what RETRO TMUX is built for, and it also opens a plain SSH shell on servers without tmux.

Can I use it without tmux, as a plain SSH client?

Yes. When you add a host, set Type to Plain shell and RETRO TMUX opens an ordinary SSH login shell, with the same keyboard and the same Keychain keys. You lose what tmux adds: sessions that survive the phone locking, windows, split panes and agent status.

Do I need tmux on my server?

No, but you want it. Without tmux, RETRO TMUX opens a plain SSH shell (pick Plain shell when you add the host). It works, but the shell dies with the connection and there are no windows, panes or agent status. With tmux 3.0 or newer you get all of that, and installing it is one command on most servers, for example sudo apt install tmux.

>>> READY WHEN YOU ARE

ssh you@pocket

RETRO TMUX is in beta. Join, and we'll tell you when there's a build to break.

+ JOIN THE BETA

More: what RETRO TMUX does · SSH on iPad · Claude Code on iPhone

join-beta.sh— retro tmux —

>>> BETA ACCESS

Join The Beta

Tell us a little about your setup. We'll email you when there's a build to break. No newsletter, no spam, just the invite.

you'll use it on
agents you run
your server