AI summary
Turn a spare Android phone into a remote camera and control rig over your private Tailscale network. Streams MJPEG to browsers or PC webcams, runs scripted screen automation via AccessibilityService, and includes a native adb bridge for scrcpy mirroring without extra tools. Pure Android framework build with no AndroidX, trackers, or ads.
Generated by AI. May contain inaccuracies.
About this app
Turn a spare Android phone into a remote camera and control rig on your own private Tailscale network, without root.
A single pure-framework Android app (no AndroidX, no trackers, no ads), published as FOSS. App ID: co.xplat.husk. Publisher: xplat.
Features
Camera streaming
- MJPEG stream viewable in a browser or usable as a webcam in a meeting through a PC virtual camera.
Automation
- An AccessibilityService-based automation engine for hands-free, scripted on-screen actions on any display, including Samsung DeX.
Remote control and recovery
- Wireless Debugging recovery in-app after a reboot. - App-native adb bridge (Tailscale IP on port 15557) so a PC can mirror and control the phone with scrcpy, with no Termux, no SSH, and no socat. - One-time pairing via the in-app /pair endpoint. - DeX auto-reconnect toggle, shown only on DeX-capable phones. - Boot persistence: the app starts again after a reboot.
Network and privacy
- Network services listen on all interfaces but are gated by a source-IP allowlist: loopback, RFC1918 and LAN addresses, and Tailscale 100.64.0.0/10 peers. An optional token adds a second layer. - Nothing leaves the device except two things you turn on or request yourself: the motion push to your own ntfy topic, and the update check, which reads version information and downloads the APK only when you start an update. - Remote access can be restricted further with a Tailscale ACL.
Interface
- One screen with status, a few toggles, one-tap deep links to every required system setting, and a link to the PC companion. - Bilingual: Danish on Danish devices, English elsewhere.
PC companion
A PowerShell setup script for a fresh Windows 11 that bootstraps scrcpy, pairs the PC hands-free via /pair, and creates desktop shortcuts.
HTTP API
Port 8090, loopback and Tailscale, with optional token: - /healthz, /snapshot, /stream, /wd, /pair, /flags, /set, / viewer - adb bridge on port 15557 - automation RPC on loopback port 8127
Permissions
Internet for local HTTP and the adb bridge on loopback and Tailscale only; camera; foreground service with camera; receive boot completed; wake lock; post notifications; request ignore battery optimisations; and the AccessibilityService binding.
Security
- Port 8090 binds all interfaces but is gated by a source-IP allowlist and an optional shared token. When no token is set, the IP allowlist is the only gate. - Port 8127 binds only 127.0.0.1, so it is unreachable from other devices. It has no app-level authentication: any other app on the same phone with internet permission can reach it and tap, swipe, or read all displays. Accepted on a single-purpose rig with a controlled app set. - Port 15557 requires one-time pairing via /pair and otherwise follows the same source-IP allowlist as port 8090.
Requirements
- Android 8.0 (API 26) or newer - No root required - Tailscale on the device and on the peer you want to use
Disclaimer
Husk is an independent, open-source project published by xplat. It is not affiliated with Tailscale, scrcpy, ntfy, or any third-party service. All trademarks belong to their respective owners.
License
GNU General Public License v3.0 or later
What's new
The chosen camera side (front or back) is now remembered, so an app update no longer switches the camera back to the rear side. - Switching side no longer opens the new side's camera while another app is using it. Husk now waits until it is free, as it already did for the old side.
About this version
- Version
- 1.3 (54)
- Size
- 84.71 KB
- Requires Android
- 8.0
- Target SDK
- 26
- Architecture
- universal
- Downloads
- 4
- Updated
- Sep 23, 2026
- Package
- co.xplat.husk
Similar apps
Ratings & reviews
- 50
- 40
- 30
- 20
- 10