- Android 8.0 or newer — Google Play availability depends on the release track; closed-test builds require opt-in
- iOS 16 or newer on iPhone and iPad — join the public beta on TestFlight
- Current Android and iOS versions share backup format 2 for inventory and settings; unsupported platform features do not become available by importing a backup
- This list follows the latest app source; availability varies by store and beta build, and experimental features are marked
Feature list
Mobile SSH features
Connect to your servers from Android and iOS with SSH terminals, remote Git tools, SFTP, VNC, VPN clients and session managers. Android also offers hardware security keys and an experimental voice assistant; platform-specific features are marked below.
- Password authentication and private key authentication
- Ed25519, ECDSA (P-256/384/521), and RSA private keys on Android; Ed25519 and ECDSA on iOS. Both platforms open passphrase-encrypted keys
- Saved server profiles with host, port, username, credential, private key, and optional tunnel specs — clone a profile to duplicate its settings into a new server
- Give a server a name and the list shows that instead of its address — the address returns whenever two rows would otherwise look alike
- Search saved servers by name, host, port, credential, or any of their alternate addresses
- Connect twice to the same machine under two saved rows and the app notices — it fingerprints the host key and offers to merge them into one multi-address server
- Search-first Add Session flow: pick a saved server from a dedicated search page and connect with one tap
- Multiple addresses per saved server for LAN/VPN roaming — dialed in order with the last working address tried first, and reconnection kicks in on network change
- Reusable credential records that can be selected from server setup
- A home screen built around resuming: the connections live right now, and the tmux sessions waiting on your servers — drawn from a stored snapshot, so they list with no network and each row is stamped with its age. On iOS the Recent list moved into the New connection sheet, where a tap prefills the form
- IPv6 end to end: bracketed literals with an optional port in the address fields, and bracketed IPv6 destinations in port-forward rules
- Login log for successful and failed attempts, recording the exact dialed address and, on failure, the reason
- Teleport proxy transport (experimental, Android): log in with username, password, and OTP or import a Teleport config or identity file, browse cluster nodes, then run terminals, SFTP, tmux, and plugins over the proxy tunnel
- Saved SSH jump hosts on both platforms, including ordered chains of up to eight expanded hops; each hop uses its own credentials and server identity checks
- Android SSH agent forwarding: opt in per server to let remote programs request signatures from saved keys, with optional approval before use; private keys stay on the phone
- Android FIDO2 security keys over USB or NFC: enroll or import OpenSSH security-key credentials, then respond to touch and PIN prompts
- VT100/xterm-256color terminal behavior with 24-bit true color and italics — the shell is told TERM=xterm-256color and COLORTERM=truecolor
- Scrollback buffer set to 1,000, 5,000, 10,000, or 50,000 lines on Android and iOS (5,000 by default)
- Find in the terminal — search the scrollback and visible screen and jump between matches (Android and iOS)
- Shell integration (OSC 133): step between prompts, select a whole command's output — the build error from 300 lines back, not just the last one — and get alerted when a long-running command finishes (Android and iOS)
- Inline images in the terminal via the Kitty graphics protocol, surviving pinch-zoom and re-wrap instead of vanishing (Android and iOS)
- Block, braille, and sextant mosaic glyphs drawn by the app itself, so chafa, timg, and ANSI art tile correctly on Android and iOS
- Touch sends mouse clicks to mouse-tracking terminal programs on both platforms, with optional dragging; iOS also offers a setting to place the cursor instead
- The pane header names the pane's real working directory, asked from tmux or reported by the shell over OSC 7 (Android)
- Extra key row of thirteen keys — ESC, TAB, CTRL, arrows, Home, End, PgUp, PgDn, keyboard toggle — that wraps to a second row rather than scrolling, folding any remainder into an overflow menu so no key is off-screen
- Customize the row on Android and iOS: add from a palette of about 45 presets including F1–F12, Ctrl combos, and symbols; remove, reorder, hide, define your own escape-sequence keys, and reset to defaults, with a live preview
- Tap-to-focus, optional tap-to-show-keyboard setting, copy and copy-all actions
- Pinch-to-zoom text sizing with remote terminal resize
- Double-tap pane fullscreen mode
- Terminal text selection with Copy, Share, and Select all — long-press selects the word, and Copy keeps the selection to share or re-copy
- OSC 52 clipboard — copy text from a remote tmux or vim session straight to the phone clipboard (Android and iOS)
- Hardware keyboards and voice dictation on both platforms; iOS enables Dictation & suggestions by default, including autocorrection. Turn it off for direct terminal input
- External and Bluetooth keyboard support on Android and iOS, including arrows, function keys, and Ctrl/Alt chords
- Bracketed paste so multi-line clipboard content is not auto-executed
- Bundled Nerd Font renders powerline, starship, devicon, and Material Design icon glyphs on Android and iOS that the system font would otherwise show as empty boxes
- Wide CJK, emoji, and combining characters are measured and drawn correctly on Android and iOS, including grapheme clusters and zero-width joiners
- Configurable terminal font (system monospace, JetBrains Mono, or Source Code Pro) and ANSI color scheme (Solarized, Gruvbox, Dracula, Nord) on Android and iOS, applied live to open panes
- A terminal text-size slider in Settings alongside pinch-to-zoom, and an app theme set to System, Light, or Dark
- Connection throughput and stalled-link indicators help distinguish a busy remote command from an unresponsive connection; optional dimming and vibration
- Settings control remote notifications, command-finished alerts and remote clipboard reads; these permissions are off by default
- Terminal games can opt into directional swipes that send arrow keys on Android and iOS; ordinary scrolling remains the default
- On Android, reorder or hide session toolbar actions, add installed-plugin shortcuts, and choose whether the toolbar and extra keys hide in fullscreen
- Up to eight concurrent SSH sessions
- Grid layout for active sessions
- Background and screen-lock resilience: on Android a foreground service keeps shells and agents running after you swipe the app away; on iOS tmux auto-attach re-attaches your shell
- Keepalive and reconnect attempts with exponential backoff — up to ten tries, and failures against a network you have already left do not count toward the limit
- Switching Wi-Fi, cellular, or VPN re-dials at once rather than waiting out the dead route, and a session already in backoff retries the moment a usable network appears
- Unanswered keepalive probes detect a server that has stopped responding and trigger reconnects on Android and iOS
- Active Sessions entry point from the start screen; ongoing notification lists sessions — tap to open
- tmux command tracking and reattach hints, with per-server choices of Auto, Nothing, tmux, herdr or Zellij on Android and iOS; session identity is retained across tmux socket switches
- Agents report themselves through the terminal, so the app knows the agent, the tool it is running, and whether it is blocked on you — the pane turns amber, its header reads "claude · needs you", and a toolbar badge counts who is waiting
- Answer an agent's question with one tap from the Agents list; the reply goes over a separate channel, so it never types into what is on screen
- Install the agent hook onto a server from inside the app — a small shell script that any agent can call, not a vendor integration
- Eternal Terminal (ET) transport for sessions that survive network drops, sleep, and IP changes, with optional automatic etserver setup over SSH
- Tmux manager: list and switch sessions, windows, and panes — attach, rename, create, split, zoom, or kill, with name/date sorting and a 🔔 for agents awaiting input
- One multiplexer toolbar button opens the tmux, herdr and Zellij managers; Herdr supports pane previews, focus and replies, and Zellij supports live and exited sessions
- Search loaded tmux, herdr and Zellij sessions, sockets, windows/tabs and panes while keeping matching results in their parent context; unopened remote branches are not searched
- Dual-pane SFTP browser for local and remote files, with a transfer log that shows every transfer and scrolls
- Queued uploads and downloads; share files into Mobile SSH on Android. The iOS Share Extension uploads to the last successfully connected server and queues completed paths for a matching terminal
- Recursive folder upload and download between phone and remote host
- Remote rename, delete, create, edit, compress to .tar.gz, permissions (chmod/chown), and details flows
- Open a downloaded file in another app on both platforms — on iOS downloads also appear in the Files app under "On My iPhone"
- File Transfer remembers remote directories by host and tmux session on both platforms; iOS also remembers an external local folder chosen through Files
- Sort by name or date with per-host persistence, and jump back to recent remote paths
- File sizes in binary units, matching what ls -h shows in the terminal one tab away
- Local port forwarding saved with server profiles and brought up automatically on connect
- Follows the system light or dark theme across the app and file browser — choose System, Light, or Dark on Android and iOS
- Add, edit or remove local port forwards in a live session on Android and iOS; changes survive reconnects without rewriting the saved server profile
- iOS attachment uploads verify completion and file size before publishing the final filename or inserting its path, preserving existing files
- Twenty app languages on both platforms: Arabic, Egyptian Arabic, Bengali, Chinese (Simplified and Traditional), English, French, German, Hindi, Indonesian, Japanese, Marathi, Nigerian Pidgin, Portuguese, Russian, Spanish, Tamil, Telugu, Turkish and Urdu
- Follows the system language by default, and Settings has a language picker if you want the app in something other than the phone's language
- Generate new Ed25519 or ECDSA keys on the device (RSA too on Android), with an optional passphrase
- Copy, share, or save a generated public key to add to the server's authorized_keys
- Full backups include servers, credentials, app settings, language, multiplexer sorting and VPN profiles on both platforms; Android does not preserve managed iOS VPN profiles when re-exporting a backup
- Use selected or inventory-only exports for a smaller scope; preview a full backup and choose Merge or Replace, with optional passphrase encryption
- Unencrypted backups contain passwords and private keys. SSH host trust, active sessions, system permissions and local folder grants are not portable; security-key credentials still need the physical key
- Secure screen: on Android, block screenshots and screen recording and hide the app from the recents thumbnail; on iOS, blank the app-switcher preview and block screen recording and mirroring (a manual screenshot cannot be blocked on iOS) — an opt-in setting for when passwords, keys, or tokens are on screen
- Saved servers, credentials and keys are stored on the device, with no required cloud account or sync; see the privacy page for storage protections and their limits
- Optional usage analytics require explicit consent on Android and iOS; all features work without analytics, and events exclude servers, credentials, commands and file contents
- SSH host identities are verified before authentication. Both platforms automatically trust new raw host keys by default, offer a setting to require approval, and reject changed keys
- Both platforms import scoped OpenSSH host certificate authorities and host-key revocations. iOS supports Ed25519/ECDSA host certificates and an explicit certificate hostname for connecting by IP. SSH trust stays on each device and is excluded from backups
- Browse plugins by category and search, install and run them; catalogs are refreshed when you change sources
- Plugins download on demand from a public catalog and are SHA-256 verified into app-private storage
- A plugin declares what it needs — SSH commands, a tunnel, storage — and the app refuses anything it did not ask for
- When a plugin sets something up on your server, you see the exact commands first and approve them before they run
- Configure a custom or private catalog source, or install from a folder on your own server
- VNC desktops through an SSH tunnel on Android and iOS, without exposing a VNC port to the public internet
- Touch pointer controls, hardware and on-screen keyboard input, clipboard exchange and desktop bell support
- Choose a remote screen-size preset or custom dimensions when the VNC server supports resizing; unsupported resize requests are reported
- iOS supports Mac Screen Sharing account authentication with desktop credentials separate from SSH, and uses your saved extra-key layout
- Manage SSH VPN, SOCKS5 proxy, WireGuard, Shadowsocks and OpenVPN profiles from the home screen on Android and iOS
- SSH VPN carries TCP and DNS through a saved SSH server, with domain routing; other UDP assigned to SSH is blocked. WireGuard and OpenVPN use their own route configuration
- SOCKS5 serves apps configured to use the local proxy. Android can run it alongside another VPN; on iOS it stops when Mobile SSH enters the background
- Import WireGuard .conf files, supported Shadowsocks ss:// links, or self-contained OpenVPN .ovpn profiles with verified server certificates
- Android supports app selection; iOS per-app VPN requires device management. Android app selections cannot directly select iOS apps
- On Android, switch profiles or use the Mobile SSH VPN Quick Settings tile to stop or start the remembered VPN profile; the tile excludes SOCKS proxies
- Android allows one device VPN at a time; iOS allows one Mobile SSH VPN or proxy at a time. These clients do not provide always-on or lockdown guarantees; Tailscale uses its separate app
- Open lazygit in a separate SSH terminal on Android and iOS, using the current repository; iOS also accepts an explicit path. Git and lazygit must be installed on the server
- Optional delta diffs follow the terminal palette with supported lazygit versions; your original shell stays open
- Android can also open the separately installed Git plugin for diffs, history, whole-file staging, commits, fetch, fast-forward pull and push; repositories stay on the server
- Open forwarded HTTP or HTTPS services inside Mobile SSH on Android and iOS; HTTPS still requires a valid certificate
- Android adds terminal link actions, page search, bookmarks, history, desktop mode and per-site browser preferences
- Enable voice assistance in Settings and configure a Linux SSH server to host it; send dictated or typed messages with optional transcript review, or use live conversation with spoken replies
- Choose the server assistant, Codex or Claude and inspect coding assistants across connected hosts; terminal input and multiplexer changes require a separate opt-in
Security note: The current app stores saved server and credential records locally on the device (secrets live in the system Keychain on iOS). It does not provide cloud sync. Protect the device with a strong screen lock and avoid saving credentials on shared devices.