v1.12.0 Open source · GPL-3.0 Self-hosted Single Docker container

Shrink it down, then send it on

Take a multi‑megabyte camera photo or full‑resolution screenshot, shrink it with one click to something you can actually attach to an email or drop into a chat, ticket or forum — then edit or fine‑tune it along the way, all on a server you control. Get images in from anywhere: share straight from your phone with the Android app, capture with the browser extensions, drag‑and‑drop, or let your AI coding agent pull them in via MCP.

ImageTools logo
ImageTools
Vue 3 · FastAPI · SQLite
Compression · Editing · AI

Key features

The job it exists for: turn a huge camera‑size photo or screenshot into a small, sendable file — for an email attachment, a chat message, a support ticket or a forum post — without losing what you actually need to see.

🗜️

Compression presets

One‑click presets built for actually sending things on: Email (800×600, 85% quality), Web (1200×900, 80%), Thumbnail (200×200, 75%), plus a Custom preset for precise control of dimensions, quality and format. Before/after sizes, savings % and ratio shown per image, so you can see it's small enough to attach before you send it.

📦

Bulk operations

Select multiple images with checkboxes and apply a preset to all of them simultaneously, with individual results on each card. Export everything as a ZIP, download individually, or copy to clipboard.

🎨

Image editing

Built-in editor (TUI Image Editor) with crop and aspect ratios, flip/rotate, freehand drawing, text overlays, shapes, filters (grayscale, sepia, blur, sharpen, emboss…) and adjustments (brightness, contrast, saturation, exposure, hue).

✨

AI features

Background removal, advanced filters and an AI chat interface for natural-language image manipulation — powered by your own OpenRouter account via OAuth2 PKCE. Keys are encrypted at rest and never exposed to the frontend.

↩️

Undo / redo

Full history tracking for every modification. Compress, edit, remove a background — then revert any step. The original is always preserved.

🌐

Get images in, from anywhere

Drag‑and‑drop in the web UI, or share photos straight from your phone's gallery, camera or any other app to the server with the Android app (paired once via QR code). Capture screenshots with the browser extensions, or let your AI coding agent pull images in via the MCP server — everything lands in the same gallery, ready to shrink.

A capture pipeline for every workflow

Get images into ImageTools however you work — then compress, edit and export in one place.

Screenshot placeholder — web UI gallery
The web interface: drag-and-drop upload, per-image presets, editing, AI tools and undo/redo.
Screenshot placeholder — selection capture overlay
Browser extension selection overlay: tag the capture, then 📋 Copy to clipboard or ✓ Capture to lodge it with your instance.

Built on boring, reliable tech

No external databases, no cloud dependencies you don't control.

Architecture

  • Frontend: Vue 3 + Vite + TUI Image Editor
  • Backend: Python FastAPI with async operations
  • Database: SQLite (file-based, no external dependencies)
  • Image processing: PIL (Pillow), rembg for background removal
  • AI integration: OpenRouter API with OAuth2 PKCE
  • Real-time: WebSocket support for live updates

Ready to stop emailing 8 MP photos?

Run your own in a couple of minutes.