🖱 UI Automation

Full programmatic control of any iOS interface. Tap, swipe, scroll, long-press, and perform multi-finger gestures on any element. ControlFloor uses Apple's XCTest framework directly, providing the same reliability as Xcode's own UI testing tools without the overhead.

  • Tap, double-tap, and long-press at coordinates or on elements
  • Swipe in any direction with configurable speed and distance
  • Multi-finger gestures (pinch, zoom, rotate)
  • Element discovery by type, label, value, and spatial position
  • Wait for elements to appear or disappear with configurable timeouts
  • Full element tree inspection for debugging

⌨ Keyboard Automation

ControlFloor's keyboard system is a major differentiator. Instead of relying on clipboard paste tricks or slow character-by-character input, ControlFloor uses pre-mapped keyboard layouts that know the exact screen coordinates of every key for every keyboard type and locale. The result is fast, reliable text input that works in every field — including secure password fields where paste is disabled.

  • 12 keyboard types (default, numbers, URL, email, Twitter, etc.)
  • 50+ locale-specific layouts pre-mapped
  • Works in secure/password fields — no clipboard hacks
  • Two input modes: coordinate-based tapping and XCTest typeText
  • Automatic keyboard detection and switching
  • Custom keyboard layout creation and management

📺 Real-Time Video Streaming

See what's on the device screen in real time through your browser. ControlFloor offers two video streaming sources: a high-quality ReplayKit-based stream via the VidStream broadcast extension, and an XCTest-based screenshot stream for simpler setups. Both support multi-client viewing.

  • Dual-source video: ReplayKit broadcast or XCTest screenshots
  • Audio streaming from the device
  • Multiple simultaneous viewers per device
  • Touch interaction directly on the video feed
  • Configurable quality and frame rate
  • Browser-based — no client software required

🐍 Python API

A comprehensive Python library with over 200 functions covering every aspect of device interaction. Build automation scripts, testing frameworks, or custom management tools with a clean, well-documented API.

from controlfloor import CFConnect # Connect to a device conn = CFConnect("https://controlfloor.local:8080") conn.login("admin", "password") device = conn.getDevice("iPhone-12") # Launch an app and interact device.launchApp("com.example.myapp") device.waitForElement("Login", timeout=10) device.typeText("username_field", "user@example.com") device.tap("Sign In")
  • Connection management and authentication
  • Application lifecycle (launch, terminate, list)
  • Element discovery and interaction
  • Text input with keyboard management
  • Screenshot capture and pixel analysis
  • File upload, download, and camera roll management
Full API Reference

🌐 Web Dashboard

A built-in web interface for managing and controlling devices. View all connected devices in a grid, access live video and touch control, manage sessions, and monitor device health — all from a browser.

  • Device grid view with status indicators
  • Live video with interactive touch overlay
  • Session management (exclusive access, timeouts)
  • User management with role-based access
  • Real-time device metrics and alerts
  • Mobile-friendly responsive design

🛠 Device Management

Built-in tools for managing device fleets at scale. Runner mode automates unattended operation, alerts notify you of issues, and maintenance mode lets you take devices offline for servicing without disrupting other users.

  • Runner mode for unattended, automated operation
  • Custom alerts (configurable triggers and thresholds)
  • Maintenance mode for device servicing
  • Exclusive access sessions (prevent conflicts)
  • Multi-provider support for distributed deployments
  • Automatic device detection and registration

📁 File Operations

Upload files to devices, download files from them, manage the camera roll, and access the clipboard. All file operations are available through both the web dashboard and the Python API.

  • Upload files to any app container
  • Download files from device storage
  • Camera roll import and export
  • Clipboard read and write
  • Bulk file operations via Python API
  • Progress tracking for large transfers

🔌 System Controls

Control hardware buttons, trigger Siri, set GPS coordinates, change device orientation, and manage system-level settings. Everything you need for comprehensive device testing and automation.

  • Home button, lock, and volume controls
  • Siri activation and voice commands
  • GPS location simulation
  • Device orientation control
  • Screen brightness and appearance mode
  • Accessibility settings management

📊 Monitoring & Metrics

Track session activity, device health, and automation metrics. Built-in Zabbix integration provides enterprise-grade monitoring, and bearer token authentication enables secure API access from CI/CD pipelines.

  • Session tracking with timestamps and user attribution
  • Device health metrics (connectivity, responsiveness)
  • Zabbix integration for enterprise monitoring
  • Bearer token authentication for CI/CD
  • JSON API for custom integrations
  • Configurable alerting thresholds

Ready to Take Control?

Start with a free trial — no license needed to automate the Notes app. See for yourself what production-grade iOS automation looks like.