Skip to main content

Build & Release

Desktop App (Tauri v2)

The Tauri bundler produces platform-specific installers:

PlatformFormatOutput
WindowsNSIS installerContop Desktop_x.x.x_x64-setup.nsis.exe
WindowsPortable zip (for Scoop)Contop-Desktop_x.x.x_x64-portable.zip
macOSDMGContop Desktop_x.x.x_aarch64.dmg
LinuxAppImage + DEBContop Desktop_x.x.x_amd64.AppImage, .deb

Building

cd contop-desktop
npm run tauri build

Output is placed in src-tauri/target/release/bundle/.

Code Signing

Currently unsigned (open-source alpha). Users install via package managers (Homebrew, Scoop) to avoid security warnings, or accept the OS-level warning on manual installs.

  • Windows: Authenticode signing planned for production (certificate ~$60-80/year, or SignPath OSS)
  • macOS: Apple Developer ID signing + notarization planned ($99/year)
  • Linux: No signing required

Server Sidecar Bundling

The Python server is bundled as a sidecar. The Tauri app manages it via uv run uvicorn:

  • The uv binary and server code are included in the installer / portable zip
  • Server dependencies are resolved at install (NSIS) or first launch (all other methods) via uv sync
  • NVIDIA GPU is auto-detected — CUDA PyTorch (~2.5 GB) is installed if available, otherwise CPU-only (~500 MB)
  • First-launch setup shows a progress overlay with download status
  • The sidecar is spawned on app startup and killed on exit

Mobile App (Expo EAS Build)

Mobile builds use Expo with a managed workflow and dev client for native WebRTC dependencies.

iOS (TestFlight)

cd contop-mobile
eas build --platform ios --profile production
eas submit --platform ios

Android (APK)

cd contop-mobile
eas build --platform android --profile production

The APK is available for direct download. Google Play distribution is planned for GA.

note

Production builds require EAS Build or expo run:android / expo run:ios with a dev client due to native WebRTC bridging.

Distribution Channels

PlatformChannelStatusSecurity Warning?
macOSHomebrew (brew install slopedrop/contop/contop)ActiveNone
macOSDirect download (DMG)ActiveGatekeeper (right-click → Open)
WindowsScoop (scoop install contop)ActiveNone
WindowsDirect download (NSIS installer)ActiveSmartScreen (More info → Run anyway)
LinuxDirect download (AppImage / DEB)ActiveNone
AndroidDirect APKBetaInstall from unknown sources
iOSNot yet available
iOS App StorePlanned
Google PlayPlanned

Package Manager Repos

After each desktop release, update the Homebrew tap and Scoop bucket with the new version and SHA256 hash. See the Release Guide for step-by-step instructions.

ManagerRepoManifest
Homebrewslopedrop/homebrew-contopCasks/contop.rb
Scoopslopedrop/scoop-contopbucket/contop.json

Related: Installation · Testing · Project Structure