🇬🇧translation is currently inBeta

Available for full-time projectsSoftware developer for product teams: Next.js / TypeScript / React Native, remote or Krakow.
Hire me
CLI tool
Live

CLI Image Optimizer

A local Python CLI tool for batch image optimization with WebP, JPEG, and PNG conversion, configurable compression, and automatic metadata stripping.

CLI Image Optimizer

Technologies

Python
Pillow
tkinter

Key elements

  • WebP, JPEG, and PNG conversion
  • Compression with adjustable quality
  • Automatic EXIF metadata removal
  • Batch processing for up to 20 files

Premise

This project was built as a simple local image optimizer that runs from the terminal. The goal was to remove repetitive manual work when preparing images for the web: no external services, no hand-made exports, and no unnecessary metadata left in the final files.

How the tool works

The script accepts files passed directly in the CLI or opens a native file picker on macOS. It then converts images to the selected output format, applies the user-defined compression level, and saves a new version with EXIF metadata removed.

Image Optimizer CLI - example of usage

It supports input formats such as PNG, JPEG, JPG, WebP, BMP, GIF, and TIFF, while the output can be saved as WebP, JPEG, or PNG. The default setup is intentionally simple: webp format and 80 quality, which makes the tool convenient even for quick one-off usage.

Key functionality

The most practical part of the project is the balance between simplicity and control. The tool can process up to 20 files at once, reports storage savings after compression, and detects filename conflicts by asking whether the user wants to overwrite, skip, or rename the output.

That makes it a compact but useful example of a developer tool solving a specific operational problem: preparing lighter images for publication while keeping full control over output format, quality, and file naming.

Other projects

See more work from my portfolio.

Plenti

Plenti

Full-stack & Mobile Developer at Plenti. I co-built the electronics rental platform end-to-end: from the Next.js website and React Native app to analytics, releases, and product processes.

Mio Home

Mio Home

Full website implementation for Mio Home: homepage, 3-part offer, about page, portfolio with 16 projects, contact page, blog, plus PostHog analytics and Resend email integration.

Bike Computer

Bike Computer

A custom training platform for cyclists that combines activity analytics, workout planning, Strava and Zwift integrations, and AI-powered support.

Ready to improve your project?

Sounds good?

Ailo client logoCledar client logoMiohome client logoPlenti client logoWebiso client logo+4
I've been working on projects for clients for 6 years