A polished, open-source Windows desktop app that wraps ExifTool with a modern GUI. View, edit, and strip EXIF / IPTC / XMP / GPS metadata from photos — no telemetry, no analytics, no calls home. Ships as a single MSI with ExifTool bundled, so end users need zero external dependencies.
Status: v0.1.0 release candidate. All nine feature phases are implemented and machine-verified (29/29 integration tests). End-to-end UI click-through QA is pending before the first GitHub Release.
- Drag & drop a single photo, a folder, or a mix of files — the app routes singles to the Inspect view and everything else to Batch (up to 500 photos at a time).
- Inspect — collapsible groups (EXIF / IPTC / XMP / GPS / File Info / Maker Notes / Other), live field filter, in-app preview for JPG / PNG / WebP / GIF / AVIF / BMP.
- Strip — per-field checkboxes, "Strip GPS" and "Strip all" one-click actions, single-click Undo via a toast. Originals are never modified; each strip writes a sibling copy. ICC profile and orientation are preserved.
- Editor — curated set of 15 editable fields (Artist, Copyright, Make, Model, dates, GPS, IPTC by-line / caption / copyright, etc.) with an inline diff and save-as-copy semantics.
- Batch — multi-file table, bulk strip with per-file progress, Undo that removes every stripped copy.
- Map — GPS pins on Leaflet + CARTO dark/light tiles, reverse geocoding via OpenStreetMap's Nominatim (rate-limited, cached), a "Strip GPS" action in the corner.
- Export — JSON / CSV / XML via ExifTool's native output modes. Field-selection tree, live preview (capped at 64 KB), full export through the system Save dialog.
- Open from URL — paste a URL, the app downloads to a temp file
(streaming, 500 MiB cap,
image/*content-type required) and opens it the same way as a dropped file. - Dark + light theme, command palette (Ctrl+K), keyboard shortcuts (Ctrl+? for the full list).
MetaStrip is a privacy tool. Everything happens locally. The only outbound network calls the app ever makes are:
- Open from URL — when you paste a URL and click Open.
- Reverse geocoding on the Map tab — sends GPS coordinates (not photos, not filenames) to OpenStreetMap's Nominatim service to look up a human-readable address.
No telemetry, no analytics, no crash reports, no update ping, no font CDN — Inter and JetBrains Mono are self-hosted.
Grab the MSI from the Releases page
and run it. Windows SmartScreen will warn on first run because the
installer is currently unsigned — that's expected for a new OSS project.
See docs/DEVELOPMENT.md for the code-signing roadmap.
Prerequisites:
- Node 22+ and pnpm 10+
- Rust stable with the MSVC toolchain (Windows)
- PowerShell (ships with Windows; used by the fixture scripts)
git clone https://github.com/what256/MetaStrip.git
cd MetaStrip
pnpm install
# One-time: fetch ExifTool and test fixtures (SHA256-pinned)
./scripts/fetch-exiftool.ps1
./scripts/fetch-samples.ps1
# Development — hot-reloading Tauri dev server
pnpm tauri dev
# Production build — produces an MSI under src-tauri/target/release/bundle/msi/
pnpm tauri buildTo regenerate the app icon from src/components/BrandMark.tsx:
node scripts/generate-icon.mjs# Rust integration tests — 29 tests covering ExifTool / strip / batch / export
cd src-tauri && cargo test
# Frontend static checks
pnpm tsc --noEmit && pnpm lint && pnpm buildCI (.github/workflows/ci.yml) runs the same checks on every push and
pull request, on a Windows runner.
- Tauri 2.x Rust backend, React 18 + TypeScript + Vite frontend.
- All ExifTool calls funnel through a single Rust module
(
src-tauri/src/exiftool.rs). The frontend never shells out. - Data model is typed end-to-end — Rust structs → ts-rs generated TypeScript types — with no hand-written wire types.
- Originals are never modified. Every write operation produces a
sibling copy;
delete_fileis gated to a whitelist of extensions. - ExifTool is bundled as a Tauri resource (not a sidecar — ExifTool
13.x needs a companion
exiftool_files/directory thatbundle.resourcesships natively butexternalBincan't).
See docs/DEVELOPMENT.md for the full phase
plan and per-phase implementation notes.
MetaStrip is MIT licensed. ExifTool is bundled under its own
Artistic / GPL dual license. See LICENSE and
THIRD_PARTY_LICENSES.md for the full terms and credits to
Phil Harvey and the projects MetaStrip depends on.