IOSTerm app icon
v9.2 · on the App Store SwiftUI native iOS 17+ · iPhone & iPad

A real terminal.
On your phone. On your iPad.

IOSTerm is a native iOS SSH, SFTP and terminal client built for developers and sysadmins. Full ANSI terminal with tmux, remote files in the Files app, Live Activities, Shortcuts, Handoff — and YubiKey hardware keys over NFC and USB-C. No accounts, no tracking, no backend.

iPhone & iPad · iOS 17+ · one-time purchase, no subscriptions

IOSTerm on iPad: sidebar with Hive and Wasp servers, SSH Keys, Snippets and Settings; the Hive configuration showing authentication, server health checks and Wake-on-LAN
SwiftUI native iOS 17+ iPhone & iPad YubiKey · NFC & USB-C tmux-aware sessions Files app integration App Intents / Siri Handoff iCloud Keychain End-to-end encrypted No tracking

Hardware keys · new in 9.2

Your SSH key never leaves the YubiKey.

Sign in with a YubiKey over NFC on iPhone and over USB-C on iPad. The private key is generated inside the token: it can't be copied, exported or phished, and the server sees an ordinary ecdsa-sha2-nistp256 login. Nothing custom on the server, nothing to back up on the phone.

A YubiKey 5C NFC plugged into an iPad's USB-C port while IOSTerm shows an SSH session on worker03 that was opened with it

Signed in over USB-C · iPad

  • One key, both devices

    PIV works over the USB-C port on iPad and over NFC on iPhone, from the same code path. FIDO2 keys (sk-ssh-ed25519) keep working over NFC on iPhone.

  • Set up from the app

    Protect with YubiKey asks the token to create a P-256 key in PIV slot 9a, signs in with the server’s current credentials, installs the public key and switches the connection over. No ykman, no Mac.

  • PIN plus the key in your hand

    Every login needs the PIN and the physical token — an NFC tap or the USB-C port. A stolen phone, a leaked backup or a copied config file gets an attacker nothing.

Method iPhone iPad
Hardware Key (PIV) slot 9a · ECDSA P-256 NFC USB-C
Hardware Key (FIDO2) resident · sk-ssh-ed25519 NFC —

Protect with YubiKey

Set up without a desktop.

Open a server, pick Protect with YubiKey (PIV), and the app does the whole enrolment while you hold the key. The next connection is PIN, tap, done.

  1. 1 Read PIV slot 9a over USB-C or one NFC tap — no PIN needed for this
  2. 2 Generate a P-256 key inside the YubiKey skipped if the slot already holds one
  3. 3 Sign in with the server’s current credentials password, key file or FIDO2
  4. 4 Install the public key an idempotent append to ~/.ssh/authorized_keys
  5. 5 Switch the server to PIV the password stays in the Keychain as a fallback
IOSTerm's Protect with YubiKey sheet on iPhone with every step complete: PIV slot read, key reused, connected, public key installed, server switched to PIV, and the key fingerprint shown

Enrolment · iPhone

iOS NFC Ready to Scan sheet over IOSTerm while signing in with a YubiKey

Sign in · NFC

IOSTerm server configuration on iPad with Hardware Key (PIV) selected, the help text naming the key the server needs, and the Read Public Key from YubiKey button

Hardware Key (PIV) in the server settings · iPad

Works with the YubiKey 5 series. PIV needs firmware 5.3 or later; FIDO2 keys need OpenSSH 8.2 or later on the server. YubiKey is a trademark of Yubico.

What's inside

A full terminal, not a toy.

