skills/ios-device-screenshot/SKILL.md
Use when capturing screenshots from physical iOS devices connected via USB using pymobiledevice3.
npx skillsauth add awfixers-stuff/opencode-config ios-device-screenshotInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Take screenshots from physical iOS devices connected via USB using pymobiledevice3.
# Install pymobiledevice3 using uv (recommended)
uv tool install pymobiledevice3
# Or with pipx
pipx install pymobiledevice3
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.
pymobiledevice3 developer screenshot /path/to/screenshot.png
# 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.
ps aux | grep tunneldsudo pymobiledevice3 remote tunnelddeveloper dvt screenshot instead of developer screenshotpymobiledevice3 mounter auto-mount --tunnel ""
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
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
#!/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
development
Use when starting dev servers, watchers, tilt, or any process expected to outlive the conversation. Provides zmx session management patterns for long-lived processes.
development
Zig testing skill for writing and running tests. Use when using zig build test, writing comptime tests, using test filters, working with test allocators to detect leaks, or using Zig's built-in fuzz testing (0.14+). Activates on queries about Zig tests, zig test, zig build test, comptime testing, test allocators, Zig fuzz testing, or detecting memory leaks in Zig tests.
development
Zig debugging skill. Use when debugging Zig programs with GDB or LLDB, interpreting Zig runtime panics, using std.debug.print for tracing, configuring debug builds, or debugging Zig programs in VS Code. Activates on queries about debugging Zig, Zig panics, zig gdb, zig lldb, std.debug.print, Zig stack traces, or Zig error return traces.
tools
Zig cross-compilation skill. Use when cross-compiling Zig programs to different targets, using Zig's built-in cross-compilation for embedded, WASM, Windows, ARM, or using zig cc to cross-compile C code without a system cross-toolchain. Activates on queries about Zig cross-compilation, zig target triples, zig cc cross-compile, Zig embedded targets, or Zig WASM.