Agent skill

giil

Get Image [from] Internet Link - download full-resolution images from iCloud, Dropbox, Google Photos, and Google Drive share links. Perfect for remote AI debugging workflows.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/giil

SKILL.md

giil Skill

Download full-resolution images from cloud photo share links. Zero setup - just paste a link and get the image.

Why giil?

The primary use case: You're working with Clawdbot or another AI assistant and need to share a screenshot. Instead of complex file transfers, just:

  1. Screenshot on your device
  2. Share via iCloud/Dropbox/Google Photos
  3. Paste the share link
  4. giil downloads the full-resolution image instantly

Supported Platforms

Platform URL Patterns Method
iCloud share.icloud.com/photos/* Browser automation
Dropbox dropbox.com/s/*, dropbox.com/scl/fi/* Direct download (fast!)
Google Photos photos.app.goo.gl/*, photos.google.com/share/* Browser + CDN
Google Drive drive.google.com/file/d/* Multi-tier download

Common Commands

Download Single Image

bash
# Basic download to current directory
giil "https://share.icloud.com/photos/0a1Abc_xYz..."

# Download to specific directory
giil "https://share.icloud.com/photos/..." --output ~/Downloads

# Dropbox (super fast - no browser needed)
giil "https://www.dropbox.com/s/abc123/screenshot.png"

# Google Photos
giil "https://photos.app.goo.gl/abc123xyz"

JSON Output (Best for AI Workflows)

bash
# Get structured metadata
giil "https://share.icloud.com/photos/..." --json

Output:

json
{
  "ok": true,
  "platform": "icloud",
  "path": "/path/to/icloud_20240115_143245.jpg",
  "datetime": "2024-01-15T14:32:45.000Z",
  "method": "network",
  "size": 245678,
  "width": 4032,
  "height": 3024
}

Base64 Output

bash
# Output as base64 (no file saved)
giil "https://share.icloud.com/photos/..." --base64

# Create data URI
echo "data:image/jpeg;base64,$(giil '...' --base64)" > image-uri.txt

# Pipe to API
giil "..." --base64 | curl -X POST -d @- https://api.example.com/upload

Download Entire Album

bash
# Download all photos from shared album
giil "https://share.icloud.com/photos/..." --all --output ~/album

# With JSON output per photo
giil "https://share.icloud.com/photos/..." --all --json

Quality Options

bash
# Preserve original bytes (skip MozJPEG compression)
giil "..." --preserve

# Custom JPEG quality (1-100, default 85)
giil "..." --quality 60

# Convert to different format
giil "..." --convert webp
giil "..." --convert png

Debugging

bash
# Verbose output with progress
giil "..." --verbose

# Save debug artifacts on failure
giil "..." --debug

# Just print the resolved CDN URL (don't download)
giil "..." --print-url

# Increase timeout for slow networks
giil "..." --timeout 120

All Options

Flag Default Description
--output DIR . Output directory
--preserve off Keep original bytes (skip compression)
--convert FMT Convert to: jpeg, png, webp
--quality N 85 JPEG quality 1-100
--base64 off Output base64 to stdout
--json off Output JSON metadata
--all off Download all photos from album
--timeout N 60 Page load timeout in seconds
--debug off Save debug artifacts on failure
--verbose off Show detailed progress
--print-url off Just output resolved CDN URL
--update off Force reinstall dependencies
--version Print version
--help Show help

Exit Codes

Code Meaning
0 Success
1 Capture failed
2 Usage error
3 Dependency error
10 Network error
11 Auth required (not publicly shared)
12 Not found (expired/deleted)
13 Unsupported content (video, doc)

Scripting Examples

Check Success

bash
giil "..." --json | jq -e '.ok' && echo "Success" || echo "Failed"

Get Path Only

bash
IMAGE_PATH=$(giil "..." --output ~/Downloads 2>/dev/null)
echo "Downloaded: $IMAGE_PATH"

Handle Errors

bash
giil "https://share.icloud.com/photos/XXX" 2>/dev/null
case $? in
    0) echo "Success!" ;;
    10) echo "Network issue - retry later" ;;
    11) echo "Link not public - ask owner to share" ;;
    12) echo "Link expired" ;;
    *) echo "Failed with code $?" ;;
esac

Download and Analyze with AI

bash
# Download screenshot and get dimensions
RESULT=$(giil "https://share.icloud.com/photos/..." --json)
WIDTH=$(echo "$RESULT" | jq -r '.width')
HEIGHT=$(echo "$RESULT" | jq -r '.height')
PATH=$(echo "$RESULT" | jq -r '.path')

echo "Image: ${WIDTH}x${HEIGHT} at $PATH"

Clawdbot Workflows

"Download this screenshot"

When a user pastes a cloud share link:

User: Can you look at this screenshot? https://share.icloud.com/photos/0a1...

Clawdbot: *Uses giil to download the image*
giil "https://share.icloud.com/photos/0a1..." --json --output /tmp

"Get all photos from this album"

User: Download all photos from this iCloud album: https://share.icloud.com/photos/...

Clawdbot: *Downloads entire album*
giil "..." --all --json --output ~/Downloads/album

"Convert this image to WebP"

bash
giil "https://share.icloud.com/photos/..." --convert webp --output ~/Downloads

Remote Debugging Workflow

The killer use case - you're helping debug a UI issue remotely:

  1. User screenshots bug on iPhone
  2. iCloud syncs to Mac
  3. User shares link from Photos app
  4. User pastes link to Clawdbot
  5. Clawdbot runs giil ... --json to download
  6. AI can now analyze the screenshot

Performance Notes

  • Dropbox: Fastest (1-2 seconds, direct curl download)
  • iCloud/Google: 5-15 seconds (requires headless browser)
  • First run: Downloads Chromium (~500MB, cached)
  • Album mode: ~1 second delay between photos (polite rate limiting)

Troubleshooting

"Auth required" error: The link isn't publicly shared. Owner must enable public access.

Timeout errors: Increase timeout with --timeout 120

Wrong image captured: Run with --debug to see page state. Report issue with debug artifacts.

HEIC issues on Linux: Install libheif-examples package.

File Locations

  • Cache: ~/.cache/giil/ (Playwright, Chromium, node_modules)
  • Debug artifacts: Current directory (giil_debug_*.png, giil_debug_*.html)

Requirements

  • Node.js 18+ (auto-installed if missing)
  • macOS 10.15+ or Linux with glibc 2.17+

Didn't find tool you were looking for?

Be as detailed as possible for better results