Auto-Pilot
Updated a month ago

ios-device-screenshot

00xBigBoss
0.0k
0xBigBoss/claude-code/.claude/skills/ios-device-screenshot
72
Agent Score

💡 Summary

English summary.

🎯 Target Audience

Persona 1Persona 2Persona 3

🤖 AI Roast:Powerful, but the setup might scare off the impatient.

Security AnalysisLow Risk

Risk: Low. Review: shell/CLI command execution; filesystem read/write scope and path traversal. Run with least privilege and audit before enabling in production.


name: ios-device-screenshot description: Take screenshots from physical iOS devices connected via USB using pymobiledevice3. Use when capturing screenshots from real iPhones/iPads (not simulators), debugging on-device, or needing high-fidelity device captures. Triggers on physical iOS device screenshots, pymobiledevice3 usage, or USB-connected device capture tasks.

iOS Device Screenshot

Take screenshots from physical iOS devices connected via USB using pymobiledevice3.

Installation

# Install pymobiledevice3 using uv (recommended) uv tool install pymobiledevice3 # Or with pipx pipx install pymobiledevice3

Prerequisites

  1. Physical iOS device connected via USB
  2. Developer Mode enabled on the device (Settings > Privacy & Security > Developer Mode)
  3. Device trusted - approve "Trust This Computer" prompt on device

Usage

For iOS 17+ (including iOS 26+)

iOS 17+ requires a tunneld daemon running with root privileges:

# Terminal 1: Start tunneld (requires sudo, runs continuously) sudo pymobiledevice3 remote tunneld # Terminal 2: Take screenshot via DVT (Developer Tools) pymobiledevice3 developer dvt screenshot --tunnel "" /path/to/screenshot.png

The --tunnel "" flag tells it to use the tunneld for device communication.

For iOS 16 and earlier

pymobiledevice3 developer screenshot /path/to/screenshot.png

Quick Reference

# List connected devices xcrun devicectl list devices # Check iOS version ideviceinfo -k ProductVersion # Check if developer image is mounted ideviceimagemounter list # Auto-mount developer image if needed pymobiledevice3 mounter auto-mount --tunnel "" # Take screenshot (iOS 17+) - single device pymobiledevice3 developer dvt screenshot --tunnel "" ~/Desktop/screenshot.png # Take screenshot with specific device UDID (required for multiple devices) # First get UDIDs from: xcrun devicectl list devices # Pass UDID directly to --tunnel (NOT --udid flag which doesn't work with tunneld) pymobiledevice3 developer dvt screenshot --tunnel "00008101-001E05A41144001E" ~/Desktop/screenshot.png

Important: When multiple devices are connected, pass the UDID directly to --tunnel (not --udid). The --tunnel "" syntax prompts for interactive selection which fails in non-interactive shells.

Troubleshooting

"InvalidServiceError" or "Failed to start service"

  1. Ensure tunneld is running: ps aux | grep tunneld
  2. If not running: sudo pymobiledevice3 remote tunneld
  3. Use the DVT command instead of regular screenshot: developer dvt screenshot instead of developer screenshot

"DeveloperDiskImage not mounted"

pymobiledevice3 mounter auto-mount --tunnel ""

Multiple devices connected

Specify the target device with --udid:

# List devices first xcrun devicectl list devices # Use specific UDID pymobiledevice3 developer dvt screenshot --tunnel "" --udid "40182233-00C8-51ED-8C68-174E14E4B4C9" /tmp/screenshot.png

Key Discovery

For iOS 17+, the regular pymobiledevice3 developer screenshot command often fails even with tunneld running. The solution is to use the DVT (Developer Tools) variant:

# This fails on iOS 17+: pymobiledevice3 developer screenshot --tunnel "" /tmp/screenshot.png # This works on iOS 17+: pymobiledevice3 developer dvt screenshot --tunnel "" /tmp/screenshot.png

Integration Example

#!/bin/bash # Take iOS device screenshot and open it OUTPUT="/tmp/ios-screenshot-$(date +%Y%m%d-%H%M%S).png" # Check if tunneld is running, start if not if ! pgrep -f "pymobiledevice3 remote tunneld" > /dev/null; then echo "Starting tunneld (requires sudo)..." sudo pymobiledevice3 remote tunneld & sleep 3 fi # Take screenshot pymobiledevice3 developer dvt screenshot --tunnel "" "$OUTPUT" if [ -f "$OUTPUT" ]; then echo "Screenshot saved to: $OUTPUT" open "$OUTPUT" # macOS: open in Preview else echo "Failed to capture screenshot" exit 1 fi
5-Dim Analysis
Clarity8/10
Novelty6/10
Utility8/10
Completeness7/10
Maintainability7/10
Pros & Cons

Pros

  • p1
  • p2

Cons

  • c1
  • c2

Related Skills

claude-domain-skills

B
toolAuto-Pilot
72/ 100

“Powerful, but the setup might scare off the impatient.”

my-skills

B
toolAuto-Pilot
72/ 100

“Powerful, but the setup might scare off the impatient.”

terraform-ibm-modules-skills

B
toolAuto-Pilot
72/ 100

“Powerful, but the setup might scare off the impatient.”

Disclaimer: This content is sourced from GitHub open source projects for display and rating purposes only.

Copyright belongs to the original author 0xBigBoss.