Free, open-source remote access & mobile workspace for Android —
SSH · Mosh · VNC · RDP · SFTP · SMB · email · cloud storage, a local Linux shell, mesh networking, and a consent-gated AI-agent endpoint
"Haven is an interesting vibe coding experiment. Let's see what comes out of it." — DBP
▶ Watch: the terminal — and every Haven screen — made translucent over the device wallpaper (new in 5.60.4). Live wallpaper: MagicFluids.
- Terminal — Mosh / Eternal Terminal / SSH, tmux-aware session restore, configurable keyboard toolbar, OSC 7/8/9/52/133/777 integration.
- Desktops — VNC (RFB 3.8 / VeNCrypt), RDP (IronRDP + EGFX), a GPU-accelerated native Wayland compositor, and a multi-distro local-desktop manager.
- Files & cloud — unified browser for SFTP/SCP, SMB, and 60+ cloud providers; cross-filesystem copy/move, editor and image tools; plus on-device FFmpeg transcode, HLS streaming, and DLNA.
- Connections — port forwarding (-L/-R/-D/-J), SOCKS/HTTP/Tor proxies, per-app WireGuard & Tailscale tunnels, port knocking and fwknop SPA, and SSH keys (incl. FIDO2/SK).
- Email — ProtonMail (bridge protocol) and any IMAP/SMTP mailbox; compose / reply / forward, multi-account, attachments; plus Mail Rules inbound automation.
- Local Linux — a Linux userland via PRoot (no root, any Android 8+ device): Alpine, Debian, Arch, or Void, side-by-side.
- USB forwarding — broker an attached USB device through Android and re-expose it to the agent, into the Linux guest, or over USB/IP to a remote host (e.g. a phone-hosted YubiKey, touch on the phone).
- Reticulum — rnsh shell, file transfer, and
-L/-Dport forwarding over Reticulum mesh, pure Kotlin. The one transport that keeps working with no internet at all. - Agent transport (MCP) — an optional MCP server exposing ~130 consent-gated, audited tools; the agent can even see and operate Haven itself for a self-hosting build → install → verify loop.
- Security — biometric lock, no telemetry, encrypted backup/restore (AES-256-GCM).
See docs/FEATURES.md for the full feature index.
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.
Want to help translate? Improve a translation or add a new language straight from the web translation page — no cloning or setup; your changes become a GitHub pull request. See Languages & translation for details.
| Channel | |
|---|---|
| GitHub Releases | Signed APK, all features |
| F-Droid | Built from source, all features |
Both builds have the same features — SSH, Mosh, Eternal Terminal, VNC, RDP, SFTP, SMB, email, and cloud storage. IronRDP (Rust) is built from source via cargo-ndk. rclone (Go) is built from source via gomobile.
Pick one channel and stay on it. The two channels are signed with different keys — GitHub Releases use Haven's own release key; F-Droid builds from source and signs with F-Droid's per-app key. Android treats different signing keys as different apps, so you can't update in place from one channel to the other — switching means uninstall + reinstall, which clears app data (back up first via Settings → Backup). Direct sideloads and Obtainium track the GitHub Releases key.
Signing certificate SHA-256 (to verify a sideloaded APK with
apksigner verify --print-certs):
- GitHub Releases:
ea03a3a70e1c11d0a78932f959b21f20d8735d9cd750997657cb7f7d7c2b90b3- F-Droid:
ea05a89431961b8ac53c36725452673c2be1c2d7b6e48771617b974e6092b332
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 assembleDebugOutput: app/build/outputs/apk/debug/haven-*-debug.apk
- 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.
- Vision.
| 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) | MPL-2.0 |
| rnsh-kt | Reticulum remote shell client (Kotlin) | AGPL-3.0 |
| 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 |
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.





