Haven
Haven
Free SSH, VNC, RDP, SFTP & cloud storage client for Android
"Haven is an interesting vibe coding experiment. Let's see what comes out of it." — DBP
- Terminal — Mosh / Eternal Terminal / SSH with tmux-aware session restore, configurable keyboard toolbar, OSC 52/8/9/777/7/133 integration. Bundled Hack Nerd Font Mono renders Powerline / Devicons / Font Awesome / Material Design glyphs in shell prompts out of the box.
- Desktop — VNC (RFB 3.8 with VeNCrypt), RDP (via IronRDP), a native Wayland compositor (labwc on GLES2), and one-tap local X11 desktop via PRoot.
- Files — Unified browser for SFTP/SCP, SMB, and 60+ cloud providers. Multi-select, built-in editor, image tools, chmod, cross-filesystem copy/move.
- Media — Transcode and stream on-device with FFmpeg 8.0; HLS streaming to the LAN; DLNA server for cloud media.
- Keys — On-device Ed25519/RSA/ECDSA generation, FIDO2/SK hardware keys (NFC + USB), deploy-key helper.
- Connections — Host-key TOFU, port forwarding (-L/-R/-D/-J), SOCKS/HTTP proxies, Tor, ProxyJump, per-app WireGuard and Tailscale tunnels (userspace, no system VPN slot — each profile can route through its own tunnel without affecting other apps).
- Local shell — Alpine Linux via PRoot (no root, any Android 8+ device).
- Reticulum — rnsh over Reticulum mesh networks, pure Kotlin.
- Security — Biometric lock, no telemetry, encrypted backup/restore (AES-256-GCM).
- Agent transport (MCP) — Optional local loopback MCP server exposes Haven's read and write surfaces as tools. Every action prompts the user for consent; every call shows up in the audit log. Tunnel through any SSH profile in one tap so an MCP client running on the workstation reaches Haven via
localhost. Disabled by default; under Settings → Agent endpoint.
See docs/FEATURES.md for the full, detailed feature list.
Languages
Available in 11 languages: English, Chinese (simplified), Spanish, Hindi, Arabic (with RTL support), Portuguese, Bengali, Russian, Japanese, French, and German. The UI follows the device language. Community translation contributions welcome.
Install
| Channel | |
|---|---|
| GitHub Releases | Signed APK, all features |
| F-Droid | Built from source, all features |
Both builds are identical — SSH, Mosh, Eternal Terminal, VNC, RDP, SFTP, and Cloud Storage. IronRDP (Rust) is built from source via cargo-ndk. rclone (Go) is built from source via gomobile.
Build from source
Requires Rust with Android targets, cargo-ndk, Go 1.26+, and gomobile:
# Rust (for RDP)
rustup target add aarch64-linux-android x86_64-linux-android
cargo install cargo-ndk
# Go (for rclone cloud storage)
go install golang.org/x/mobile/cmd/gomobile@latest
go install golang.org/x/mobile/cmd/gobind@latest
git clone --recurse-submodules https://github.com/GlassHaven/Haven.git
cd Haven
./gradlew assembleDebug
Output: app/build/outputs/apk/debug/haven-*-debug
Documentation
- Features — detailed feature descriptions.
- Backup file format — wire format, the PBKDF2/AES-GCM envelope, and a Python recipe for manual decryption if the in-app importer fails.
- Release process — versioning, tagging, F-Droid and Play Store steps.
- Privacy policy.
- Roadmap and Vision.
Third-party libraries
| Library | Purpose | License |
|---|---|---|
| rclone | Cloud storage engine (60+ providers) | MIT |
| IronRDP | RDP protocol (Rust/UniFFI) | MIT / Apache-2.0 |
| JSch | SSH/SFTP protocol | BSD |
| smbj | SMB/CIFS protocol | Apache-2.0 |
| ConnectBot termlib | Terminal emulator | Apache-2.0 |
| reticulum-kt | Reticulum mesh network transport (Kotlin) | MIT |
| rnsh-kt | Reticulum remote shell client (Kotlin) | MIT |
| FFmpeg | Media conversion and streaming | LGPL-2.1 / GPL-2.0 |
| PRoot | Local Linux shell (userspace chroot) | GPL-2.0 |
| labwc | Wayland compositor (native desktop) | GPL-2.0 |
| wlroots | Wayland compositor library | MIT |
| virglrenderer | GPU virtualization (OpenGL passthrough to PRoot apps) | MIT |
| Jetpack Compose | UI toolkit | Apache-2.0 |
