Baoyu Compress Image

by jimliu1567581c26ecNo license26K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 4 weeks ago

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.

Includes scriptsDesign & Creative
AI-generated overview

Compresses images to WebP, PNG, or JPEG using the best available tool, with quality and recursion options.

What it does
Runs a TypeScript CLI that compresses a single image file or a directory of images, converting them to WebP (default), PNG, or JPEG. It selects among available tools (sips, cwebp, ImageMagick, Sharp), supports quality settings, recursive directory processing, keeping originals, and JSON output. It can read optional EXTEND.md preference files for default format, quality, and keep-original behavior.
When to use it
Use when a user asks to compress an image, optimize an image, convert images to WebP, or reduce image file size, including batch processing of image directories.
Requirements
Requires a Bun runtime or npx (to run bun); relies on one of sips, cwebp, ImageMagick, or Sharp being available. Ships an executable script at scripts/main.ts. Optional EXTEND.md configuration files are read from project, XDG, or home locations.

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

bash
${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

bash
# 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.

Source and attribution

Source:jimliu/baoyu-skillsinskills/baoyu-compress-imageat commit1567581

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal