Desktop App
The Contop desktop app is a lightweight Tauri v2 application (Rust + HTML/CSS/JS) that manages the Python server and provides a settings interface.
Server Lifecycle
The desktop app manages the Python FastAPI server as a sidecar process:
- Start — Launches
uv run uvicorn main:appautomatically on app startup - Stop — Kills the entire process tree (uv → uvicorn → Python) on app exit
- Restart — Available via the settings panel for configuration changes
[SCREENSHOT: Desktop app main window]
Process group management ensures clean shutdown — on Windows, the entire process tree is terminated; on Unix, setpgid group kills are used.
QR Code Display
The main window displays the pairing QR code:
- Permanent QR — Always available for devices on the same LAN
- Temporary QR — Generated on demand with a Cloudflare Tunnel URL for remote access (4-hour TTL)
The QR code auto-refreshes when network conditions change (new LAN IP, Tailscale connection, tunnel URL).
Device Monitoring
The Devices tab shows all paired devices with live status:
- Device name and connection type (permanent/temporary)
- Connection status (connected/disconnected) with 5-second polling
- Connection path (LAN, Tailscale, or Cloudflare Tunnel)
- Location — city and country via reverse geocoding (if location permission granted on phone)
- Last seen timestamp
- Revoke button to disconnect and invalidate a device's pairing token
[SCREENSHOT: Device management panel]
OS notifications fire on device connect, disconnect, and token replacement events.
CLI Proxy Controls
The desktop app manages CLI proxy processes for subscription mode:
- Start/Stop buttons per provider (Anthropic, Gemini, OpenAI) — manually control each proxy process
- Port inputs — Configure the local port for each proxy (defaults: Anthropic 3456, Gemini 3457, OpenAI 3458)
- Status indicators — Shows
running,starting,stopped, ordegradedper provider - Watchdog — Auto-restarts crashed proxy processes unless the user explicitly stopped them
- Auto-start — When
proxy_auto_startis enabled in settings, proxies start automatically with the server
Proxy logs are written to ~/.contop/proxy-{provider}.log.
Settings Panel
Configure all Contop settings through the desktop GUI:
- API Keys — Gemini, OpenAI, Anthropic, OpenRouter (stored in plaintext in
settings.json) - Subscription Auth — Per-provider toggle between "API Key" and "Subscription" mode
- Security — Restricted paths, forbidden commands, destructive patterns
- System Prompts — Custom conversation and execution agent prompts
- Skills — Enable/disable skills, create custom skills, edit SKILL.md files
- Away Mode — Set PIN, configure auto-engage timeout, emergency PIN
[SCREENSHOT: Settings panel]
Related: Mobile App · Away Mode · Configuration