CLI Options
imgx provides a powerful command-line interface (CLI) for performing image operations. This page documents all available commands and their options.
Global Options
These options apply to all imgx commands:
--help, -h Show help information
--version, -v Show version information
--verbose Enable verbose output
--config <path> Path to config file (default: imgx.config.{ts,js})Commands
optimize
Optimizes one or more images to reduce file size while maintaining quality.
imgx optimize <input> [options]Arguments:
input: File path or glob pattern for images to optimize
Options:
--output, -o <path>: Output file or directory--quality, -q <number>: Quality setting (1-100) (default: 80)--format, -f <format>: Output format (jpeg, png, webp, avif)--progressive, -p: Enable progressive mode--no-progressive: Disable progressive mode--preserve-metadata: Preserve image metadata--overwrite: Overwrite existing files (default: true)
Examples:
# Optimize a single image
imgx optimize image.jpg
# Optimize and convert to WebP
imgx optimize image.jpg -f webp
# Optimize multiple images with glob
imgx optimize "images/**/*.{jpg,png}" -q 85
# Specify output directory
imgx optimize image.jpg -o optimized/convert
Converts images from one format to another.
imgx convert <input> --format <format> [options]Arguments:
input: File path or glob pattern for images to convert
Options:
--format, -f <format>: Output format (required)--output, -o <path>: Output file or directory--quality, -q <number>: Quality setting (1-100) (default: 80)--lossless: Use lossless compression (for WebP/AVIF)--progressive, -p: Enable progressive mode--preserve-metadata: Preserve image metadata
Examples:
# Convert to WebP
imgx convert image.jpg -f webp
# Convert to AVIF with custom quality
imgx convert image.jpg -f avif -q 70
# Convert multiple images
imgx convert "images/*.jpg" -f webp -o converted/responsive
Generates responsive image sets in multiple sizes.
imgx responsive <input> [options]Arguments:
input: Image file path
Options:
--sizes <sizes>: Comma-separated list of widths (default: 320,640,960,1280,1920)--formats, -f <formats>: Comma-separated list of formats (default: webp,jpeg)--quality, -q <number>: Quality setting (1-100) (default: 80)--output-dir, -o <path>: Output directory--filename-template <template>: Template for output filenames (default: [name]-[width].[ext])--generate-html: Generate HTML with srcset and sizes attributes
Examples:
# Generate responsive images with default settings
imgx responsive image.jpg
# Custom sizes and formats
imgx responsive image.jpg --sizes 480,768,1024,1440 -f webp,avif
# Generate with HTML output
imgx responsive image.jpg --generate-htmlapp-icon
Generates app icons for iOS or macOS.
imgx app-icon <input> [options]Arguments:
input: Source image file path (should be high-res, at least 1024x1024px)
Options:
--platform <platform>: Target platform (ios, macos, all) (default: all)--output-dir, -o <path>: Output directory
Examples:
# Generate all app icons
imgx app-icon icon.png
# Generate only iOS icons
imgx app-icon icon.png --platform ios -o assets/ios-icons/placeholder
Generates image placeholders for lazy loading.
imgx placeholder <input> [options]Arguments:
input: Image file path
Options:
--width, -w <number>: Width of placeholder (default: 20)--quality, -q <number>: Quality setting (1-100) (default: 50)--format, -f <format>: Output format (webp, jpeg, png) (default: webp)--strategy <strategy>: Placeholder strategy (blur, pixelate, thumbhash, dominant-color) (default: blur)--blur-level <level>: Blur strength for blur strategy (default: 40)--base64: Output as base64 data URL (default: true)--output, -o <path>: Output file path
Examples:
# Generate a basic placeholder
imgx placeholder image.jpg
# Generate a thumbhash placeholder
imgx placeholder image.jpg --strategy thumbhash
# Generate a dominant color placeholder
imgx placeholder image.jpg --strategy dominant-color
# Save placeholder to file
imgx placeholder image.jpg -o placeholder.webp --base64=falsesvg
Optimizes SVG files.
imgx svg <input> [options]Arguments:
input: SVG file path or glob pattern
Options:
--output, -o <path>: Output file or directory--prettify: Format SVG code for readability--remove-comments: Remove comments--remove-dimensions: Remove width/height attributes--remove-viewbox: Remove viewBox attribute--precision <number>: Precision of floating-point values (default: 3)
Examples:
# Optimize SVG
imgx svg icon.svg
# Optimize with specific options
imgx svg icon.svg --remove-comments --precision 2
# Optimize multiple SVGs
imgx svg "icons/*.svg" -o optimized/batch
Batch processes multiple images.
imgx batch <input> [options]Arguments:
input: Directory or glob pattern for images to process
Options:
--formats, -f <formats>: Comma-separated list of output formats (default: webp)--quality, -q <number>: Quality setting (1-100) (default: 80)--output-dir, -o <path>: Output directory--recursive, -r: Process subdirectories recursively--filter <pattern>: Regex pattern to filter files--skip-existing: Skip already processed files--concurrency <number>: Number of files to process concurrently (default: 4)--preserve-structure: Preserve directory structure in output
Examples:
# Process all images in a directory
imgx batch ./images
# Process recursively and convert to multiple formats
imgx batch ./images -r -f webp,avif
# Use a specific filter pattern
imgx batch ./assets --filter "\.(jpe?g|png)$"watch
Watches a directory for changes and processes images automatically.
imgx watch <directory> [options]Arguments:
directory: Directory to watch for changes
Options:
--formats, -f <formats>: Comma-separated list of output formats (default: webp)--quality, -q <number>: Quality setting (1-100) (default: 80)--output-dir, -o <path>: Output directory--filter <pattern>: Regex pattern to filter files
Examples:
# Watch a directory
imgx watch ./src/assets
# Watch with custom options
imgx watch ./images -f webp,avif -q 85 -o ./public/images