A privacy-first, 100% client-side browser extension that lets you save, convert, resize, and inspect images directly in your browser β without uploading anything to a server.
- 100% Client-Side Processing: Zero server dependencies. Complete data privacy.
- Rich Format Support: Read and convert to
JPG,PNG(including TinyPNG-like quantization),WebP,AVIF,JXL(JPEG XL),TIFF,ICO,BMP, andPDF. - Right-Click Context Menu: Right-click any image on the web to instantly convert and download using your preferred formats and presets.
- Pin to Top: Pin up to 2 items so your most important actions never move.
- Most Used (Stable) Sorting: Sort by usage frequency with a stability threshold to avoid constant reshuffling.
- Smart Resizing Engine:
- Keep original size / Change Width / Change Height / Scale by Percentage (%)
- Smart Framing: Fit (Contain) or Fill (Cover) target dimensions.
- Page Size Matching: Automatically fit images to standard paper sizes (A4, Letter, etc.) with adjustable DPI print-ready PDFs.
- Batch Processing: A dedicated dashboard to drag-and-drop multiple files to convert them in bulk. Includes ZIP packaging.
- Frictionless Import: Easily fetch images via remote URLs directly from the UI or via clipboard paste, bypassing strict web CORS limits smoothly.
- Custom Presets: Create, edit, and toggle your own custom conversion formats to appear in the right-click menu.
- Real-time Progress: Non-intrusive sticky toasts inject into the current webpage to show conversion progress for heavy formats (e.g. AVIF, PDF).
- Usage Stats: See how often each format/preset is used and reset stats anytime.
- Modern Options UI: Desktop-like layout with a collapsible navigation sidebar and clearer empty-state drop areas.
Imify is officially available on the Chrome Web Store, Microsoft Edge Add-ons Store, and Firefox Add-ons Store. Click the badges below to install it directly:
Important
π‘οΈ Note for Chrome Users (Enhanced Safe Browsing):
- Because Imify is a newly published extension, users with Chrome's "Enhanced Safe Browsing" enabled might see a warning stating the extension is "not trusted."
- This is a standard Google policy applied to all new developer accounts until they build a history of trust over a few months. It is not related to the code itself. Imify is completely open-source, operates 100% offline, and requires no external servers. You can verify every line of code in this repository. It is entirely safe to click "Continue to install".
- Framework: Plasmo (React-based browser extension framework)
- UI/Styling: React, Tailwind CSS, Lucide React
- Core Image Processing: Native
OffscreenCanvasAPI, Web Workers - Advanced Encoders: WebAssembly (Wasm) via
@jsquash/avif&@jsquash/jxl,UPNG.js,UTIF.js,fflate - PDF Generation:
pdf-lib(Client-side PDF document creation) - Language: TypeScript (Strict typing)
- Manifest Version: MV3
src/
βββ background/ # Service worker: Context menu logic & Message routing
βββ contents/ # CSUI: Injected sticky progress toasts
βββ options/ # Options Page: Dashboard for Settings & Batch Conversion
βββ features/ # Vertical slices of business logic
β βββ batch-processor/ # Drag & drop bulk processing logic
β βββ converter/ # Core Engines: Canvas processing, BMP encoding, PDF embedding
β βββ custom-formats/ # CRUD operations for user presets
β βββ settings/ # Storage sync and global format toggles
βββ core/ # Pure functions, math, and constants
β βββ image-utils.ts # Dimension calculation & aspect ratio math
β βββ paper-constants.ts # Physical paper size to Pixel/DPI mappings
-
Clone the repository:
git clone https://github.com/trongajtt/imify.git cd imify -
Install dependencies:
pnpm install
To start the development server (Hot Module Replacement enabled):
# Default (Chrome)
pnpm dev
# Specific targets
pnpm dev:chrome
pnpm dev:firefox- Open your browser and navigate to:
- Chrome:
chrome://extensions/ - Firefox:
about:debugging#/runtime/this-extension
- Chrome:
- Enable Developer mode (for Chrome).
- Click Load unpacked (Chrome) or Load Temporary Add-on (Firefox).
- Select the build directory (e.g.,
build/chrome-mv3-devorbuild/firefox-mv3-dev).
To create production-ready, optimized builds:
# Build all and verify (CI mode)
pnpm build:ci
# Build specific target
pnpm build:chrome
pnpm build:firefoxTo generate .zip files for the Web Store or AMO:
pnpm package:chrome
pnpm package:firefoxThis will generate a zip-ready folder in build/chrome-mv3-prod which you can upload directly to the Chrome Web Store.
If you are reviewing this extension for the Mozilla Add-ons Store, please follow these steps to reproduce the exact build:
- Install dependencies:
pnpm install - Generate the Firefox package:
pnpm package:firefox - The generated add-on will be an archive located in the output build directory.
Compliance Declaration regarding WebAssembly (WASM) & Minification:
- WASM Origin: All
.wasmbinaries used in this project for image encoding/decoding (e.g., AVIF, JXL) are sourced standardly and transparently via open-source NPM packages (@jsquash/avif,@jsquash/jxl, etc.) as defined inpackage.json. There are no custom-compiled, opaque binary blobs hidden in the source tree. - Zero Remote Execution: The extension processes all images 100% locally and does not fetch any executable code, scripts, or WASM files from remote servers.
Note for Firefox: Our build pipeline includes a sanitation script (
scripts/sanitize-firefox-manifest.mjs) that automatically removes theoffscreenpermission from the Firefox manifest to comply with AMO policies while maintaining maximum performance for Chrome users.
This extension is explicitly designed to respect user privacy:
- No Analytics/Tracking: We do not track what images you convert.
- No Cloud Servers: The extension does not make any external API calls to process your files. Every byte of image data is processed inside your local browser memory and discarded immediately after download.
- Cross-Origin Restrictions: The extension fetches image blobs using its native MV3 permissions, meaning it securely bypasses standard web CORS limitations without exposing your browser to malicious scripts.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
If you find Imify useful, please consider supporting its development:







