Skip to content

iPhone and iPad

iOS and iPadOS 26 or later.

The iOS app runs no shell of its own. It connects to a host over SSH, with an in-app SSH client, and can move the session onto QUIC. It draws with the same Metal renderer as the macOS app, so images, sized and proportional text, rich text blocks and Tektronix graphics look the same.

  • A host list with search; passwords, keys and pinned host keys in the Keychain.
  • Each host’s sessions, with what each runs, its size and who is attached.
  • Tabs and panes: add a tab, split, close; two panes side by side or stacked on wide screens.
  • Gestures: scroll, swipe through every pane across tab boundaries, swipe between connections, pinch to zoom with reflow.
  • A software-keyboard accessory with Esc, Ctrl, Alt and arrows; Fn reveals F1–F12, Shift and navigation keys. Modifiers can apply once or stay locked.
  • Hardware Command-V pastes, Command-C copies selected text, and Command-A selects all. Control-C remains a terminal interrupt.
  • Dictation with a live preview, file send and receive through the host, bracketed paste.
  • A permission sheet when an agent asks to attach, showing the verified process apart from the name the agent gave.
  • Reattach after the app returns from the background, over QUIC when that was the transport.
A full-screen iPhone terminal attached to a host session: a coloured git commit graph and a directory listing at a dev prompt, with the app's toolbar along the bottom for back, keyboard, dictation, files, split and more.
A host session on iPhone.
An iPad with two stacked terminal panes of one host session's tab: a coloured git log with file statistics on top and compiler output ending in Build succeeded below, the focused pane outlined in blue, and the app's toolbar at the bottom.
Two panes of one tab on iPad, split from the app's toolbar.

Enable Refresh while away in a saved host’s settings to collect retained notifications, unresolved program questions, and pane status. The app connects directly over SSH and keeps a bounded text preview for viewing without opening a terminal session. Catch-up does not send input, resize panes, or take focus.

The opt-in stores a separate credential that can be used while the phone is locked, once you have entered its passcode after a restart. It is tied to the saved endpoint and pinned host key; interactive credentials keep their existing protection. Turning refresh off removes the background credential and cached data.

iOS decides when background refresh runs. The host must be awake, reachable, and already running; there is no push relay, and incoming terminal traffic cannot wake a suspended app. Opening the app also checks for updates. See the background catch-up reference for credential scope, notification behavior, and limits.

Build with Xcode and the iOS 27.1 SDK or newer; a device needs your own signing team. The SDK requirement differs from the iOS 26 deployment minimum:

Terminal window
./Scripts/build-ios.sh
# or open the workspace in Xcode:
./Scripts/generate-xcode-workspace.sh --ios-only

The iOS app reads no configuration file; settings are made in the app. It needs a host for terminal sessions and cannot run a local shell.