Skip to content

hension-code/Haven

 
 

Repository files navigation

Haven icon

Haven

Free SSH, VNC, RDP & SFTP client for Android

Release CI License Ko-fi

GitHub ReleasesGoogle PlayF-Droid


             


Features

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.

Install

Channel
GitHub Releases Free, signed APK
Google Play Free, auto-updates
F-Droid Free, built from source

Build from source

git clone https://github.com/GlassOnTin/Haven.git
cd Haven
./gradlew assembleDebug

Output: app/build/outputs/apk/debug/haven-*-debug.apk

License

GPLv3

About

Free SSH, VNC, RDP & SFTP client for Android

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Kotlin 95.1%
  • Rust 2.9%
  • Python 1.7%
  • Shell 0.3%