mcpField
B
baoyu-compress-image

baoyu-compress-image

github.com/jimliuCreative & media27.0k28.3k installsUpdated 7w ago
Repository

About baoyu-compress-image

baoyu-compress-image is a command-line skill for compressing image files or directories. It selects from available tools and supports output format, quality, recursive processing, and keeping the original.

Key features

  1. 01Compress files or directories
  2. 02Choose WebP, PNG, or JPEG output
  3. 03Set compression quality
  4. 04Process subdirectories recursively
  5. 05Keep original files
  6. 06Emit JSON output

Use cases

  1. 01Convert an image to WebP
  2. 02Compress a directory of images
  3. 03Retain originals during conversion
  4. 04Process nested image folders

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/jimliu/baoyu-skills --skill baoyu-compress-image

After installing, type/baoyu-compress-imagein Claude Code to confirm it loaded.

Bundled filesscripts/main.ts

Details

From the project README

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.

Comments

Markdown supported