v10.0.1
Highlights
✨ Operate your iPhone from Claude Code — pymobiledevice3 is now an installable plugin
The repository doubles as a Claude Code plugin marketplace. Install the device-operator skill and Claude can take screenshots, search the device syslog, pull crash reports, manage apps and files, and drive developer services from any directory — a fresh workstation only needs uv and a USB-connected device:
/plugin marketplace add doronz88/pymobiledevice3
/plugin install ios-device-operator@pymobiledevice3
The repo's agent skills are also unified for repo-local work: .claude/skills/ and .codex/skills/ now mirror each other via symlinks, so Claude Code and Codex both discover all three skills (device-operator, tss-batch-prefetch, release), and a new CLAUDE.md loads the shared AGENTS.md guidance in Claude Code.
🤖 Device-operator skill: userspace-tunnel-first guidance, quick recipes, full CLI coverage
The skill's transport guidance caught up with the v10.0.0 userspace-tunnel default (no more routing agents through sudo start-tunnel on iOS 17.4+), gained a quick-recipes reference with exact invocations for the most common tasks (screenshot, syslog search, crash pull, app/file operations, process monitoring), teaches the syslog-first troubleshooting technique, and now routes every CLI_GROUPS entry. Verified end-to-end against a live device.
🧰 Typing: bug-revealing pyright strict rules + plist-typed send/recv API
The project now enforces a curated set of pyright strict rules in CI, and the plist send/recv surface is modeled with dedicated types (pymobiledevice3/plist_types.py: PlistValue / PlistDict / PlistSendable), so API misuse is caught at type-check time. CLI errors also flow through the typer-native error path instead of click.ClickException.
📚 Docs accuracy fixes
A full docs-vs-code audit fixed the wrong shell-completions command in the installation guide (--install-completion), a nonexistent sysmon process monitor pid form in the CLI recipes (use monitor process --filter pid=N), stale docs/README.md references, and an overgeneralized service-pattern claim in the Python API guide.
What's Changed
- 664e05b skills: publish the device-operator skill as a Claude Code plugin (#1787) (@doronz88)
- 86de519 docs: fix stale references and wrong command forms (#1787) (@doronz88)
- 353adb2 skills: refresh device-operator guidance for the userspace default and full CLI coverage (#1787) (@doronz88)
- a212234 skills: unify claude code and codex skill discovery (#1787) (@doronz88)
- f63cdd8 typing: model plist-serialisable data on the send/recv API (#1786) (@doronz88)
- c911cbf cli: replace click.ClickException with the typer-native error path (#1785) (@doronz88)
- bf2062e typing: adopt bug-revealing pyright strict rules (#1785) (@doronz88)
Full Changelog: v10.0.0...v10.0.1