About this project

Husi (虎兕) is a cross-platform proxy tool set offering both mobile and desktop applications for managing proxy connections. **Platforms**: Android (APK) and desktop (Linux, macOS, Windows) via a Java 21 runtime or bundled JetBrains Runtime. **Supported protocols**: - Hysteria2 - Juicity - Mieru - ShadowQUIC (Naive is deprecated; users are directed to build from the official repository.) **Architecture**: The project uses Kotlin Multiplatform with Compose for the UI layer, Go for the core networking engine (libcore), and Zig for native desktop components including the launcher and daemon. The daemon (`husi-core`) runs with elevated privileges for TUN mode support; without it, the UI falls back to an unprivileged session host. **Desktop packages**: - Uber JAR requiring system Java 21 - AppImage with bundled JRE (Linux) - NSIS installer and portable zip (Windows) - `.dmg` application bundle (macOS) - `deb`/`rpm`/`pacman` native packages (Linux) - TAR.ZST relocatable install for rootless deployment **Configuration**: User config files are stored in `$XDG_CONFIG_HOME/husi/` (Linux), `~/Library/Application Support/husi/` (macOS), or `%LOCALAPPDATA%\Programs\Husi` (Windows). JVM options and app startup args can be set via config files in the same directory. **GeoIP**: Husi can generate GeoIP rule-set assets from MaxMind GeoLite2 data for region-based routing. **Build requirements**: JDK 21, NDK 29.0.14206865 (Android), Zig 0.16, and platform-specific tools such as `hdiutil`, `xorrisofs`, `nfpm`, `makensis`, and `osslsigncode` depending on the target. **License**: GPL-3.0 or later. **Based on**: sing-box, shadowsocks-android, NekoBoxForAndroid, ClashMetaForAndroid, and other open-source proxy projects.