๐งฌ Image Metadata Editor ime
ime is a fast, lightweight, and portable CLI written in Rust for reading, writing, and completely wiping metadata from image files.
Installation
Using Cargo (Recommended for Rust users)
If you have Rust installed, you can easily install the latest version directly from crates.io:
Pre-built binaries
Alternatively, you can download a pre-built executable for your operating system from the Releases page.
Usage
ime <file> [OPTIONS]
| Flag | Short | Description |
|---|---|---|
--output <path> |
-o |
Write result (or modified file) to <path> instead of stdout / in-place |
--strip |
-s |
Remove all metadata from the file (JPEG & PNG only) |
--set Key=Value |
Inject a metadata tag; repeatable (JPEG & PNG only) | |
--key <path> |
-k |
Extract a single value using a dot-notation path |
--version |
-v |
Print the semver version number and exit |
--help |
-h |
Print help and exit |
Reading metadata
Outputs all extracted metadata as a flat JSON object (one key per metadata directory).
# Print all metadata to stdout
# Save to a file
Output example
Extracting a single value (-k / --key)
Use dot-notation (same style as jq) to extract a single tag from the metadata.
- Leading
.is optional โ both.Tiff.MakeandTiff.Makework. - Array indices are supported:
nodes[0].type. - Smart JSON traversal: if a tag value is itself a JSON string (common in ComfyUI
workfloworpromptkeys),imeautomatically parses it and continues traversal.
# Extract a scalar value (printed as raw text, no quotes)
# Kyocera Visual Phone
# Same with leading dot
# VP-210
# Extract the raw generation parameters from a ForgeUI/A1111 PNG
# Enter a ComfyUI workflow JSON embedded inside a tEXt chunk
# Missing key โ exit code 1
# Error: Key 'Exif.NonExistent' not found in metadata
When the result is a plain string it is printed without surrounding quotes.
When the result is an object or array it is printed as pretty-printed JSON.
Stripping metadata (-s / --strip)
Removes all EXIF and embedded metadata from the file in-place.
Use -o to write to a new file instead (original is left untouched).
Supported formats: JPEG, PNG.
Injecting metadata (--set)
Sets one or more metadata tags. Existing tags that are not mentioned are preserved.
Can be combined with -o to write to a new file.
Supported formats: JPEG, PNG.
# Standard EXIF tag
# Multiple tags
# Write to a new file
# Custom key (PNG โ tEXt chunk; JPEG โ UserComment JSON)
# Inject multiple tags from a JSON object
Supported formats
| Category | Formats | Read | Write |
|---|---|---|---|
| Image | JPEG, PNG | โ | โ |
| Image | WebP, HEIC/HEIF, AVIF, TIFF, CR3, RAF, IIQ | โ | โ |
| Video | MP4, MOV, 3GP, MKV, WebM | โ | โ |
Exit codes
| Code | Meaning |
|---|---|
0 |
Success |
1 |
Runtime error (I/O error, unsupported format, key not found, corrupt file) |
2 |
Usage error (bad flags, missing file argument) |
๐งพ Changelog
All notable changes to this project will be documented in the CHANGELOG.md file.
๐ License
This project is licensed under the CC-BY-NC-4.0 License.