Shell SSH app icon
iOS & iPadOS 17.0+ · iPhone, iPhone Duo, iPad and Mac

Shell SSH

A real interactive SSH terminal for iPhone, iPhone Duo, iPad and Mac.

Not a one-command box. xterm-256color, 256 colours and an alternate screen buffer, so vim, htop and less run the way they do on a desktop. Keys and passwords live in the iOS Keychain. Nothing leaves the device except the connections you start.

Version 1.3.0 · November 2026

A live SSH session in Shell SSH on iPhone: the server’s login banner, then git log --graph in colour, above the key row.

Features

A real terminal

xterm-256color, 256 colours, and an alternate screen buffer, so vim, htop and less behave as they do on a desktop. Font size, cursor style and scrollback are adjustable. Themes: Shell, Solarized Dark and Light, Dracula, Nord, Gruvbox, One Dark, Monokai.

A key row where iOS gives you none

A row above the keyboard for esc, ctrl, tab, the arrows and common symbols. Turn it off when a hardware keyboard is attached.

A hardware keyboard that works like a terminal

New in 1.3. On a Mac, Ctrl and Option shortcuts now reach the shell: Ctrl-C, Ctrl-A, Option-B, Option-Backspace and the rest, as they do on iPad. Shift+Enter starts a new line in chat-style command-line tools such as the Claude CLI instead of sending; it can be turned off in Settings → Terminal.

Hosts

Name, address, port, username and notes. Search runs across all of them.

Keys or a password

Generate an Ed25519 key on the device, or import an existing Ed25519 or RSA key, including passphrase-protected ones. Copy the public key out to paste into authorized_keys.

The server is checked, every time

The server’s identity is verified on the first connection, and a blocking warning appears if a host key ever changes afterwards. Fingerprints are shown in the same SHA-256 form ssh-keygen prints. Trusted fingerprints can be reviewed and removed.

Secrets stay in the Keychain

Passwords, private keys and key passphrases are stored in the iOS Keychain, never in plain files. Face ID or Touch ID can be required before a saved credential is used.

Tabs, two terminals and focus mode

Several sessions run at once as tabs. On iPad and an open iPhone Duo, two terminals sit side by side with a draggable divider, the session’s controls sit in the tab strip, and one button shows or hides the host list. Focus mode (Command-Shift-F) gives one session the whole screen: the host list, the tab strip and the other pane step aside and nothing is closed, while a small pill opens the session’s controls. Tabs and the split are restored when the app reopens, and the selected tab reconnects immediately.

iPhone Duo, folded or open

Closed, iPhone Duo runs the iPhone app you know. Open it and you get the iPad layout: your hosts beside the terminal, two shells side by side, and focus mode. It switches as you fold and unfold, and your open sessions carry over. On the inner display, split view works upright too: two terminals stacked, each the full width.

tmux, if you want it

iOS suspends apps, which drops the SSH connection when the device locks. Shell SSH can run the shell inside tmux, so the session keeps running on the server and reattaches where it left off. It asks the first time and remembers — per host, or as a default. Closing a tab closes its tmux session, so nothing is left running unnoticed.

Snippets

Commands you keep, inserted or run in a tap. Placeholders are {{name}}, {{name?}} for optional, and {{name=default}} to prefill; you are asked for the values when you use the snippet. About a hundred common commands ship as examples. Searchable and reorderable.

Copy and paste

Press and hold to select, then Copy; Copy All takes the whole scrollback. New in 1.3, Select Text copies to the device even while tmux, vim or htop has the mouse: drag to select, two fingers to scroll, then Copy. And with Allow Copy to Clipboard turned on for a host, a copy in tmux or vim lands on the device’s clipboard; each copy is shown as it happens, and a host can never read the clipboard. Command-C and Command-V work with a hardware keyboard. A warning appears before pasting multiple lines, which could otherwise run several commands at once. Copied text can be cleared from the clipboard automatically.

It tells you why a login failed

When a login is refused, the app asks the server which authentication methods it accepts and says so. A server that does not take passwords tells you that, instead of looking like a typo.

Resizes properly

On rotation, in Split View and in Stage Manager.

Shell SSH’s key row covers this app only. For esc, ctrl, alt, function keys and the full arrow cluster in every other app on the device — Blink, Termius, a text field — there is Shell Keyboard, a system-wide keyboard by the same developer. The two are complementary; neither needs the other.

Gallery

A live SSH session on prod-web-01: the server’s login banner with its services, then git log --graph in colour, and the key row above the keyboard.

A real session, with colour and a git graph.

The host list, showing saved servers with their user and address, prod-web-01 marked Connected, and a search field above them.

Every server, one tap away.

The snippet library open as a sheet over a running session, listing commands such as OS and kernel, Uptime and load, and Disk usage.

Snippets, open over a live session.

A snippet asking for its placeholder before it runs: the count for git log --oneline --graph, set to 20.

Snippets ask for what changes, then run.

The SSH Keys screen, listing Ed25519 keys made on the device: nas-backup, github-signing and deploy-ed25519.

Ed25519 keys, made on the device.

The Verify Server sheet on a first connection, showing the host, the ssh-ed25519 algorithm and its SHA-256 fingerprint, with Trust & Connect and Cancel.

The fingerprint check, on the first connection.

The terminal settings: font size with a preview, the colour theme, the key row, Option as Meta, cursor style and scrollback.

Font, theme, cursor and key row, all adjustable.

iPad

Shell SSH on iPad: two terminals side by side, git log --graph beside top, with the session controls in the tab strip.

Two shells, side by side.

Focus mode on iPad: one session fills the screen, the host list, tab strip and the other pane hidden, with a small Focus mode pill at the top.

Focus mode: one session, every pixel.

The host list beside a live terminal on iPad, the session’s controls in the tab strip.

Hosts beside a live terminal.

The snippet library on iPad, open over a terminal beside the host list.

The snippet library, on iPad.

The SSH Keys screen on iPad, with the sidebar of Hosts, Keys, Snippets and Settings.

Keys, on iPad.

The Verify Server sheet on iPad, at full height, with the host, algorithm and SHA-256 fingerprint.

The fingerprint check, on iPad.

iPhone Duo

Shell SSH on an open iPhone Duo: two terminals side by side, git log --graph beside top, with the session controls in the tab strip.

Two shells side by side on iPhone Duo.

Focus mode on an open iPhone Duo: one session fills the inner display, with a small Focus mode pill at the top.

Focus mode, on the inner display.

The host list beside a live terminal on an open iPhone Duo, the session’s controls in the tab strip.

Hosts beside a live terminal, on iPhone Duo.

What it does NOT do

Please read this before buying:

  • No file transfer. There is no SFTP or SCP browser. This is a terminal.
  • No keyboard-interactive authentication (RFC 4256). A server configured with PasswordAuthentication no and KbdInteractiveAuthentication yes — common on hardened images and some 2FA setups — cannot be reached with a password. Use a key on those.
  • No port forwarding, tunnels or SOCKS proxying.
  • No SSH agent, and no agent forwarding.
  • No jump hosts (ProxyJump), and no Mosh.
  • ECDSA private keys are not supported for login. Ed25519 and RSA are.
  • Nothing syncs. Hosts, keys and snippets stay on the device. There is no cloud sync and no account, so they do not follow you to another device.