Every feature you expect from a desktop SSH client — and a few that only make sense on a device that knows your Apple ID, your Keychain, and the Files app.

  • YubiKey over NFC and USB-C

    FIDO2 keys on iPhone, PIV keys on iPhone and iPad. The private key lives in the token — the app can even generate it there and install the public half on the server for you.

  • Terminal that actually works

    Full ANSI terminal emulator with 256-color + truecolor, mouse support, UTF-8, and bracketed paste. Vim, htop, btop, nano — everything renders the way you expect.

  • tmux control mode

    Real tmux integration over control mode (-CC): native windows and panes, sessions that survive wifi drops and backgrounding. Reconnect on the train, pick up exactly where you left off.

  • Remote files in Files.app

    Every server registers as a File Provider domain. Browse, open, and edit remote files from any app — Pages, Textastic, Working Copy — like iCloud Drive for your servers.

  • Run sheet

    One-shot commands without opening a full shell. Pull down the Run sheet, type a command, get the output. History syncs privately through your iCloud account.

  • Siri & Shortcuts

    App Intents for connect, healthcheck and restart. Donate frequent actions so Siri learns your workflow: "Hey Siri, restart nginx on hive."

  • Handoff between devices

    Start a command on your iPhone, finish it on your iPad or Mac. Unfinished drafts ride the private CloudKit database across every device you own.

  • Modern crypto, legacy mode

    Ed25519, ECDSA, RSA-2048+, modern key-exchange and ciphers by default. Flip the Legacy toggle for OpenSSH < 6.7 and RHEL 5/6 servers — nothing is forgotten.

  • Optional AI drawer

    Context-aware help from the Anthropic API using your own key. Your device talks directly to anthropic.com — the developer runs no backend, sees no prompts, stores nothing.

  • Snippets, from the camera too

    Keep the commands you run often one tap away in the terminal toolbar. Capture new ones from a screen, a book or a whiteboard with the camera.

  • Wake-on-LAN & health checks

    Wake a sleeping box from the server list, then see what is actually broken: failed units, unmounted fstab entries, zombie processes, disks under pressure.

  • Live tail

    Long-press any file in the SFTP browser to follow it. Sticks to the bottom until you scroll up, pauses when you ask, keeps the last few thousand lines.

Under the hood

It's a real SSH client. Not a shim.

IOSTerm speaks the actual SSH protocol to your actual servers. No cloud relay, no middleman, no "server-assisted" anything. Your device opens a TCP socket and performs the handshake — exactly like OpenSSH does.

  • Ed25519, ECDSA P-256/384/521, RSA 2048+, with modern KEX and ciphers (Curve25519, ChaCha20-Poly1305, AES-GCM).
  • tmux -CC control mode for sessions that survive network drops and backgrounding.
  • Same keys, same config, same authorized_keys entries. Nothing custom on the server.
  • Optional legacy mode for OpenSSH < 6.7 and RHEL 5/6 boxes.
iosterm — teraflops@hive — 100×28

Day-to-day ops

A shell is where it starts.

The things you actually do from a phone at 11pm: check whether a service died, wake the NAS, re-run the command from this morning, watch a log scroll by.

  • tmux control mode

    Native windows and panes over tmux -CC on its own socket, so it never collides with the tmux you already run. Wifi drops, app backgrounds, you come back to the same panes.

  • Health check and Wake-on-LAN

    Four signals that mean something is wrong — failed units, fstab entries that aren’t mounted, zombies, disks under pressure — plus a latency probe and a magic packet for the box that went to sleep.

  • Snippets and live tail

    The commands you run every day, one tap away in the terminal toolbar. Long-press a file in the SFTP browser to follow it as it grows.

IOSTerm server configuration on iPhone showing the Server Health card: latency, a failed certbot-renew service, fstab, zombies, disk pressure, the interface MAC and the Wake-on-LAN field

Server health

IOSTerm on iPhone showing a tmux session split into three panes with the control-key toolbar above the keyboard

tmux panes

Files.app integration

Every server is a location.

Add a server once and it appears in the iOS Files app next to iCloud Drive and your iPhone. Open remote config files in Textastic. Edit git repos in Working Copy. Drop screenshots straight onto a webroot. The file provider speaks SFTP — no extra setup on the server.

  • Open, edit, save — all over SFTP.
  • Works with Textastic, Working Copy, a-Shell, Pages.
  • iOS caches nothing it shouldn't.
  • Uses the same key as the terminal.

