Phone control deck and local PC companion.
Get the latest installers from the Releases page. After the first install, Freeze updates itself.
- Windows:
Freeze_*_x64-setup.exe. Windows may say "Windows protected your PC" because the installer isn't signed; choose More info → Run anyway. - macOS:
Freeze_*_aarch64.dmgfor Apple silicon (M1 and later) orFreeze_*_x64.dmgfor Intel. The app isn't notarized by Apple, so the first time, open System Settings → Privacy & Security and choose Open Anyway (on macOS 14 and earlier, right-click the app and choose Open). - Android:
Freeze.apk. Allow installs from your browser or file manager when Android asks.
cd pc-companion
npm install
npm run tauri devThe Freeze desktop app listens on port 39421 and displays a pairing QR code. Keep both devices on the same Wi-Fi network. The macOS companion supports Catalina (10.15) and later and must be built on a Mac with Xcode Command Line Tools. On macOS, allow Freeze in System Settings → Privacy & Security → Accessibility so it can send media keys and shortcuts.
cd phone-app
npm install
npm startOpen the project in Expo Go on a phone on the same Wi-Fi. In the Connect tab, scan the Wi-Fi QR code in Freeze for desktop. Pairing details are stored securely on the phone. Use a trusted Wi-Fi network while connected. Manual entry remains available as a fallback.
The phone deck supports multiple pages, custom keyboard shortcuts, app-launch buttons, ordered shortcut sequences, selectable Lucide icons, and per-page button ordering. Paired PCs are saved on the phone and can be switched from Connect → Paired devices. To use Android over USB, install Android SDK Platform-Tools, enable USB debugging, connect and authorize one phone, then select Android USB and Set up USB in the PC app. Scan once when pairing initially; afterward switch between Wi-Fi and USB from the phone's Connect screen. Freeze retains the PC's pairing key and restores ADB forwarding when the authorized phone reconnects.
iOS uses Wi-Fi. iOS does not provide a general-purpose USB data channel from an app to a PC; Apple's External Accessory framework is for compatible MFi accessories. Apple External Accessory docs
Android's ADB reverse feature forwards a device port to the host and works with USB-connected physical devices. Android ADB reverse docs
The app uses the React Native WebSocket API and the companion protocol documented in the PC companion README.
Run bash scripts/setup-release-signing.sh once to create the signing keys and store them as GitHub Actions secrets. Back up ~/.freeze-signing: installed apps can't update without those keys.
To ship, run node scripts/bump-version.ts 1.2.0, commit, then git tag v1.2.0 && git push origin v1.2.0. The Release workflow builds Windows, macOS and Android into a draft GitHub release. Publish the draft to make it the latest release.
Freeze is free software under the GNU General Public License v3.0. phone-app/ also contains files from Expo's app template, which are MIT licensed (phone-app/LICENSE). macOS release builds bundle mediaremote-adapter (BSD-3-Clause).