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 7/8/9/52/777 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), and port knocking — fire a TCP/UDP sequence at the remote firewall before the real connect, with a per-profile field and an in-dialog "Test knock" button.
- 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 12 languages: English, Chinese (simplified), Spanish, Hindi, Arabic (with RTL support), Portuguese, Bengali, Russian, Japanese, Korean, 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.apk
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, and F-Droid 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 |
Backing
Haven sits on top of the projects listed in the table above — the heavy lifting was done long before this repo existed.
Most of the direction Haven has taken has come from the user base, not from a roadmap: bug reports, screenshots of edge cases, "have you tried…" comments on long issue threads. Claude Code Opus writes most of the actual code; the maintainer's role is closer to that of a messenger between the user group and the model — listening, setting the agenda, and quality-checking.
A small recurring amount comes in via Ko-fi and Liberapay. It helps offset the Anthropic bills for the Claude Code usage above, and it's a clear signal that the work is useful to people. The project continues regardless of donations.
