- Android 8.0 or newer — currently a Google Play closed test: open the opt-in link in a mobile browser, then install from Play
- iOS 16 or newer on iPhone and iPad — join the public beta on TestFlight
- Encrypted backups are interoperable: export on one platform, import on the other
Feature list
Mobile SSH features
Mobile SSH is built for direct SSH usage from Android and iOS devices: open terminals, keep them alive, move files, save servers, and recover quickly from mobile interruptions.
- 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. iOS also keeps a Recent list
- 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
- 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 exactly instead of showing empty boxes (Android)
- In a mouse-tracking TUI, a tap is a click — htop, vim, and pane selection work by touch (Android)
- 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)
- Native pass-through keyboard input — no autocorrect fighting the shell; soft-keyboard voice dictation still works
- 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
- 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
- A server that has silently stopped answering — a suspended VM, a wedged jump host — is noticed through unanswered keepalive probes and reconnected instead of quietly eating your keystrokes (iOS)
- Active Sessions entry point from the start screen; ongoing notification lists sessions — tap to open
- tmux command tracking and reattach hints for interrupted work, with a per-server choice of what to attach on connect: auto-detect, nothing, tmux, herdr, or Zellij (Android)
- 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
- Herdr and Zellij managers on Android and iOS, each with the same reach over its own sessions, tabs, and panes — the toolbar shows an icon only once that program is found on the server
- Dual-pane SFTP browser for local and remote files, with a transfer log that shows every transfer and scrolls
- Queued upload and download operations; on Android, share any file from another app into the running session and its remote path is typed at the prompt
- 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"
- On Android, File Transfer reopens where that tmux session left off, naming the session in the pane header, and falls back to the directories you use most on that host when there is nothing to remember
- 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
- App UI translations: Arabic, Bengali, Chinese (Simplified and Traditional), English, French, German, Hindi, Indonesian, Japanese, Marathi, Portuguese, Russian, Spanish, Tamil, Telugu, Turkish, and Urdu — twenty languages on Android, which adds Nigerian Pidgin and Egyptian Arabic, and eighteen on iOS
- 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
- Export saved servers and credentials to a backup file — all of them, or tick just the rows you want, where tapping a folder header takes the whole folder
- Optional passphrase encrypts the backup; import with merge or replace
- An unencrypted backup stores passwords and keys in plain text — protect or delete the file
- 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 stay on the device — secrets live in the Android Keystore and the iOS Keychain, with no cloud account or sync
- Anonymous usage analytics only — never your servers, credentials, commands, or file contents. Android has a switch to turn it off in Settings; iOS does not have one yet
- Browse, install, and run plugins to extend Mobile SSH
- 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
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.