Skip to main content

Desktop streaming client for iOS Bridge simulator sessions with Electron app integration

Project description

iOS Bridge CLI

A Python-based command-line tool for streaming and controlling iOS simulator sessions from your desktop, similar to how scrcpy works for Android devices.

Features

  • ๐Ÿ–ฅ๏ธ Desktop streaming of iOS simulator sessions
  • ๐ŸŽฎ Touch and keyboard input control
  • ๐Ÿ“ฑ Device controls (Home, Screenshot, Device Info)
  • ๐Ÿ”Œ WebSocket-based real-time streaming
  • ๐Ÿš€ Easy installation via pip
  • ๐Ÿ’ป Cross-platform Electron-based UI
  • ๐ŸŒ Remote server support (Windows/Linux/macOS)
  • ๐Ÿ–ฅ๏ธ Local server management (macOS only)

Installation

pip install ios-bridge-cli

Platform Support

macOS (Full Functionality)

  • โœ… Local server management
  • โœ… Remote client connections
  • โœ… Desktop streaming
  • โœ… All CLI commands

Windows/Linux (Remote Client Only)

  • โŒ Local server (requires macOS + Xcode)
  • โœ… Remote client connections
  • โœ… Desktop streaming
  • โœ… Session management commands

Quick Start

Cross-Platform Setup (Most Common)

Run iOS simulators on Mac, stream to Windows/Linux:

Mac (Server):

ios-bridge start-server --host 0.0.0.0 --port 8000

Windows/Linux (Client):

ios-bridge connect http://[MAC-IP]:8000 --save
ios-bridge list
ios-bridge stream <session-id>

๐Ÿ“– Complete Cross-Platform Setup Guide

Remote Server Connection

# Connect to your deployed iOS Bridge server
ios-bridge connect https://ios-bridge.yourcompany.com --save

# Test connection
ios-bridge server-status

# Use all commands with remote server
ios-bridge devices
ios-bridge create "iPhone 14 Pro" "18.2" --wait
ios-bridge stream <session_id>

Local Server Management (macOS Only)

# Start the iOS Bridge server (auto-detects server location)
ios-bridge start-server

# Start server in background
ios-bridge start-server --background

# Start server on custom port
ios-bridge start-server --port 9000

# Check server status
ios-bridge server-status

# Stop the server
ios-bridge kill-server

# Force stop all server processes
ios-bridge kill-server --force --all

Session Management

# List available device types and iOS versions
ios-bridge devices

# Create a new iOS simulator session
ios-bridge create "iPhone 14 Pro" "16.0" --wait

# List active sessions
ios-bridge list

# Get session information
ios-bridge info <session_id>

# Terminate a session
ios-bridge terminate <session_id>

Streaming and Control

# Stream an existing session in desktop window
ios-bridge stream <session_id>

# Stream with quality settings
ios-bridge stream <session_id> --quality ultra --fullscreen

# Take screenshot
ios-bridge screenshot <session_id> --output screenshot.png

Note: The --server option is still available if you need to connect to a remote server, but it defaults to http://localhost:8000 when using the local server commands.

Controls

  • Mouse: Click and drag for touch input
  • Keyboard: Type directly into the device
  • Ctrl+C: Close streaming window and exit
  • F1: Home button
  • F2: Take screenshot
  • F3: Show device info

Requirements

  • macOS (for iOS Bridge server)
  • Python 3.8+
  • Running iOS Bridge server instance

Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    HTTP/WS     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    IPC    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Python CLI    โ”‚ โ†โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’ โ”‚  iOS Bridge     โ”‚           โ”‚  Electron App   โ”‚
โ”‚                 โ”‚                 โ”‚    Server       โ”‚           โ”‚                 โ”‚
โ”‚ โ€ข CLI parsing   โ”‚                 โ”‚                 โ”‚           โ”‚ โ€ข Video render  โ”‚
โ”‚ โ€ข API client    โ”‚                 โ”‚ โ€ข Session mgmt  โ”‚ โ†โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’ โ”‚ โ€ข Touch input   โ”‚
โ”‚ โ€ข Process mgmt  โ”‚                 โ”‚ โ€ข WebSockets    โ”‚           โ”‚ โ€ข UI controls   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Development

Desktop App Development

The iOS Bridge desktop app (Electron) supports development mode with live reloading and debugging capabilities.

Quick Start:

cd ios-bridge-cli/ios_bridge_cli/electron_app
npm install
npm run dev

Development with Session Override:

# Override session ID from command line
npm run dev -- --session-id=your-session-id

# Multiple overrides
npm run dev -- --session-id=abc123 --server-host=192.168.0.101 --quality=ultra --fullscreen

Available Override Options:

  • --session-id - Override session ID
  • --server-host - Override server hostname
  • --server-port - Override server port
  • --quality - Override streaming quality (low/medium/high/ultra)
  • --fullscreen - Enable fullscreen mode
  • --always-on-top - Keep window always on top

Development Features:

  • ๐Ÿ”„ Live reloading when files change
  • ๐Ÿ› ๏ธ Chrome DevTools for debugging (Ctrl+Shift+I)
  • ๐Ÿ“ Enhanced logging and debugging
  • ๐ŸŽฏ Command line configuration overrides
  • ๐Ÿš€ WebRTC and WebSocket testing

For detailed development documentation, see: DEVELOPMENT.md

CLI Development

Setting up CLI for development:

# Clone and install in development mode
git clone <repo-url>
cd ios-bridge-cli
pip install -e .

Testing CLI changes:

# Test CLI commands
ios-bridge list
ios-bridge stream <session-id>

# Test with different servers
ios-bridge --server http://remote-server:8000 list

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ios_bridge_cli-1.0.5.tar.gz (636.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ios_bridge_cli-1.0.5-py3-none-any.whl (622.8 kB view details)

Uploaded Python 3

File details

Details for the file ios_bridge_cli-1.0.5.tar.gz.

File metadata

  • Download URL: ios_bridge_cli-1.0.5.tar.gz
  • Upload date:
  • Size: 636.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ios_bridge_cli-1.0.5.tar.gz
Algorithm Hash digest
SHA256 7262b25bfca668ca21fa6db2441f24d493e3b8eef0bc9ae21b27e961b1f97d43
MD5 7d6ebbd33dd6c94b370ca26e4fbd0e05
BLAKE2b-256 db73da533b931a6d7c2b976bb8e0c21a82e93ddd7e71ed21d3f8fda4076fbb1f

See more details on using hashes here.

File details

Details for the file ios_bridge_cli-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: ios_bridge_cli-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 622.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for ios_bridge_cli-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 fd9c6833581b6979ff3f352730a70d3b7da893bc0b99714d329c2a933e7cc6ce
MD5 09419919e2824e43fa31b629cdd9db32
BLAKE2b-256 3fa32577983764fead67b0d3eb28df5734141af43bcda4644e7b4ed04902e9f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page