pdone

FreeControl

FreeControl is a cross-platform GUI shell for scrcpy that manages USB and wireless screen mirroring of multiple Android devices from Windows, Linux, and macOS desktops with visual parameter panels.

v2.3.1
Published at
1d ago
2,367
Stars
29,807
Download
Synced at
9h ago

Latest release

v2.3.1Oct 27, 2026, 02:27 PM
Downloads slow? Switch the source anytime above

README

Overview

When you need to mirror and control multiple Android devices from your computer but don't want to memorize scrcpy flags, FreeControl offers a visual panel: device inventory, wireless pairing, parameter controls, and connection management are all graphical, while scrcpy itself does the mirroring. Built with Rust + Tauri 2 + Svelte under the MIT license, it ships as a portable single file on Windows, installers on Linux and macOS, and downloads scrcpy and adb on demand — no manual setup.

scrcpy does the work; FreeControl handles devices, parameters, and status.

Item Detail
Positioning scrcpy GUI shell (device management + parameter panels)
Stack Rust + Tauri 2, frontend Svelte + Vite + TypeScript
Platforms Windows 10/11 (x64 and ARM64), Linux (AppImage/deb), macOS 11+ (dmg)
Mirroring core scrcpy and adb downloaded on demand, with multi-mirror fallback and checksum verification
License MIT

Key Features

  • Device list: one alias per device mapped to a USB serial or IP:port, live online status, add/edit/remove supported
  • Wireless pairing and discovery: pair once with a code, then list LAN devices with wireless debugging in one tap; adb tcpip 5555 setups also work
  • Parameter panels: six groups of common options as controls mapping to scrcpy long option names, each with a "?" detail popup, plus a custom flags box
  • Per-device parameters: one parameter set per device, overriding global settings, enableable or disableable as a whole
  • Multi-device mirroring: connect or disconnect one or all, with several devices mirrored simultaneously and processes managed by the app
  • Command preview: the full scrcpy command about to run is shown at the bottom, copyable in one click
  • In-app updates: check and download new versions from About, verified and replaced in place; the portable build restarts itself
  • Logs and looks: session logs kept for 7 days, 30 days, or forever; light/dark themes, UI and code fonts, and Chinese/English UI are switchable

Quick Start

  1. Grab the package for your platform from Releases: on Windows pick _windows_x64.exe or _windows_arm64.exe by architecture and double-click from any writable directory
  2. On first launch, get scrcpy and adb from the Runtime page (downloaded into the app data directory by default, or point to an existing folder)
  3. Add a device on the Devices page: USB uses the serial from adb devices; wireless offers LAN scan, pairing code, or manual IP:port
  4. Tap Connect on the device card to start mirroring; the command preview at the bottom shows the exact command

Android phones need developer options and USB debugging enabled; for wireless pairing (Android 11+), tap Pair device with pairing code in the phone's wireless debugging settings and enter the 6-digit code in the app.

UI and Data

  • Four pages: Devices for inventory and connections, Parameters for common options, Runtime for scrcpy and adb, and Settings for looks, fonts, language, auto-update, and logs
  • Data directory: %APPDATA%/FreeControl2 on Windows, ~/Library/Application Support/FreeControl2 on macOS; config.json stores devices and parameters, logs/ stores daily logs
  • Factory reset: delete config.json and relaunch to restore defaults
  • Survives exit: quitting the app leaves the adb server running, so established wireless connections are reused on next launch

System Requirements

Item Requirement
Windows 10 / 11, x64 or ARM64, with system-provided WebView2
Linux AppImage or deb, needing webkit2gtk and related libraries
macOS 11 or later; installation needs Safari 16.2+
Android USB debugging enabled; wireless pairing needs Android 11+

Notes

  • Wireless ports drift: connection ports change after device reboots or toggling wireless debugging; tap Re-resolve port on the device card when it goes offline
  • macOS first launch: the dmg is not notarized — allow it under System Settings → Privacy & Security, or run xattr -dr com.apple.quarantine /Applications/FreeControl.app
  • Linux rendering fallback: if the UI freezes in VMs or software-rendered sessions, launch with WEBKIT_DISABLE_DMABUF_RENDERER=1
  • Blank window on Windows: confirm the WebView2 runtime is installed (usually preinstalled on Win10/11)

Release history

Sort