PluginBench
Skill
Pass
Audit score 90

baoyu-compress-image

jimliu/baoyu-skills

Compress images to WebP or PNG with automatic tool selection and quality control.

What is baoyu-compress-image?

Compresses images using the best available system tool (sips, cwebp, ImageMagick, or Sharp). Use when you need to reduce image file size, convert to WebP, or optimize images for web delivery.

  • Automatically selects the best compression tool available on the system
  • Compresses single files or entire directories recursively
  • Supports WebP (default), PNG, and JPEG output formats
  • Configurable quality levels (0-100) to balance file size and visual quality
  • Optionally preserves original files while creating compressed versions
  • Outputs JSON results for programmatic integration

How to install baoyu-compress-image

npx skills add https://github.com/jimliu/baoyu-skills --skill baoyu-compress-image
Prerequisites
  • bun or npx installed on your system
Claude Code
Cursor
Windsurf
Cline

How to use baoyu-compress-image

  1. 1.Run the compression command with an input file or directory path
  2. 2.Optionally specify output format with --format (webp, png, jpeg)
  3. 3.Set quality level with --quality (0-100; default 80)
  4. 4.Use --recursive to process subdirectories
  5. 5.Use --keep to preserve the original file alongside the compressed version
  6. 6.Use --json flag if you need machine-readable output

Use cases

Good for
  • Reduce image file sizes before uploading to web servers or CDNs
  • Convert PNG or JPEG images to modern WebP format for better compression
  • Batch compress all images in a project directory with recursive processing
  • Optimize images for email or messaging while maintaining quality
  • Automate image compression in build pipelines with JSON output
Who it's for
  • Web developers optimizing assets for production
  • Content creators managing large image libraries
  • DevOps engineers automating asset pipelines
  • Anyone needing quick, lossless image compression

baoyu-compress-image FAQ

What format does it compress to by default?

WebP, which offers the best compression ratio. You can change this with --format png or --format jpeg.

Will it replace my original image?

Yes, by default it replaces the original. Use --keep to preserve both the original and compressed versions.

Can I compress an entire folder at once?

Yes, pass a directory path and use --recursive to process all images in subdirectories.

How do I customize default settings?

Create an EXTEND.md file in one of the preference paths (.baoyu-skills/baoyu-compress-image/EXTEND.md, XDG config, or home directory) to set default format, quality, and keep-original preference.

What if I don't have cwebp or ImageMagick installed?

The tool automatically falls back to the next available option (sips → cwebp → ImageMagick → Sharp), so it works even with minimal dependencies.

Full instructions (SKILL.md)

Source of truth, from jimliu/baoyu-skills.


name: baoyu-compress-image description: 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. version: 1.56.1 metadata: openclaw: homepage: https://github.com/JimLiu/baoyu-skills#baoyu-compress-image requires: anyBins: - bun - npx

Image Compressor

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

Script Directory

Scripts in scripts/ subdirectory. {baseDir} = this SKILL.md's directory path. Resolve ${BUN_X} runtime: if bun installed → bun; if npx available → npx -y bun; else suggest installing bun. Replace {baseDir} and ${BUN_X} with actual values.

ScriptPurpose
scripts/main.tsImage compression CLI

Preferences (EXTEND.md)

Check EXTEND.md in priority order — the first one found wins:

PriorityPathScope
1.baoyu-skills/baoyu-compress-image/EXTEND.mdProject
2${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-compress-image/EXTEND.mdXDG
3$HOME/.baoyu-skills/baoyu-compress-image/EXTEND.mdUser home

If none found, use defaults.

EXTEND.md supports: Default format, default quality, keep-original preference.

Usage

${BUN_X} {baseDir}/scripts/main.ts <input> [options]

Options

OptionShortDescriptionDefault
<input>File or directoryRequired
--output-oOutput pathSame path, new ext
--format-fwebp, png, jpegwebp
--quality-qQuality 0-10080
--keep-kKeep originalfalse
--recursive-rProcess subdirsfalse
--jsonJSON outputfalse

Examples

# Single file → WebP (replaces original)
${BUN_X} {baseDir}/scripts/main.ts image.png

# Keep PNG format
${BUN_X} {baseDir}/scripts/main.ts image.png -f png --keep

# Directory recursive
${BUN_X} {baseDir}/scripts/main.ts ./images/ -r -q 75

# JSON output
${BUN_X} {baseDir}/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.