Baoyu Compress Image

jimliu's avatarfrom jimliu
2.5kstars🔀293forks📁View on GitHub🕐Updated Jan 1, 1970

When & Why to Use This Skill

The baoyu-compress-image skill is a versatile image optimization utility designed for Claude agents to automate media processing. It intelligently selects the best available system tools (sips, cwebp, ImageMagick, or Sharp) to compress images and convert them to modern formats like WebP or PNG. By streamlining the reduction of image file sizes and supporting batch processing, this skill helps users improve web performance, optimize storage, and maintain high-quality visual assets with minimal effort.

Use Cases

  • Web Performance Optimization: Automatically convert legacy image formats to WebP with adjustable quality settings to significantly reduce page load times and improve SEO rankings.
  • Batch Asset Processing: Use the recursive directory feature to optimize hundreds of project images at once, ensuring consistent compression across entire media libraries.
  • Automated Content Delivery: Integrate into workflows where Claude prepares images for social media or blog posts, ensuring every file is optimized for the web before being published.
  • Storage Management: Reduce the disk space footprint of large image repositories by compressing files while retaining the option to keep or replace original versions.
namebaoyu-compress-image
descriptionCompresses 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.

Image Compressor

Compresses images using best available tool (sips → cwebp → ImageMagick → Sharp).

Script Directory

Scripts in scripts/ subdirectory. Replace ${SKILL_DIR} with this SKILL.md's directory path.

Script Purpose
scripts/main.ts Image compression CLI

Preferences (EXTEND.md)

Use Bash to check EXTEND.md existence (priority order):

# Check project-level first
test -f .baoyu-skills/baoyu-compress-image/EXTEND.md && echo "project"

# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.baoyu-skills/baoyu-compress-image/EXTEND.md" && echo "user"

┌────────────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-compress-image/EXTEND.md │ Project directory │ ├────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-compress-image/EXTEND.md │ User home │ └────────────────────────────────────────────────────────┴───────────────────┘

┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ Result │ Action │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Found │ Read, parse, apply settings │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Not found │ Use defaults │ └───────────┴───────────────────────────────────────────────────────────────────────────┘

EXTEND.md Supports: Default format | Default quality | Keep original preference

Usage

npx -y bun ${SKILL_DIR}/scripts/main.ts <input> [options]

Options

Option Short Description Default
<input> File or directory Required
--output -o Output path Same path, new ext
--format -f webp, png, jpeg webp
--quality -q Quality 0-100 80
--keep -k Keep original false
--recursive -r Process subdirs false
--json JSON output false

Examples

# Single file → WebP (replaces original)
npx -y bun ${SKILL_DIR}/scripts/main.ts image.png

# Keep PNG format
npx -y bun ${SKILL_DIR}/scripts/main.ts image.png -f png --keep

# Directory recursive
npx -y bun ${SKILL_DIR}/scripts/main.ts ./images/ -r -q 75

# JSON output
npx -y bun ${SKILL_DIR}/scripts/main.ts image.png --json

Output:

image.png → image.webp (245KB → 89KB, 64% reduction)

Extension Support

Custom configurations via EXTEND.md. See Preferences section for paths and supported options.