Most mobile SSH clients are either abandoned, ad-ridden, or want you to sync your server credentials to someone's cloud. NiceSSH is my answer: a Flutter SSH client focused on a calm, professional interface and a real terminal — with no account and no cloud dependency.
GitHub: imtaqin/NiceSSH · Google Play
What's in it
- Encrypted host profiles — add/edit/delete in a responsive grid. Credentials live in the OS keystore via
flutter_secure_storage, nothing is transmitted anywhere except the servers you configure. - Real terminal — a full
xtermterminal with 256-color support, resize-aware, driven bydartssh2. - Auth — password and private key (PEM / OpenSSH).
- Mobile ergonomics — an accessory key bar with Esc, Tab, Ctrl-C and arrows, connection status, graceful errors and one-tap retry.
The roadmap is ambitious: SFTP browser, port forwarding (local/remote/SOCKS), multi-session tabs, snippets, jump hosts, ~/.ssh/config import, biometric lock and an encrypted vault backup. Host-key verification (TOFU) is the next security milestone — until it ships, verify fingerprints yourself.
Stack
| Concern | Package |
|---|---|
| SSH / SFTP / tunnels | dartssh2 |
| Terminal UI | xterm |
| State | flutter_riverpod |
| Secure storage | flutter_secure_storage |
Android and iOS are the primary targets, and the same codebase runs responsively on Windows, macOS and Linux. MIT-licensed, currently sitting at 13 stars.
It's the SSH client I actually wanted on my own phone — which is still the best reason to build anything.
Comments