Skip to main content

exiftool

ExifTool rewrite in TypeScript โ€” read and write image metadata

๐Ÿ“ธ ExifTool Parity

Value-level parity suite against ExifTool 13.55+. Reads EXIF, XMP, IPTC, GPS, ICC, and more โ€” every divergence tracked in a public register.

๐ŸŽž RAW Container Reading

TIFF, DNG, CR2, NEF, ARW, ORF, RW2, PEF, ERF, DCR, SRW โ€” standard IFD0/Exif/GPS/SubIFD/XMP tags from RAW files, read-only.

๐Ÿงต Zero-Copy Buffers

In-memory reads return views into the source buffer, not copies. One process, no subprocess per file.

๐Ÿ“ฆ Multi-Format Support

JPEG, PNG, WebP, AVIF/HEIF, and TIFF-family RAW images. One plugin-based API, load only the formats you bundle.

๐Ÿ›  CLI Compatible

Drop-in ExifTool CLI replacement. Supports -j, -csv, -X, -t, -if filters, -stay_open, and more.

๐Ÿ“ TypeScript Native

Full type definitions, strict typing, and IntelliSense support. Built for modern TypeScript projects.

Quick Start

TypeScript

import { ExifTool } from 'exiftool-ts';

const exiftool = new ExifTool();
const result = await exiftool.read('photo.jpg');

console.log(result.tags.Make);        // "Canon"
console.log(result.tags.Model);       // "EOS R5"
console.log(result.tags.ImageSize);   // "9600x6376"

CLI

# Basic usage
npx exiftool-ts photo.jpg

# JSON output (ExifTool compatible)
npx exiftool-ts -j photo.jpg

# RAW metadata
npx exiftool-ts -j photo.dng

# All tags with groups
npx exiftool-ts -G1 -j photo.jpg