Image Works

Automation

Batch image processing - compress, resize, format convert, watermark, EXIF clean, and crop. All local, no upload needed.

Install

openclaw skills install @harrylabsj/image-works

Image Workshop Skill

Local-first batch image processing toolkit. Compress, resize, convert formats, add watermarks, clean EXIF, crop — all on your machine with no image upload. Includes presets for Chinese social platforms (WeChat, Xiaohongshu, Taobao, etc.).

Core Capabilities

  • Compress: Quality target, size target, lossless, or auto-smart
  • Resize: Fixed dimensions, scale ratio, max-edge constraint, batch uniform
  • Convert: JPEG ↔ PNG ↔ WebP ↔ AVIF ↔ TIFF (bidirectional)
  • Watermark: Text or image, custom position/opacity, tile mode
  • EXIF: Remove all metadata, remove GPS only, or view metadata
  • Crop: Region crop, aspect-ratio crop (1:1, 4:3, 16:9, 3:4)
  • Presets: One-shot platform-optimized processing (WeChat, Xiaohongshu, Taobao, etc.)

Chinese Platform Presets

PlatformPreset NameSpecs
WeChat Momentswechat-moments3×3 grid crop for 9-square layout
WeChat Official Accountwechat-cover900×383px (2.35:1), <10MB
Xiaohongshuxiaohongshu3:4 ratio, 1080×1440px
Taobao Main Imagetaobao-main800×800px (1:1), <500KB
Douyin Coverdouyin-cover1920×1080 (16:9)
Weibo Imageweibo1200px wide, <20MB
Bilibili Coverbilibili-cover16:9, 1920×1080
Avataravatar400×400 (1:1), <200KB

Usage

clawhub run image-works --input <paths> --op <operation> --output <dir>

Options

OptionTypeDefaultDescription
--inputjson-arrayrequiredFile paths, directories, or glob patterns
--opjson-arrayrequiredOperations to apply (see below)
--presetstringPlatform preset (overrides --op)
--output.dirstring./processed/Output directory
--output.suffixstring''Filename suffix
--output.overwriteboolfalseOverwrite existing files
--output.keep-structurebooltruePreserve original dir structure
--recursiveboolfalseScan subdirectories
--max-filesint1000Maximum files to process

Operations

Compress: {"type":"compress","quality":80,"target_size_kb":500} Resize: {"type":"resize","width":1200,"height":900,"fit":"inside"} Convert: {"type":"convert","format":"webp","quality":85} Watermark: {"type":"watermark","text":"© My Name","position":"bottom-right","opacity":0.5} EXIF: {"type":"exif","action":"remove"} Crop: {"type":"crop","aspect_ratio":"1:1"}

Operations are applied in array order.

Sample Prompts

1. Batch compress all JPEGs in a directory (most common)

clawhub run image-works --input './photos/*.jpg' \
  --op '[{"type":"compress","quality":80}]' \
  --output ./compressed/
# → 47 files processed, 156.2MB → 42.8MB (72.6% saved)

2. Xiaohongshu preset (one-shot)

clawhub run image-works --input ./product-photos/ \
  --preset xiaohongshu \
  --output ./xiaohongshu-ready/
# → Auto-resize to 3:4 (1080×1440), compress, export as JPEG

3. Add watermark with resize + format conversion

clawhub run image-works --input ./portfolio/ \
  --op '[{"type":"watermark","text":"© My Name","position":"bottom-right","opacity":0.3},{"type":"convert","format":"webp","quality":90}]' \
  --output ./watermarked-webp/
# → Watermarked + WebP converted

4. EXIF cleanup for privacy-safe sharing

clawhub run image-works --input ./vacation-photos/ \
  --op '[{"type":"exif","action":"remove"}]' \
  --output ./safe-to-share/
# → All GPS/device metadata removed

5. Batch resize for e-commerce (Taobao main image)

clawhub run image-works --input ./raw-products/ \
  --op '[{"type":"resize","width":800,"height":800,"fit":"cover"},{"type":"compress","quality":85}]' \
  --output ./taobao-ready/
# → Uniform 800×800 product images, optimized

First-Success Path

Step 1: Install → clawhub install image-works
Step 2: Run → clawhub run image-works --input ~/Pictures/ --op '{"type":"compress","quality":80}'
Step 3: See space-savings report → immediate value
Step 4: Explore presets → xiaohongshu, wechat-cover, etc.

Core Scripts

FilePurpose
scripts/__init__.pyPackage init
scripts/scanner.pyFile scanner (glob, recursive)
scripts/processor.pyCore processing pipeline
scripts/operations/compress.pyQuality/target-size/lossless compression
scripts/operations/resize.pyDimension resize, fit modes
scripts/operations/convert.pyFormat conversion
scripts/operations/watermark.pyText/image/tile watermark
scripts/operations/exif.pyEXIF read/remove/GPS-only
scripts/operations/crop.pyRegion/aspect-ratio crop
scripts/presets.pyPlatform preset definitions
scripts/reporter.pyProcessing report generator
scripts/progress.pyProgress bar display