Each server you add registers as an iOS File Provider domain, so it lives right next to iCloud Drive and Dropbox — nothing custom, nothing sideloaded.

iOS Files app Explorar view showing IOSTerm server locations (Roon and Hive) in the Ubicaciones sidebar
iPhone lock screen showing IOSTerm Live Activity with a failed docker logs command

Lock screen

iPhone home screen with IOSTerm Dynamic Island Live Activity showing a running docker logs command on the Hive server

Dynamic Island

Live Activities · Widgets · Intents

Long-running jobs on the Lock Screen.

Start a docker logs -f, tail a build, watch a cron — and keep an eye on it from the Dynamic Island, the Lock Screen, or a Home Screen widget. When the command succeeds or fails, the activity updates in place.

  • Live Activities

    Commands run in the background and post updates to Dynamic Island & Lock Screen. Success, failure, and exit code — at a glance.

  • Siri & App Intents

    "Hey Siri, restart nginx on hive." App Intents for Connect, Run Command, Healthcheck, Restart Service, and Cancel Command — donated for every server you add.

  • Home Screen widgets

    A widget per server with live healthcheck status and one-tap connect. Pin a glanceable panel of your fleet right on the Home Screen.

AI · optional · bring your own key

Help when you need it. Silent when you don't.

Two opt-in AI touches, both off until you add your own Anthropic API key. An AI Assistant drawer for context-aware help, and a command generator for turning plain English into a shell command you review before it runs.

AI Assistant drawer

Ask about your terminal output.

Pull up the drawer from any session. Ask what an error means, get a command from a natural-language description, or paste logs for a second opinion. Tap Insert to drop a suggestion straight into your prompt.

IOSTerm AI Assistant drawer on iPad, answering 'Find files greater than 100 MB' with a find command and Insert button

Generate command

Plain English → shell command.

Describe what you want — "find files larger than 100 MB modified today" — and get a bash command you can inspect before running. Your device talks to Anthropic directly with your key; the developer runs no backend and sees nothing.

IOSTerm Generate Command modal on iPad with prompt 'Describe the goal in plain language. The AI engine will propose a bash command.'

Your key, your account

Add your own Anthropic API key in Settings. Requests go from your device to api.anthropic.com and nowhere else — no proxy, no shared quota.

Opt-in

With no key configured there is no AI traffic at all — the buttons don't even appear. Remove the key and the features vanish again.

You review every command

Suggestions appear in a preview, never auto-executed. You tap Insert, read, then press Return.

Alternative icons

Pick your aesthetic.

Four alternate app icons built in. Swap them from Settings — your Home Screen will thank you.

  • Standard icon variant

    Standard

    Deep navy, cyan caret

  • Amber icon variant

    Amber

    Warm CRT, vt100 nostalgia

  • Matrix icon variant

    Matrix

    Phosphor green on black

  • Synthwave icon variant

    Synthwave

    Hot pink caret, late nights

Privacy · TL;DR

Your data goes where you send it.

IOSTerm doesn't have a backend. There's nothing for it to phone home to, no account system, no analytics SDK. The things you'd expect to stay on your device actually do.

Read the full privacy policy
  • Zero analytics

    No SDKs, no event pipelines, no crash reporters. The developer has no dashboards to look at.

  • Secrets in Keychain

    Passwords and private keys live in the iOS Keychain. iCloud Keychain syncs E2E across your Apple devices.

  • SSH traffic direct

    Your device opens a TCP socket to your server. No relay, no proxy, no "cloud sync" of sessions.

  • AI is opt-in, BYOK

    Off by default. If enabled, your device talks directly to Anthropic with your own API key.

  • iCloud is yours

    Command history and drafts sit in your private CloudKit database. The developer can't read it.

  • No account

    You never sign up for anything with the developer. There is no account to leak.

Ready when you are

On the App Store.

IOSTerm 9.2 is available now for iPhone and iPad. One-time purchase — no accounts, no subscriptions, no ads. Bring a YubiKey if you have one.

Version
9.2
Devices
iPhone · iPad
Minimum
iOS 17
Pricing
One-time purchase