From startup
Compresses JPG/PNG/GIF images to WebP using cwebp, iteratively reducing quality/resolution until under 100KB, preserves originals, reports sizes, updates file references. Use for web/SEO performance.
How this skill is triggered — by the user, by Claude, or both
Slash command
/startup:compress-imagesThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Compress all images in `$ARGUMENTS` (or `app/assets/images/content/` if no path provided) to WebP format, optimized for SEO performance (target: under 100KB per image).
Compress all images in $ARGUMENTS (or app/assets/images/content/ if no path provided) to WebP format, optimized for SEO performance (target: under 100KB per image).
originals/ subfolder inside the target directory and move source files there. Never destroy source files.originals/ to the parent directory as .webp.webptarget-directory/
├── originals/ # High-quality source files preserved here
│ ├── hero.jpg
│ └── feature.png
├── hero.webp # Compressed, web-optimized
└── feature.webp
IMPORTANT: Keep compressing until ALL images are under 100KB. Check sizes after each pass and re-compress any that exceed the target.
cwebp -q 70 -resize 1200 0 originals/image.jpg -o image.webp
ls -lh image.webp # Check size
# Try these in order until under 100KB:
cwebp -q 60 -resize 1200 0 originals/image.jpg -o image.webp
cwebp -q 50 -resize 1200 0 originals/image.jpg -o image.webp
cwebp -q 45 -resize 1200 0 originals/image.jpg -o image.webp
cwebp -q 40 -resize 1200 0 originals/image.jpg -o image.webp
cwebp -q 35 -resize 1200 0 originals/image.jpg -o image.webp
# If q 35 at 1200px is still over 100KB, reduce to 1000px:
cwebp -q 30 -resize 1000 0 originals/image.jpg -o image.webp
cwebp -q 25 -resize 1000 0 originals/image.jpg -o image.webp
From actual compression run on content images:
| Image | Original | First Try | Final | Settings Used |
|---|---|---|---|---|
| waves.jpg | 198KB | 33KB | 33KB | q 70, 1200px (1 pass) |
| calendar.jpg | 246KB | 42KB | 42KB | q 70, 1200px (1 pass) |
| floating.jpg | 230KB | 43KB | 43KB | q 70, 1200px (1 pass) |
| cash.jpg | 409KB | 88KB | 88KB | q 70, 1200px (1 pass) |
| knot.jpg | 395KB | 96KB | 96KB | q 70, 1200px (1 pass) |
| floating-dark.jpg | 414KB | 94KB | 94KB | q 70, 1200px (1 pass) |
| keyboard2.jpg | 459KB | 102KB | 102KB | q 70, 1200px (1 pass, acceptable) |
| perpetual.jpg | 565KB | 130KB | 96KB | q 40, 1200px (3 passes) |
| keyboard.jpg | 718KB | 196KB | 98KB | q 25, 1000px (5 passes) |
ls -lh *.webp - re-run compression on any exceeding targetoriginals/ folder for future reference or re-compressionnpx claudepluginhub rameerez/claude-code-startup-skillsCompresses images to WebP (default) or PNG using automatic tool selection (sips, cwebp, ImageMagick, Sharp). Supports batch, recursive, quality, and keep-original options.
Compresses images to WebP (default) or PNG with automatic tool selection. Use when user asks to 'compress image', 'optimize image', 'convert to webp', or reduce image file size.
Optimizes web images using WebP/AVIF formats, responsive srcset/picture elements, lazy loading, and Sharp for Node.js. Improves page loads, responsive images, production assets.