Never lose an SSH session again.

An SSH client whose sessions survive a dropped connection - lock the phone,

change networks, come back to the same shell.

Download · Manual · Changelog · Report a bug · Suggest an idea

- Persistent sessions. A lightweight helper on the server holds your shell open. Reconnect and pick up right where you left off.

- Clean TUI rendering. Drawn directly by Flutter, not in a web view. htop, vim and other TUIs render without broken box characters.

- Encrypted local vault. Keys and passwords are sealed with AES-256-GCM, under a key your phone's secure hardware holds.

The APK on Releases is signed with a different key than the Google Play build,

so one does not update the other - uninstall first to switch. Each APK comes

with a SHA-256 checksum and a build provenance attestation:

gh attestation verify termphin-<version>.apk -R Termphin/Termphin.

- Split screen - two sessions side by side in one tab; drag the divider, swap the panes

- Files beside the shell - browse, upload, download and rename over the same connection

- Autocomplete - commands and paths from your own history, suggested as you type

- Fast upload - pick a file and it lands on the server, with its path pasted at the prompt

- A real text editor - syntax highlighting in your terminal colours, find and replace

- Host key pinning - a changed server key is stopped, not waved through

- SSH tunnels - local and remote port forwards, saved on a machine or opened for one session

- Snippets - save a command with arguments and run it on several machines at once

- Key toolbar - Esc, Tab, Ctrl and arrows above the keyboard, in layouts you arrange

- Action dock - a floating button for paste, snippets and fast upload

- Jump hosts - reach machines behind a bastion, the way ProxyJump does

- Fallback addresses - one machine, a LAN and a Tailscale address, whichever answers

- Two-factor sign-in - one-time codes and PAM prompts asked for in the app

- Reconnects on its own - retries until the network is back, keeps what you type meanwhile

- Predictive echo - on a slow link, what you type shows before the server answers

- Connection health - a quiet warning when replies slow down or stop

- 14 color schemes - dark and light themes, with font, size, cursor and padding to match

- Encrypted backups - export everything to one file, sealed with a passphrase

Before you open an issue, search the existing ones. If yours is already there, add a comment instead. Never paste a private key or password. To hide hostnames and usernames in screenshots, turn on Anonymize in Settings.

Found a vulnerability? Do not open an issue. See SECURITY.md.

flutter pub get

flutter runHow the app is put together is written down in docs/architecture.

The committed android/app/debug-keystore.jks is the public AOSP debug key and

is meant to be there. Release signing keys are not in this repository.

See CONTRIBUTING.md.

- terminal_view - the terminal widget, a fork of xterm

- termphin-agent - the server helper that keeps sessions alive

Termphin is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3 or (at your option) any later version, with the additional terms section 7 of that license allows - chiefly a permission to distribute through app stores.

The name Termphin and its logo are not covered by that license - see the trademark policy. A fork you distribute needs its own name and icon.