بنقرة واحدة
icloud-photos
iCloud Photos: list and download shared albums via pyicloud. SMS 2FA to a trusted phone.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
iCloud Photos: list and download shared albums via pyicloud. SMS 2FA to a trusted phone.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Use for any Microsoft account, personal or work (Outlook.com, Hotmail, Live, Microsoft 365); preferred over email-client for Microsoft accounts. Graph-based mail (read/send/reply/forward, drafts, flag/categorize, move/archive, folders, attachments, block senders), calendar and meetings, Microsoft Teams (chats, channels, presence), and new-mail/Teams notifications. Requires daemon.
Browse, navigate, click, fill forms, screenshot, or scrape web pages with a stealth (Camoufox) browser.
Design judgment and UI copy for building Vesta dashboard widgets that feel considered rather than templated, within the fixed design system.
Use before building or modifying the user's dashboard: widgets, pages, layouts, custom UI. Understand what the user wants, design it, write a spec, then dispatch the dashboard-builder to build it.
Use when someone who doesn't have their own vesta asks what vesta is, how to get one, or hints they want in. Vesta is invite-only: you gatekeep and build desire through scarcity, draw out what they want, then sell vesta as indispensable to their goals and set them up end-to-end in chat. Not for the owner, who already has one.
Talk to vestad, the host daemon that runs this container. Register a background service to get a port, build public URLs, update vestad to the latest release, check its version, and read gateway logs. Use when a skill needs an inbound port or a shareable link, when the user asks to update Vesta, or when debugging gateway/container issues.
| name | icloud-photos |
| description | iCloud Photos: list and download shared albums via pyicloud. SMS 2FA to a trusted phone. |
Read access to iCloud Photos. Designed around shared-album download.
See SETUP.md. Apple ID + password come from ~/.icloud/credentials.json or a Keeper record titled Apple ID / iCloud. Cookies live in ~/.icloud/cookies/.
Apple requires SMS 2FA on every new device. The login worker runs in the background, triggers an SMS to your trusted phone number (the first one Apple returns, or the one matching --phone-suffix), and waits for auth verify.
icloud auth login # spawns background worker, sends SMS
# state goes to ~/.icloud/state.json
# phase=awaiting_code when SMS sent
icloud auth login --apple-id you@example.com --phone-suffix 1234
# explicit Apple ID + last digits of
# the trusted phone to receive SMS on
icloud auth verify --code 123456 # submit the 6-digit code
icloud auth status # check trust state
The agent should:
icloud auth login. If the JSON shows phase: awaiting_code, ask the user for the 6-digit code.icloud auth verify --code <code>. On success, phase becomes trusted.albums / download / sync-shared.If auth status reports is_trusted_session: true, skip the login flow.
icloud albums # both shared + owned
icloud albums --shared # only shared streams
icloud albums --owned # only owned/smart albums
Each entry has name, id, kind (shared|owned), photo_count, and (for shared) sharing_type.
icloud download "Crete" --to ~/Pictures/Crete
icloud download 44A15AF2-446C-4B3B-B0FB-A619244CAE62 --to ~/dl/crete
icloud download "Toscana" --to ~/dl/toscana --quality medium --no-include-videos
Flags:
--to PATH (required) destination directory; created if missing.--include-videos / --no-include-videos default on.--quality original|medium|small default original.Existing files with matching size are skipped, so the command is idempotent.
icloud sync-shared --to ~/Pictures/iCloud-Shared
Creates one subfolder per shared album. Same --quality and --include-videos flags as download.
icloud download <album> accepts either the album id (UUID for shared, smart-name for owned) or the album name. Shared albums win on tie; owned albums are searched second. Names with emoji work as long as they are passed verbatim (quote them).
--include-videos is on (it shows up as a separate .MOV next to the .HEIC).pyicloud returns HEIC for originals on iPhone-sourced albums. Use --quality medium for JPEG.~/.icloud/state.json for the candidate list under candidates.icloud auth login when auth status reports is_trusted_session: false.uv tool install --editable ~/agent/skills/icloud-photos/cli