Imgcompress
Imgcompress is a self-hosted image processing toolbox that handles compression, format conversion, and AI background removal in a single web interface. It supports over 70 input formats (including PSD, HEIC, and RAW) and can output common formats or generate PDFs, all without sending files to external services.
Install / Use
npx skills add karimz1/imgcompressInstalls into whichever agent you are using.
README
What is ImgCompress?
ImgCompress is a self-hosted image processing server that runs entirely inside a single Docker container. It handles compression, format conversion, and AI-powered background removal, all locally on your own hardware. No cloud APIs, no third-party uploads, no tracking.
Built for people, homelab enthusiasts, and anyone who values privacy and owns their data.
Features
| Feature | Details | |---|---| | 70+ Image Formats | HEIC, HEIF, PSD, AVIF, EPS, PDF, WebP, TIFF, BMP, GIF, and 60+ more | | Local AI Background Removal | Bundled model runs on your CPU. No API key, no subscription, no upload | | Bulk Compression | Multi-core parallel processing across entire photo libraries | | Format Conversion | HEIC to WebP, PSD to JPG, image batches to paginated PDF, and more | | Per-File Cropping | Crop each upload before conversion with ratio presets (Free, 1:1, 16:9, 4:3) or custom pixel dimensions | | Web UI + CLI | Browser dashboard for day-to-day use; CLI for scripting pipelines | | Single Container | Every codec and library pre-bundled, zero host dependencies | | Air-Gap Ready | Once pulled, runs fully offline. No internet required, ever |
AI Background Removal: Local & Private
Stop uploading personal or client photos to cloud-based removers. ImgCompress ships a bundled AI model that runs background removal on your own hardware. No API call, no subscription, no file ever leaves your server.
| Original | Background Removed | |:---:|:---:| | <img src="images/image-remover-examples/landscape-with-sunset-yixing-original.avif" width="380" alt="Original sunset landscape photo"/> | <img src="images/image-remover-examples/landscape-with-sunset-yixing-ai-transparency.avif" width="380" alt="Same photo with background removed by local AI"/> |
Per-File Cropping (since v0.7.0)
Every upload gets its own crop overlay before conversion. Pick a ratio preset (Free, 1:1, 16:9, 4:3) or type exact pixel width and height. Selections are saved per file, so one batch can mix square thumbnails with 16:9 covers without re-uploading.
<img src="images/web-ui/web-ui-crop-feature.webp" alt="ImgCompress crop overlay with aspect-ratio presets, zoom slider, pixel dimensions, and keyboard shortcuts" width="100%" />How to use it
- Drop your images into the upload area as usual.
- On any file row, click the crop icon to open the editor.
- Pick an aspect ratio preset (1:1, 4:3, 16:9, …) or set width and height manually.
- Zoom and crop to frame the shot exactly the way you want it.
- Click Save to keep the crop, Discard to back out, or Remove to clear a previously saved crop.
- Convert as normal. The crop is applied first, then your chosen format, quality, resize, and background-removal settings.
[!NOTE] Server-rendered formats: Some formats (e.g. PSD, EPS) are rendered server-side into a crop-friendly bitmap so you can still crop them in the browser.
Full walkthrough and demo video: Image Crop Editor docs.
Quick Start
Pull the image, open localhost:3001, start converting. About 60 seconds total.
docker run -d \
--name imgcompress \
-p 3001:5000 \
karimz1/imgcompress:latest
Prefer Docker Compose? Ready-made configurations live in docker/compose/:
- advanced.docker-compose.yaml for home or LAN use. Reachable from any device on your network out of the box, with container best practices applied (log rotation, healthcheck, no-new-privileges).
- proxied.docker-compose.yaml for hosting under a domain with HTTPS, behind a Traefik reverse proxy with TLS, security headers, and optional Let's Encrypt.
Step-by-step instructions for both are in the compose guide.
For environment variables and deploying without the mascot, see the full installation guide.
Why I Built ImgCompress
I was tired of the "software loop." Every time I needed something simple, I had to install another app:
- PSD files: Needed specialized software just to convert them to an image file.
- HEIC files: Needed another converter for regular photo files.
- Image to PDF: Needed another app just to share a screenshot for work, since a PDF is often better for emails and easy for others to print.
- AI Backgrounds: I realized I needed one more app for that too.
I thought to myself: "Why can't one tool just do it all?" Plus, uploading personal photos to random online converters never felt right to me.
One Toolbox for Everything
So I built a single toolbox that can take over 70 different formats and fix them all in one place. Whether you need to convert PSD or HEIC files to an image, turn a screenshot into a PDF for a work email, or shrink a massive 4K photo, this tool does it automatically.
The community has now pulled the image tens of thousands of times, which shows the pain is real.
Why Docker?
I chose Docker because it keeps your computer clean. Instead of you having to install 70 different messy libraries on your system, I packed everything into one Ready-to-go Box that you can run anywhere called imgcompress. It just works.
Privacy by Design
| | | |---|---| | No cloud processing | Conversions, compression, and AI inference all run locally. Images never leave your machine. | | No telemetry | No analytics, no crash reporting, no feature flags phoning home. Completely silent on the network after startup. | | Offline after pull | Once the image is pulled, no internet connection is ever needed again. No license checks, no expiry. | | Open source | GPL-3.0. Audit the code, fork it, self-host it forever. |
Security-Hardened Docker Image
ImgCompress is built with a security-hardened, minimal image, aligned with common container security standards out of the box.
| | |
|---|---|
| Minimal Surface | No shell (bash, sh), no network tools (curl, wget, etc.), no package manager. The attack surface is drastically reduced. |
| Minimal Components | System dependencies are aggressively pruned to maintain a minimal runtime environment. |
| Non-root User | Runs as a non-root user nonroot by default. |
| DHI Base Images | Using Docker Hardened Images from the official DHI project for build phases and runtime Image. |
| SBOM and Provenance | The Docker Image is built with a full Software Bill of Materials (SBOM) and build provenance attestation. |
Multilingual Support
ImgCompress supports multiple frontend languages and welcomes community improvements to every locale. See the translation guide to add a new language, improve an existing translation, or get credited for meaningful language updates.
Supported languages:
- English
- Spanish
- Spanish (Mexico)
- Chinese (Simplified)
- Hin
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
skill-creator
385.5kCreate, edit, audit, tidy, validate, or restructure AgentSkills and SKILL.md files.
prose
385.5kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
