Desktop streaming client for iOS Bridge simulator sessions with Electron app integration
Project description
iOS Bridge CLI
Stream and control iOS simulators like a desktop app - The macOS equivalent of scrcpy for iOS development.
iOS Bridge CLI lets you stream iOS simulator sessions to any device with a beautiful desktop interface. Perfect for cross-platform development teams, remote work, and testing iOS apps from Windows/Linux machines.
What iOS Bridge CLI Does
๐ฅ๏ธ Desktop Streaming - View iOS simulators in a native desktop window
๐ฎ Touch & Keyboard Control - Click, tap, type, and gesture naturally
๐ Cross-Platform Client - Stream from Mac to Windows, Linux, or other Macs
๐ฑ Real Device Experience - Full touch controls, home button, screenshots
๐ Zero Configuration - Works out of the box with automatic server management
โก High Performance - WebRTC streaming with ultra-low latency
Installation
pip install ios-bridge-cli
Requirements: macOS (for server), Python 3.8+, Xcode (for iOS simulators)
Quick Start
1. Create and Stream an iOS Session
# Create an iPhone simulator
ios-bridge create "iPhone 15 Pro" "18.2" --wait
# Stream it to desktop
ios-bridge stream
That's it! A desktop window opens with your iOS simulator ready for interaction.
2. Cross-Platform Setup (Mac Server โ Windows/Linux Client)
On Mac (Server):
# Start the server for remote access
ios-bridge start-server --host 0.0.0.0
# Create and get session ID
ios-bridge create "iPhone 15 Pro" "18.2" --wait
ios-bridge list # Copy the session ID
On Windows/Linux (Client with Full Features):
# Connect to your Mac server
ios-bridge connect http://YOUR-MAC-IP:8000 --save
# Full session management capabilities
ios-bridge create "iPhone 15 Pro" "18.2" --wait # Create sessions
ios-bridge list # List all sessions
ios-bridge stream # Stream (auto-detects session)
ios-bridge terminate <session-id> # Terminate sessions
ios-bridge info <session-id> # Get session details
โจ Important: Windows and Linux clients have complete feature parity with macOS when connected to a Mac server. You can create, manage, stream, and control iOS sessions exactly like on Mac - the only requirement is the initial server connection.
3. Web Interface (Browser Streaming)
# Stream in browser instead of desktop app
ios-bridge stream <session-id> --web-only
# Then open: http://localhost:8000/web/<session-id>
Core Commands
Session Management
# List available device types
ios-bridge devices
# Create new simulator session
ios-bridge create "iPhone 14 Pro" "16.0" --wait
# List active sessions
ios-bridge list
# Get session details
ios-bridge info <session-id>
# Terminate session
ios-bridge terminate <session-id>
App Installation
# Install iOS app (.ipa or .zip) on simulator
ios-bridge install-app /path/to/MyApp.ipa
# Install and launch immediately (shows upload progress)
ios-bridge install-app /path/to/MyApp.ipa --launch
# Install on specific session (auto-detects if only one session)
ios-bridge install-app /path/to/MyApp.zip <session-id> --launch
# Skip confirmation prompt with visual progress
ios-bridge install-app /path/to/MyApp.ipa --force
Features:
- ๐ Visual Progress Bar: Real-time upload progress indicator
- โ๏ธ Installation Status: Clear feedback during processing
- ๐ฏ File Size Display: Shows file size before upload
- ๐ Launch Integration: Automatic app launching after installation
Streaming & Control
# Stream session (auto-detects if only one session)
ios-bridge stream
# Stream specific session
ios-bridge stream <session-id>
# Stream with quality settings
ios-bridge stream <session-id> --quality ultra --fullscreen
# Take screenshot
ios-bridge screenshot --output screenshot.png
Server Management
# Start server (macOS only)
ios-bridge start-server
# Start server in background
ios-bridge start-server --background --port 9000
# Check server status
ios-bridge server-status
# Stop server
ios-bridge kill-server
Remote Connection
# Connect to remote server and save
ios-bridge connect https://ios-bridge.company.com --save
# Test connection
ios-bridge server-status
# Use all commands with remote server
ios-bridge devices
ios-bridge create "iPhone 14" "18.2"
Desktop Controls
- Mouse: Click and drag for touch input
- Keyboard: Type directly into the simulator
- F1: Home button
- F2: Screenshot
- F3: Device info
- F4: Toggle keyboard
- F11: Toggle fullscreen
- Ctrl+C: Close and exit
Platform Support
| Platform | Local Server | Remote Client | Desktop Streaming |
|---|---|---|---|
| macOS | โ Full | โ Full | โ Native App |
| Windows | โ | โ Full | โ Native App |
| Linux | โ | โ Full | โ Native App |
Local server requires macOS + Xcode for iOS simulator access
Advanced Usage
Quality Settings
# Ultra quality (best for local network)
ios-bridge stream --quality ultra
# Low quality (best for slow connections)
ios-bridge stream --quality low
Server Options
# Custom server host/port
ios-bridge start-server --host 192.168.1.100 --port 9000
# Background server with custom settings
ios-bridge start-server --background --host 0.0.0.0 --port 8080
Web Interface Features
- ๐ No desktop app installation required
- ๐ฑ Mobile-friendly interface
- ๐ Shareable URLs for team collaboration
- ๐ WebRTC streaming option
How It Works
โโโโโโโโโโโโโโโโโโโ HTTP/WebSocket โโโโโโโโโโโโโโโโโโโ
โ iOS Bridge โ โโโโโโโโโโโโโโโโโโโโ โ Desktop Client โ
โ Server โ โ (Windows/ โ
โ โ โ Linux/Mac) โ
โ โข iOS Simulator โ โ โ
โ โข Session Mgmt โ โ โข Video Stream โ
โ โข WebRTC/WS API โ โ โข Touch Input โ
โ (macOS Only) โ โ โข Native UI โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
The server runs on macOS (where iOS simulators are available) and streams to desktop clients on any platform.
Common Workflows
iOS Development Team
- QA Team: Run server on Mac mini, stream to Windows/Linux machines
- Remote Work: Develop on Mac, test from anywhere with web interface
- Team Reviews: Share session URLs for collaborative testing
Individual Developer
- Multi-Monitor Setup: Stream simulator to second monitor
- Screen Recording: Use desktop apps like OBS to record iOS interactions
- Cross-Platform Testing: Test iOS app while working on Windows/Linux
Troubleshooting
"No sessions available"
# Check if sessions exist
ios-bridge list
# Create a new session
ios-bridge create "iPhone 15 Pro" "18.2" --wait
Connection errors
# Check server status
ios-bridge server-status
# Restart server if needed
ios-bridge kill-server
ios-bridge start-server
Desktop app won't start
- Ensure server is running first:
ios-bridge start-server - Try web interface:
ios-bridge stream --web-only - Check for port conflicts:
ios-bridge start-server --port 9000
Development
For development documentation, see:
Quick Development Setup
# CLI development
git clone <repo-url>
cd ios-bridge-cli
pip install -e .
# Desktop app development
cd ios_bridge_cli/electron_app
npm install
npm run dev
License
MIT License - see LICENSE file for details
Getting Started: pip install ios-bridge-cli && ios-bridge start-server && ios-bridge create "iPhone 15 Pro" "18.2" --wait && ios-bridge stream
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ios_bridge_cli-1.0.10.tar.gz.
File metadata
- Download URL: ios_bridge_cli-1.0.10.tar.gz
- Upload date:
- Size: 648.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4dda27a117eca3e6f602b553143df8410a9779075bc82f1a763a0e033e514788
|
|
| MD5 |
a67d6c0498e581c15b1e0e552a06f0ed
|
|
| BLAKE2b-256 |
5d64058385c0627654e6af5a77dcc441ca4ada36bf23f022ddfafedc9c1bdd61
|
File details
Details for the file ios_bridge_cli-1.0.10-py3-none-any.whl.
File metadata
- Download URL: ios_bridge_cli-1.0.10-py3-none-any.whl
- Upload date:
- Size: 634.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4e849cc5dad3f630927d17cf5846aabe31ddd48954aa759fc68696196a12898
|
|
| MD5 |
9de5d9df41f88c8a6386f1fd084d116f
|
|
| BLAKE2b-256 |
e36be760ec2613c0624f6f022922f98983e79049252817a506394d442a1c376a
|