# panimg
[](https://github.com/tzengyuxio/panimg/actions/workflows/ci.yml)
[](LICENSE-MIT)
[](https://www.rust-lang.org/)
The Swiss Army knife of image processing — built for humans and AI agents alike.
## Features
- **31 commands** for format conversion, resize, crop, rotate, color adjustment, filters, text, compositing, animation, and more
- **Pipeline engine** — chain multiple operations in a single read/write pass
- **Batch processing** — process multiple files with glob patterns and parallel execution
- **AI-agent friendly** — structured JSON output, `--dry-run`, `--schema`, and `--capabilities` for programmatic use
- **Fast & safe** — built in Rust, SIMD-accelerated resize, zero unsafe code in the core pipeline ([benchmarks](benches/results/REPORT.md))
## Installation
### Homebrew (macOS / Linux)
```bash
brew install tzengyuxio/tap/panimg
```
### Cargo
```bash
cargo install panimg-cli
```
### Build from source
```bash
git clone https://github.com/tzengyuxio/panimg.git
cd panimg
cargo build --release
```
See [Supported Formats](docs/formats.md) for optional codec feature flags (AVIF, JPEG XL, SVG).
## Quick Start
```bash
# Get image info
panimg info photo.jpg --format json
# Convert format
panimg convert photo.png -o photo.webp --quality 80
# Resize with fit mode
panimg resize photo.jpg --width 800 --height 600 --fit cover -o thumb.jpg
# Color adjustment
panimg saturate photo.jpg --factor 1.5 -o vivid.jpg
# Apply filter
panimg blur photo.jpg --sigma 3.0 -o blurred.jpg
# Add watermark text
panimg text photo.jpg --content "© 2026" --size 24 --color white --position bottom-right -o stamped.jpg
# Multi-step pipeline
# Batch processing
panimg batch convert 'photos/*.png' --output-dir ./webp --to webp --quality 80
```
See [Command Reference](docs/commands.md) for all 31 commands with full usage and examples.
## Commands
| `info` | Show image metadata and properties |
| `convert` | Convert image between formats |
| `resize` | Resize with multiple fit modes |
| `crop` | Crop a rectangular region |
| `rotate` | Rotate by 90, 180, or 270 degrees |
| `flip` | Mirror horizontally or vertically |
| `auto-orient` | Auto-rotate based on EXIF orientation |
| `brightness` | Adjust image brightness |
| `contrast` | Adjust image contrast |
| `hue-rotate` | Rotate image hue |
| `saturate` | Adjust color saturation |
| `grayscale` | Convert to grayscale |
| `invert` | Invert (negate) colors |
| `sepia` | Apply sepia tone effect |
| `tint` | Tint with a color |
| `posterize` | Reduce color levels per channel |
| `blur` | Apply Gaussian blur |
| `sharpen` | Sharpen using unsharp mask |
| `edge-detect` | Detect edges (Laplacian kernel) |
| `emboss` | Apply emboss effect |
| `draw` | Draw shapes (rect, circle, line) |
| `text` | Draw text with embedded or custom fonts |
| `overlay` | Composite one image on another |
| `trim` | Auto-crop whitespace or similar-colored borders |
| `diff` | Compare two images and visualize differences |
| `frames` | Extract frames from animated GIF |
| `animate` | Assemble images into animated GIF |
| `gif-speed` | Change animation playback speed |
| `pipeline` | Run multiple operations in one pass |
| `batch` | Process multiple files with glob patterns |
See [Command Reference](docs/commands.md) for full usage and examples.
## AI Agent Integration
panimg supports programmatic discovery and structured output for AI agents and automation:
```bash
panimg --capabilities --format json # Discover all commands and formats
panimg resize --schema # Get parameter definitions as JSON
panimg resize photo.jpg --width 800 -o out.jpg --dry-run --format json # Preview without side effects
```
See [AI Integration Guide](docs/ai-integration.md) for exit codes, error format, and integration patterns.
## Documentation
- [Command Reference](docs/commands.md) — full usage and examples for all 31 commands
- [Supported Formats](docs/formats.md) — format table and optional codec feature flags
- [AI Integration Guide](docs/ai-integration.md) — structured output, schema, dry-run, exit codes
## License
Licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE))
- MIT License ([LICENSE-MIT](LICENSE-MIT))
at your option.