ios-device-screenshot

iOS Device Screenshot

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ios-device-screenshot" with this command: npx skills add 0xbigboss/claude-code/0xbigboss-claude-code-ios-device-screenshot

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

  • Physical iOS device connected via USB

  • Developer Mode enabled on the device (Settings > Privacy & Security > Developer Mode)

  • 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"

  • Ensure tunneld is running: ps aux | grep tunneld

  • If not running: sudo pymobiledevice3 remote tunneld

  • 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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

react-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

typescript-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

python-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

web-fetch

No summary provided by upstream source.

Repository SourceNeeds Review