[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-83268":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":9,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":16,"starSnapshotCount":16,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},83268,"Haven","GlassHaven\u002FHaven","GlassHaven","Free SSH, VNC, RDP & SFTP client for Android",null,"https:\u002F\u002Fgithub.com\u002FGlassHaven\u002FHaven","Kotlin",663,51,11,13,0,30,32,90,9.15,false,"main","2026-06-12 02:04:32","\u003Cp align=\"center\">\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002Ficon.png\" width=\"80\" alt=\"Haven icon\" \u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">Haven\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  Free SSH, VNC, RDP, SFTP &amp; cloud storage client for Android\n\u003C\u002Fp>\n\n> *\"Haven is an interesting vibe coding experiment. Let's see what comes out of it.\"* — DBP\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGlassHaven\u002FHaven\u002Freleases\u002Flatest\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Frelease-v5.59.22-blue?style=flat-square\" alt=\"Release\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Ff-droid.org\u002Fen\u002Fpackages\u002Fsh.haven.app\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Ff-droid\u002Fv\u002Fsh.haven.app?style=flat-square\" alt=\"F-Droid\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGlassHaven\u002FHaven\u002Factions\u002Fworkflows\u002Fci.yml?query=branch%3Amain\">\u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FGlassHaven\u002FHaven\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=main\" alt=\"Build\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-AGPL--3.0-orange?style=flat-square\" alt=\"License\" \u002F>\u003C\u002Fa>\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAndroid-8.0%2B-3ddc84?style=flat-square&logo=android&logoColor=white\" alt=\"Android 8.0+\" \u002F>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGlassHaven\u002FHaven\u002Freleases\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002FGlassHaven\u002FHaven\u002Ftotal?style=flat-square&label=downloads&cacheSeconds=3600\" alt=\"Downloads\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fko-fi.com\u002Fglassontin\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FKo--fi-support-ff5e5b?style=flat-square&logo=ko-fi&logoColor=white\" alt=\"Ko-fi\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fliberapay.com\u002FGlassOnTin\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fliberapay\u002Freceives\u002FGlassOnTin.svg?style=flat-square&logo=liberapay&logoColor=white&label=Liberapay\" alt=\"Liberapay\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGlassHaven\u002FHaven\u002Freleases\u002Flatest\">GitHub Releases\u003C\u002Fa> &bull;\n  \u003Ca href=\"https:\u002F\u002Ff-droid.org\u002Fen\u002Fpackages\u002Fsh.haven.app\">F-Droid\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F3_wayland_desktop.png\" width=\"140\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F1_terminal.png\" width=\"140\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F2_connections.png\" width=\"140\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F6_vnc_desktop.png\" width=\"140\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F4_cloud_storage.png\" width=\"140\" \u002F>\n  &nbsp;\n  \u003Cimg src=\"fastlane\u002Fmetadata\u002Fandroid\u002Fen-US\u002Fimages\u002FphoneScreenshots\u002F7_keys.png\" width=\"140\" \u002F>\n\u003C\u002Fp>\n\n---\n\n## At a glance\n\n- **Terminal** — Mosh \u002F Eternal Terminal \u002F SSH with tmux-aware session restore, configurable keyboard toolbar, OSC 7\u002F8\u002F9\u002F52\u002F777 integration. Bundled Hack Nerd Font Mono renders Powerline \u002F Devicons \u002F Font Awesome \u002F Material Design glyphs in shell prompts out of the box.\n- **Desktop** — VNC (RFB 3.8 with VeNCrypt), RDP (via IronRDP, with EGFX graphics-pipeline support), a GPU-accelerated native Wayland compositor (labwc on GLES2), and a multi-distro local-desktop manager: install Alpine, Debian, Arch, or Void side-by-side and run Xfce4 \u002F Openbox (X11) or Sway (nested Wayland, via wayvnc) desktops.\n- **Files** — Unified browser for SFTP\u002FSCP, SMB, 60+ cloud providers, and Reticulum mesh. Multi-select, built-in editor, image tools, chmod, cross-filesystem copy\u002Fmove.\n- **Media** — Transcode and stream on-device with FFmpeg 8.0; HLS streaming to the LAN; DLNA server for cloud media.\n- **Keys** — On-device Ed25519\u002FRSA\u002FECDSA generation, FIDO2\u002FSK hardware keys (NFC + USB), deploy-key helper.\n- **Connections** — Host-key TOFU, port forwarding (-L\u002F-R\u002F-D\u002F-J), SOCKS\u002FHTTP 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 \u002F Single Packet Authorization** — fire a TCP\u002FUDP knock sequence, or send a native fwknop SPA packet (AES-256-CBC + HMAC-SHA256, interoperable with `fwknopd`), at the remote firewall before the real connect, with per-profile fields and in-dialog \"Test knock\" \u002F \"Test SPA\" buttons.\n- **Local shell** — a Linux userland via PRoot (no root, any Android 8+ device): Alpine, Debian, Arch, or Void, each with its native package manager, side-by-side.\n- **USB to the guest** — broker an attached USB\u002FOTG device through Android and re-expose it, no root: as MCP tools for the agent (enumerate + raw control\u002Fbulk transfers), or — with a Settings opt-in — into the Linux guest as a `\u002Fdev\u002Fhidraw*` node that unmodified native (`LD_PRELOAD`) and Mono\u002F.NET HidSharp (DllMap) apps can use. HID-focused today.\n- **Reticulum** — rnsh shell, file transfer (browse\u002Fdownload\u002Fupload), and `-L`\u002F`-D` port forwarding over Reticulum mesh networks, pure Kotlin. The one transport that keeps working with no internet at all.\n- **Security** — Biometric lock, no telemetry, encrypted backup\u002Frestore (AES-256-GCM).\n- **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.\n\nSee [docs\u002FFEATURES.md](docs\u002FFEATURES.md) for the full, detailed feature list.\n\n## Languages\n\nAvailable 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.\n\n## Install\n\n| Channel | |\n|---|---|\n| [GitHub Releases](https:\u002F\u002Fgithub.com\u002FGlassHaven\u002FHaven\u002Freleases\u002Flatest) | Signed APK, all features |\n| [F-Droid](https:\u002F\u002Ff-droid.org\u002Fen\u002Fpackages\u002Fsh.haven.app) | Built from source, all features |\n\nBoth 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`.\n\n## Build from source\n\nRequires [Rust](https:\u002F\u002Frustup.rs\u002F) with Android targets, `cargo-ndk`, [Go](https:\u002F\u002Fgo.dev\u002Fdl\u002F) 1.26+, and `gomobile`:\n\n```bash\n# Rust (for RDP)\nrustup target add aarch64-linux-android x86_64-linux-android\ncargo install cargo-ndk\n\n# Go (for rclone cloud storage)\ngo install golang.org\u002Fx\u002Fmobile\u002Fcmd\u002Fgomobile@latest\ngo install golang.org\u002Fx\u002Fmobile\u002Fcmd\u002Fgobind@latest\n\ngit clone --recurse-submodules https:\u002F\u002Fgithub.com\u002FGlassHaven\u002FHaven.git\ncd Haven\n.\u002Fgradlew assembleDebug\n```\n\nOutput: `app\u002Fbuild\u002Foutputs\u002Fapk\u002Fdebug\u002Fhaven-*-debug.apk`\n\n## Documentation\n\n- [Features](docs\u002FFEATURES.md) — detailed feature descriptions.\n- [Backup file format](docs\u002Fbackup-format.md) — wire format, the\n  PBKDF2\u002FAES-GCM envelope, and a Python recipe for manual decryption\n  if the in-app importer fails.\n- [Release process](RELEASE.md) — versioning, tagging, and F-Droid steps.\n- [Privacy policy](PRIVACY_POLICY.md).\n- [Roadmap](ROADMAP.md) and [Vision](VISION.md).\n\n## Third-party libraries\n\n| Library | Purpose | License |\n|---------|---------|---------|\n| [rclone](https:\u002F\u002Frclone.org) | Cloud storage engine (60+ providers) | MIT |\n| [IronRDP](https:\u002F\u002Fgithub.com\u002FDevolutions\u002FIronRDP) | RDP protocol (Rust\u002FUniFFI) | MIT \u002F Apache-2.0 |\n| [JSch](https:\u002F\u002Fgithub.com\u002Fmwiede\u002Fjsch) | SSH\u002FSFTP protocol | BSD |\n| [smbj](https:\u002F\u002Fgithub.com\u002Fhierynomus\u002Fsmbj) | SMB\u002FCIFS protocol | Apache-2.0 |\n| [ConnectBot termlib](https:\u002F\u002Fgithub.com\u002Fconnectbot\u002Fconnectbot) | Terminal emulator | Apache-2.0 |\n| [reticulum-kt](https:\u002F\u002Fgithub.com\u002FGlassOnTin\u002Freticulum-kt) | Reticulum mesh network transport (Kotlin) | MPL-2.0 |\n| [rnsh-kt](https:\u002F\u002Fgithub.com\u002FGlassOnTin\u002Frnsh-kt) | Reticulum remote shell client (Kotlin) | AGPL-3.0 |\n| [FFmpeg](https:\u002F\u002Fffmpeg.org) | Media conversion and streaming | LGPL-2.1 \u002F GPL-2.0 |\n| [PRoot](https:\u002F\u002Fproot-me.github.io) | Local Linux shell (userspace chroot) | GPL-2.0 |\n| [labwc](https:\u002F\u002Flabwc.github.io) | Wayland compositor (native desktop) | GPL-2.0 |\n| [wlroots](https:\u002F\u002Fgitlab.freedesktop.org\u002Fwlroots\u002Fwlroots) | Wayland compositor library | MIT |\n| [virglrenderer](https:\u002F\u002Fgitlab.freedesktop.org\u002Fvirgl\u002Fvirglrenderer) | GPU virtualization (OpenGL passthrough to PRoot apps) | MIT |\n| [Jetpack Compose](https:\u002F\u002Fdeveloper.android.com\u002Fjetpack\u002Fcompose) | UI toolkit | Apache-2.0 |\n\n## Backing\n\nHaven sits on top of the projects listed in the table above — the heavy\nlifting was done long before this repo existed.\n\nMost of the direction Haven has taken has come from the user base, not\nfrom a roadmap: bug reports, screenshots of edge cases, \"have you\ntried…\" comments on long issue threads. Claude Code Opus writes most\nof the actual code; the maintainer's role is closer to that of a\nmessenger between the user group and the model — listening, setting\nthe agenda, and quality-checking.\n\nA small recurring amount comes in via [Ko-fi](https:\u002F\u002Fko-fi.com\u002Fglassontin)\nand [Liberapay](https:\u002F\u002Fliberapay.com\u002FGlassOnTin). It helps offset the\nAnthropic bills for the Claude Code usage above, and it's a clear\nsignal that the work is useful to people. The project continues\nregardless of donations.\n\n## License\n\n[AGPLv3](LICENSE)\n","Haven 是一款适用于 Android 的免费 SSH、VNC、RDP 和 SFTP 客户端。其核心功能包括支持 Mosh 和 Eternal Terminal 的终端连接，具有 tmux 感知的会话恢复和可配置的键盘工具栏；同时，它还提供了 VNC 和 RDP 连接选项，支持 GPU 加速的桌面体验。此外，Haven 集成了云存储功能，使得文件管理更加便捷。此项目采用 Kotlin 语言开发，适合需要在移动设备上进行远程访问和管理的用户，尤其是在网络不稳定或需要高性能图形传输的情况下。",2,"2026-06-11 04:10:44","trending"]