Free SSH, VNC, RDP & SFTP client for Android
GitHub Releases • Google Play • F-Droid
Terminal — VT100/xterm emulator with multi-tab sessions, Mosh (Mobile Shell) for roaming connections and Eternal Terminal (ET) for persistent sessions — both with pure Kotlin protocol implementations (no native binaries), tmux/zellij/screen auto-attach, mouse mode for TUI apps, configurable keyboard toolbar (Esc, Tab, Ctrl, Alt, AltGr, arrows with key repeat), text selection with copy and Open URL, configurable font size, and six color schemes.
Desktop (VNC) — Remote desktop viewer with RFB 3.8 protocol support. Pinch-to-zoom, two-finger pan and scroll, single-finger drag for window management, soft keyboard with X11 KeySym mapping. Fullscreen mode with NoMachine-style corner hotspot for session controls. Connect directly or tunnel through SSH. Supports Raw, CopyRect, RRE, Hextile, and ZLib encodings.
Desktop (RDP) — Remote Desktop Protocol client built on IronRDP via UniFFI Kotlin bindings. Connects to Windows Remote Desktop, xrdp (Linux), and GNOME Remote Desktop. Pinch-to-zoom, pan, keyboard with scancode mapping, mouse input. SSH tunnel support with auto-connect through saved SSH profiles. Saved connection profiles with optional stored password.
SFTP — Browse remote directories, upload and download files, delete, copy path, toggle hidden files, sort by name/size/date, and multi-server tabs.
SSH Keys — Generate Ed25519, RSA, and ECDSA keys on-device. Import keys from file (PEM/OpenSSH format). One-tap public key copy and deploy key dialog for authorized_keys setup. Assign specific keys to individual connections.
Connections — Saved profiles with transport selection (SSH, Mosh, Eternal Terminal, VNC, RDP, Reticulum), host key TOFU verification, fingerprint change detection, auto-reconnect with backoff, password fallback, local/remote port forwarding (-L/-R), ProxyJump multi-hop tunneling (-J) with tree view, and RDP-over-SSH tunnel profiles.
Reticulum — Connect over Reticulum mesh networks via rnsh or Sideband with announce-based destination discovery and hop count.
Security — Biometric app lock with configurable timeout (immediate/30s/1m/5m/never), no telemetry or analytics, local storage only. See PRIVACY_POLICY.md.
OSC escape sequences
Remote programs can interact with Android through standard terminal escape sequences:
| OSC | Function | Example |
|---|---|---|
| 52 | Set clipboard | printf '\e]52;c;%s\a' "$(echo -n text | base64)" |
| 8 | Hyperlinks | printf '\e]8;;https://example.com\aClick\e]8;;\a' |
| 9 | Notification | printf '\e]9;Build complete\a' |
| 777 | Notification (with title) | printf '\e]777;notify;CI;Pipeline green\a' |
| 7 | Working directory | printf '\e]7;file:///home/user\a' |
Notifications appear as a toast in the foreground or as an Android notification in the background.
| Channel | |
|---|---|
| GitHub Releases | Free, signed APK |
| Google Play | Free, auto-updates |
| F-Droid | Free, built from source |
git clone https://github.com/GlassOnTin/Haven.git
cd Haven
./gradlew assembleDebugOutput: app/build/outputs/apk/debug/haven-*-debug.apk







