Skip to content
Back to skills

Ios Device Screenshot

BSecurity

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.

  • 207 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added February 7, 2026
toolsrustshellbashdebuggingsecurity

Works with

  • terminal

Security analysis

B75/100
  • criticalClaims developer/debug mode to bypass safety — documented in ToxicSkills study

Pro scans all 9 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add NeverSight/skills_feed --skill ios-device-screenshot --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ios Device Screenshot?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ios Device Screenshot
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/neversight-ios-device-screenshot/badge)](https://www.skillsdirectory.com/skills/neversight-ios-device-screenshot)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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

```bash
# 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:

```bash
# 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

```bash
pymobiledevice3 developer screenshot /path/to/screenshot.png
```

## Quick Reference

```bash
# 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"

```bash
pymobiledevice3 mounter auto-mount --tunnel ""
```

### Multiple devices connected

Specify the target device with `--udid`:

```bash
# 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:

```bash
# 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

```bash
#!/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
```

Files in this skill

  • SKILL.md3.9 KB
  • description_cn.txt309 B
  • description_de.txt459 B
  • description_en.txt327 B
  • description_es.txt415 B
  • description_fr.txt468 B
  • description_ja.txt580 B
  • description_ko.txt410 B
  • description_tw.txt309 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…