stock-images

Installation

$npx skills add OpenClaudia/openclaudia-skills --skill stock-images

Summary

The agent can search Unsplash by query, download matching images with optional orientation and color filters, and add text overlays (title/subtitle) to the downloaded image. Invoke when the user needs a stock photo, wants to illustrate content, or requires an image for a post or cover design.

SKILL.MD

Unsplash Image Search & Download

Search Unsplash for images, download them, and optionally add text overlay.

Tool Location

  • Script: ~/.agents/tools/unsplash-search.py
  • Env file: ~/.agents/tools/.env (contains UNSPLASH_CLIENT_ID)

Quick Usage

Search and download a random matching image

python ~/.agents/tools/unsplash-search.py \
  --query "nature landscape" \
  --output ./image.jpg

With orientation filter

python ~/.agents/tools/unsplash-search.py \
  --query "coffee shop" \
  --orientation landscape \
  --output ./coffee.jpg

With text overlay (title and subtitle)

python ~/.agents/tools/unsplash-search.py \
  --query "technology abstract" \
  --output ./cover.png \
  --title "My Blog Post Title" \
  --subtitle "A short description"

List results without downloading

python ~/.agents/tools/unsplash-search.py \
  --query "sunset" \
  --list

Pick the first result instead of random

python ~/.agents/tools/unsplash-search.py \
  --query "mountains" \
  --pick first \
  --output ./mountains.jpg

CLI Options

OptionDescription
--query, -q(Required) Search query string
--output, -o(Required unless --list) Output file path
--orientationFilter: landscape, portrait, or squarish
--colorColor filter (e.g., blue, green, red, black_and_white)
--pickHow to select from results: random (default) or first
--titleTitle text to overlay on the image
--subtitleSubtitle text to overlay (only used with --title)
--listList search results instead of downloading
--countNumber of results to fetch, max 30 (default: 30)

Text Overlay

When --title is provided, the script adds a text overlay to the bottom portion of the image with:

  • Semi-transparent dark background behind the text
  • White title text with shadow
  • Gray subtitle text (if provided)
  • Automatic word wrapping and font sizing

Requires Pillow: pip install Pillow

Dependencies

  • requests (for API calls and image download)
  • Pillow (only needed if using text overlay with --title)

Install if needed:

pip install requests Pillow

Output

The script prints:

  • The download URL
  • Photographer attribution (required by Unsplash)
  • The saved file path
  • Confirmation of text overlay if applied

Notes

  • Unsplash API guidelines require attribution. The script prints photographer info.
  • The script triggers Unsplash's download tracking endpoint as required by their API terms.
  • Images are downloaded at "regular" quality (1080px width). For higher resolution, modify the script to use urls.full or urls.raw.