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 xterm terminal with 256-color support, resize-aware, driven by dartssh2.
  • 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.