---
name: Image Compressor
slug: image-compressor
category: Frontend
description: Image Compressor compresses images to WebP (default) or PNG with automatic tool selection. Use when asked to compress image, optimize image, convert to webp, or reduce image file size.
github: "https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-compress-image"
language: TypeScript
stars: 24970
forks: 2789
install: "npx degit https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-compress-image ~/.claude/skills/baoyu-compress-image"
installs_to: ~/.claude/skills/baoyu-compress-image
source_path: skills/baoyu-compress-image/SKILL.md
collection_size: 22
category_size: 567
collection_url: "https://dirskills.com/collections/JimLiu/baoyu-skills"
added: 2026-08-14T07:12:19.045Z
last_synced: 2026-08-14T07:12:19.045Z
canonical_url: "https://dirskills.com/skills/image-compressor"
---

# Image Compressor

Image Compressor compresses images to WebP (default) or PNG with automatic tool selection. Use when asked to compress image, optimize image, convert to webp, or reduce image file size.

**Install:**

```bash
npx degit https://github.com/JimLiu/baoyu-skills/tree/main/skills/baoyu-compress-image ~/.claude/skills/baoyu-compress-image
```

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

| Script | Purpose |
|--------|---------|
| `scripts/main.ts` | Image compression CLI |

## Preferences (EXTEND.md)

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

| Priority | Path | Scope |
|----------|------|-------|
| 1 | `.baoyu-skills/baoyu-compress-image/EXTEND.md` | Project |
| 2 | `${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-compress-image/EXTEND.md` | XDG |
| 3 | `$HOME/.baoyu-skills/baoyu-compress-image/EXTEND.md` | User 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

| 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

```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.
