package icon

Husk

Turn a spare Android phone into a remote camera and control rig
New in version 1.4
Set the access token in the app.

New Access token field with Generate, Copy and Save. A PC app can also ask for the token: the phone shows a notification, and you tap Approve (GET /token/request, /token/status; /token/set changes it).

The token is no longer read from a global system setting set with adb. After updating, set the token again in the app. Without a token, anyone on your Tailscale network can control the phone.
Husk turns a spare Android phone into a remote camera and control rig on your own LAN or
Tailscale network, without root.

Features: camera streaming (MJPEG) in a browser, or as a webcam via a PC tool; front or back
camera, switchable over HTTP while the stream runs; an accessibility engine for scripted
on-screen actions; in-app recovery of Wireless Debugging after a reboot; an adb bridge for
scrcpy from a PC; camera or screen motion alerts with a push and a live snapshot; a Samsung
DeX toggle on DeX phones. It starts automatically after a reboot.

Husk has no built-in updater and never checks for, downloads or installs anything on its own.
Update from F-Droid, or install an APK with adb.

Every host Husk can talk to, and what triggers it:
* 0.0.0.0 - it LISTENS, it never connects out: the HTTP control server on 8090 and the adb
bridge on 15557, while the service runs, both behind a source-IP allowlist.
* 127.0.0.1 - loopback only, inside the phone: the accessibility engine on 8127, and the adb
bridge forwarding to the local Wireless Debugging port.
* ntfy.sh - only when motion alerts are enabled and you have set a topic; one push per alert.
The server is configurable - use your own instance.
* xplat.co - project website and PC companion download. The app itself never contacts it;
1.1 removed the updater that read it.

The allowlist admits loopback, private LAN ranges, fc00::/7 and Tailscale's 100.64.0.0/10;
some carriers use that range too, so on mobile data it is wider than your tailnet alone. An
optional token adds a second layer, off by default. Restrict access with a Tailscale ACL.

Husk uses the AccessibilityService API and exposes an adb bridge by design. 100% open source
(GPLv3), AOSP framework APIs only: no trackers, no ads, no proprietary code.

Versions

Although APK downloads are available below to give you the choice, you should be aware that by installing that way you will not receive update notifications and it's a less secure way to download. We recommend that you install the F-Droid client and use that.

Download F-Droid
  • Version 1.4 (55) suggested Added on Sep 26, 2026

    This version requires Android 8.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "camera"
      Allows the app to make use of foreground services with the type "camera"
    • run foreground service with the type "mediaProjection"
      Allows the app to make use of foreground services with the type "mediaProjection"
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.

    Download APK 92 KiB PGP Signature | Build Log

  • New in version 1.3
    Two camera fixes.

    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 waits
    until it is free, as it already did for the old side.

    No new permissions or endpoints; the HTTP interface is the same as in 1.2.
  • Version 1.3 (54) - Added on Sep 25, 2026

    This version requires Android 8.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "camera"
      Allows the app to make use of foreground services with the type "camera"
    • run foreground service with the type "mediaProjection"
      Allows the app to make use of foreground services with the type "mediaProjection"
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.

    Download APK 84 KiB PGP Signature | Build Log

  • New in version 1.2
    Bugfix. Switching the camera side over HTTP (/set?front=0|1) started an extra background check
    loop each time instead of reusing the one already running, so repeated switches left several
    one-second loops going at once. They are now collapsed into one.

    Nothing else changed: no new permissions, no new endpoints, and the HTTP interface is the same
    as in 1.1.
  • Version 1.2 (53) - Added on Sep 21, 2026

    This version requires Android 8.0 or newer.

    It is built and signed by the original developer, and guaranteed to correspond to this source tarball.

    Permissions
    • access approximate location only in the foreground
      This app can get your approximate location from location services while the app is in use. Location services for your device must be turned on for the app to get location.
    • access precise location only in the foreground
      This app can get your precise location from location services while the app is in use. Location services for your device must be turned on for the app to get location. This may increase battery usage.
    • view network connections
      Allows the app to view information about network connections such as which networks exist and are connected.
    • take pictures and videos
      This app can take pictures and record videos using the camera while the app is in use.
    • run foreground service
      Allows the app to make use of foreground services.
    • run foreground service with the type "camera"
      Allows the app to make use of foreground services with the type "camera"
    • run foreground service with the type "mediaProjection"
      Allows the app to make use of foreground services with the type "mediaProjection"
    • run foreground service with the type "specialUse"
      Allows the app to make use of foreground services with the type "specialUse"
    • have full network access
      Allows the app to create network sockets and use custom network protocols. The browser and other applications provide means to send data to the internet, so this permission is not required to send data to the internet.
    • show notifications
      Allows the app to show notifications
    • run at startup
      Allows the app to have itself started as soon as the system has finished booting. This can make it take longer to start the phone and allow the app to slow down the overall phone by always running.
    • record audio
      This app can record audio using the microphone while the app is in use.
    • ask to ignore battery optimizations
      Allows an app to ask for permission to ignore battery optimizations for that app.
    • control vibration
      Allows the app to control the vibrator.
    • prevent phone from sleeping
      Allows the app to prevent the phone from going to sleep.
    • modify system settings
      Allows the app to modify the system's settings data. Malicious apps may corrupt your system's configuration.

    Download APK 84 KiB PGP Signature | Build Log