Skip to main content

Supported Formats

MetaStrip supports 20 file formats across images, documents, audio, and video.

FormatTypeWhat Gets RemovedQuality Loss
JPEGImageEXIF, XMP, IPTC, commentsNone
PNGImagetEXt, iTXt, zTXt, eXIf chunksNone
WebPImageEXIF, XMP chunksNone
GIFImageComment extensions, app extensionsNone
SVGImagemetadata elements, comments, editor dataNone
PDFDocumentAuthor, creator, dates, XMPNone
DOCXDocumentAuthor, company, revision historyNone
XLSXDocumentAuthor, company, revision historyNone
PPTXDocumentAuthor, company, revision historyNone
MP3AudioID3v1, ID3v2 tagsNone
WAVAudioLIST/INFO, broadcast extensionNone
FLACAudioVorbis comments, cover artNone
MP4VideoUser data, GPS, iTunes metadataNone
MOVVideoUser data, GPS, iTunes metadataNone
HEIC/HEIFImageudta box, GPS, iTunes metadataNone
AVIFImageudta box, GPS, iTunes metadataNone
M4AAudioudta box, iTunes metadataNone
AVIVideoLIST/INFO, JUNKNone
MKV/WebMVideoTags elementNone
EPUBDocumentDC 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.

bash
# 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.jpg

CLI 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.

OptionDescription
--format table|json|summaryOutput format (default: table)
bash
metastrip inspect photo.jpg
metastrip inspect photo.jpg --format json
metastrip inspect photo.jpg --format summary

metastrip clean <files...>

Strip metadata from one or more files. Supports glob patterns. Overwrites in-place by default.

OptionDescription
--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-profileRemove embedded ICC color profile
--jsonOutput results as JSON (useful for scripting)
bash
# 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.webp

metastrip diff <file>

Preview which metadata fields would be removed without modifying the file.

OptionDescription
--keep <fields>Fields to simulate keeping
bash
metastrip diff photo.jpg
metastrip diff photo.jpg --keep author,icc

metastrip formats

Print all supported file formats and which metadata types are stripped for each.

bash
metastrip formats

MCP 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:

json
{
  "mcpServers": {
    "metastrip": {
      "command": "npx",
      "args": ["@metastrip/mcp-server"]
    }
  }
}

Available tools

strip_metadata

Remove all (or selected) metadata from an image file and return the cleaned buffer.

inspect_metadata

Return a structured report of every metadata field present in a file.

compare_metadata

Diff two files and show which metadata fields differ between them.

batch_strip

Strip 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.

bash
npm install @metastrip/core
typescript
import { 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

  1. Download or clone the repo: git clone https://github.com/ICXCNIKAanon/metastrip.git
  2. Open Chrome and go to chrome://extensions
  3. Enable Developer mode (toggle in top-right)
  4. Click Load unpacked
  5. Select the packages/browser-extension folder

Firefox — Install from GitHub

  1. Clone this repo: git clone https://github.com/ICXCNIKAanon/metastrip.git
  2. Open about:debugging#/runtime/this-firefox
  3. Click Load Temporary Add-on...
  4. Select manifest.json from packages/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

bash
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.vsix

Usage

  • Right-click any .jpg/.jpeg/.png/.webp file → 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.

bash
# Install the pre-commit hook
npx metastrip-hooks install

# That's it. Every commit now auto-strips image metadata.
# To uninstall:
npx metastrip-hooks uninstall

Also built into ShipSafe — if you use ShipSafe, metadata stripping is automatic with no extra setup.

REST API

Live — Free Beta

Strip 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.

bash
curl -X POST https://metastrip.ai/api/v1/strip \
  -F file=@photo.jpg \
  -o photo.cleaned.jpg

Response 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.

bash
curl -X POST https://metastrip.ai/api/v1/inspect \
  -F file=@photo.jpg
json
{
  "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.