Supported Formats
MetaStrip supports 20 file formats across images, documents, audio, and video.
| Format | Type | What Gets Removed | Quality Loss |
|---|---|---|---|
| JPEG | Image | EXIF, XMP, IPTC, comments | None |
| PNG | Image | tEXt, iTXt, zTXt, eXIf chunks | None |
| WebP | Image | EXIF, XMP chunks | None |
| GIF | Image | Comment extensions, app extensions | None |
| SVG | Image | metadata elements, comments, editor data | None |
| Document | Author, creator, dates, XMP | None | |
| DOCX | Document | Author, company, revision history | None |
| XLSX | Document | Author, company, revision history | None |
| PPTX | Document | Author, company, revision history | None |
| MP3 | Audio | ID3v1, ID3v2 tags | None |
| WAV | Audio | LIST/INFO, broadcast extension | None |
| FLAC | Audio | Vorbis comments, cover art | None |
| MP4 | Video | User data, GPS, iTunes metadata | None |
| MOV | Video | User data, GPS, iTunes metadata | None |
| HEIC/HEIF | Image | udta box, GPS, iTunes metadata | None |
| AVIF | Image | udta box, GPS, iTunes metadata | None |
| M4A | Audio | udta box, iTunes metadata | None |
| AVI | Video | LIST/INFO, JUNK | None |
| MKV/WebM | Video | Tags element | None |
| EPUB | Document | DC metadata (creator, publisher, date, rights) | None |
All processing uses binary-level surgery — file content data is never decoded or re-encoded.
Getting Started
Install the MetaStrip CLI globally and start cleaning metadata from your images in seconds. The CLI processes files locally — nothing is sent to a server.
# Install the CLI
npm install -g @metastrip/cli
# Inspect a file's metadata
metastrip inspect photo.jpg
# Strip all metadata
metastrip clean photo.jpg
# Preview what would be removed
metastrip diff photo.jpgCLI Reference
The MetaStrip CLI exposes four commands for inspecting, cleaning, diffing, and listing supported formats.
metastrip inspect <file>
Show all metadata fields found in a file. Use --format to control output style.
| Option | Description |
|---|---|
| --format table|json|summary | Output format (default: table) |
metastrip inspect photo.jpg
metastrip inspect photo.jpg --format json
metastrip inspect photo.jpg --format summarymetastrip clean <files...>
Strip metadata from one or more files. Supports glob patterns. Overwrites in-place by default.
| Option | Description |
|---|---|
| --output <path> | Write cleaned file to a different path |
| --keep <fields> | Comma-separated fields to preserve (e.g. author,icc) |
| --categories <cats> | Strip only specified categories (gps, device, timestamps…) |
| --quality <n> | JPEG re-encode quality 1–100 (default: 92) |
| --no-color-profile | Remove embedded ICC color profile |
| --json | Output results as JSON (useful for scripting) |
# Strip all metadata
metastrip clean photo.jpg
# Write to a new file
metastrip clean photo.jpg --output cleaned.jpg
# Keep specific fields
metastrip clean photo.jpg --keep author,icc
# Strip only certain categories
metastrip clean photo.jpg --categories gps,device
# Control JPEG quality (default: 92)
metastrip clean photo.jpg --quality 85
# Remove ICC color profile
metastrip clean photo.jpg --no-color-profile
# Batch with JSON output
metastrip clean *.jpg --json
# Multiple files
metastrip clean a.jpg b.png c.webpmetastrip diff <file>
Preview which metadata fields would be removed without modifying the file.
| Option | Description |
|---|---|
| --keep <fields> | Fields to simulate keeping |
metastrip diff photo.jpg
metastrip diff photo.jpg --keep author,iccmetastrip formats
Print all supported file formats and which metadata types are stripped for each.
metastrip formatsMCP Server
MetaStrip ships an MCP (Model Context Protocol) server so AI assistants like Claude can strip and inspect metadata on your behalf. Add it to your Claude Desktop or Cursor config:
{
"mcpServers": {
"metastrip": {
"command": "npx",
"args": ["@metastrip/mcp-server"]
}
}
}Available tools
strip_metadataRemove all (or selected) metadata from an image file and return the cleaned buffer.
inspect_metadataReturn a structured report of every metadata field present in a file.
compare_metadataDiff two files and show which metadata fields differ between them.
batch_stripStrip metadata from multiple files in a single call, returning per-file results.
npm Package
Use @metastrip/core directly in your Node.js or TypeScript project. Fully typed, zero runtime dependencies.
npm install @metastrip/coreimport { MetaStrip } from '@metastrip/core';
const ms = new MetaStrip();
// Inspect
const report = await ms.inspect('photo.jpg');
console.log(report.gps);
console.log(report.risk.score);
// Strip
const result = await ms.strip('photo.jpg');
console.log(result.entriesRemoved);
// Strip selectively
await ms.strip('photo.jpg', { keep: ['author', 'icc'] });
// Batch
const batch = await ms.batch(['a.jpg', 'b.png', 'c.webp']);ms.inspect(path)
Returns a MetaReport object containing all detected metadata fields, categories, and a risk object with a score (0–100) and a human-readable label.
ms.strip(path, options?)
Strips metadata from the given file. Returns a StripResult with entriesRemoved, bytesSaved, and the cleaned buffer. Pass { keep: [...] } to preserve specific fields.
ms.batch(paths, options?)
Process multiple files concurrently. Returns an array of StripResult in the same order as the input paths.
Browser Extension
The MetaStrip Chrome extension automatically strips metadata from images before you upload them to any website. It also lets you right-click any image on any page to inspect its metadata.
Chrome — Install from GitHub
- Download or clone the repo:
git clone https://github.com/ICXCNIKAanon/metastrip.git - Open Chrome and go to
chrome://extensions - Enable Developer mode (toggle in top-right)
- Click Load unpacked
- Select the
packages/browser-extensionfolder
Firefox — Install from GitHub
- Clone this repo:
git clone https://github.com/ICXCNIKAanon/metastrip.git - Open
about:debugging#/runtime/this-firefox - Click Load Temporary Add-on...
- Select
manifest.jsonfrompackages/firefox-extension
Features
- Auto-strip on standard file uploads — strips metadata when you use a file picker on forms, job applications, and most websites
- Right-click → Inspect Metadata — view GPS, device info, and timestamps on any image
- Scan All Images on Page — right-click the page to scan every image for metadata
- Drag & paste alerts — warns when dragged or pasted images contain metadata
- Toggle on/off — click the extension icon to pause protection
Note: Gmail, Slack, and Discord use custom upload handlers that bypass standard file inputs. For these apps, strip your files first using the web tool or CLI.
VS Code Extension
Right-click any image file or folder in VS Code to strip metadata instantly.
Install from Source
git clone https://github.com/ICXCNIKAanon/metastrip.git
cd metastrip/packages/vscode
npm install && npm run build
npx @vscode/vsce package
# Install the .vsix file: code --install-extension metastrip-0.1.0.vsixUsage
- Right-click any
.jpg/.jpeg/.png/.webpfile → MetaStrip: Strip Metadata - Right-click any folder → MetaStrip: Strip All Images in Folder
Git Hooks
Automatically strip metadata from every image you commit. One command to install, works forever.
# Install the pre-commit hook
npx metastrip-hooks install
# That's it. Every commit now auto-strips image metadata.
# To uninstall:
npx metastrip-hooks uninstallAlso built into ShipSafe — if you use ShipSafe, metadata stripping is automatic with no extra setup.
REST API
Live — Free BetaStrip metadata from any supported file via HTTP. Send a file, get back the cleaned version. Supports all 20 formats.
POST /api/v1/strip
Upload a file, receive the cleaned version with metadata removed.
curl -X POST https://metastrip.ai/api/v1/strip \
-F file=@photo.jpg \
-o photo.cleaned.jpgResponse headers include X-MetaStrip-Original-Size, X-MetaStrip-Stripped-Size, and X-MetaStrip-Saved.
POST /api/v1/inspect
Upload a file, receive a JSON report of what metadata was found.
curl -X POST https://metastrip.ai/api/v1/inspect \
-F file=@photo.jpg{
"file": { "name": "photo.jpg", "type": "image/jpeg", "size": 3145728, "format": "jpeg" },
"metadata": { "found": true, "bytesRemovable": 12458 },
"strippedSize": 3133270
}Free beta: The API is currently free with no authentication required. Rate limits and paid tiers will be introduced in the future. Max file size: 50MB.