New ยท Desktop 0.4.0 & CLI 0.7.0: create GIFs from images ยท signed for macOS & Apple Silicon โ†’

Fix, edit and create GIFs โ€” without breaking optimized GIFs.

GIFmeta is a free, open-source desktop app, Rust CLI and library for animated GIFs: fix loops and timing, delete, insert, duplicate and re-order frames safely โ€” or turn a stack of images into a new GIF.

Free forever ยท MIT license ยท No account needed ยท Works offline ยท ๐Ÿฆ€ GitHub

GIFmeta ยท gifmeta.comREV 0.7 ยท MITU1C1C2C3R4R5R6C7R8C9R10C11C12R13R14

The problem

Most GIFs you find online are frame-optimized.

Each frame usually only stores the pixels that changed since the previous one โ€” that's what keeps files small. But it means you can't just remove a frame or tweak a delay in isolation: every frame after it gets drawn on top of the wrong picture, and the animation falls apart.

๐Ÿ”‘

Keyframe

A full image. All the pixels it needs are stored with it, so it can be edited safely on its own.

ฮ”

Delta frame

Only the changed pixels are stored, drawn on top of the previous frame โ€” inheriting its timing and pixels. Edit carefully, or rebuild.

GIFmeta understands how frames depend on each other โ€” so your edits stay safe.

How it stays safe

Delete a frame? We rebuild what depended on it.

GIFmeta replays the original animation and the modified one side by side. For every frame that stays, it compares the canvas the frame would be drawn on: if it matches the original, the frame is copied as-is โ€” lossless. If it doesn't, because a frame it depended on was deleted, the frame is written as a full image of exactly how it looked before.

Usually only one or two frames need rebuilding. Rebuilt frames get an exact palette whenever possible; only frames with more than 256 colours are colour-reduced, with a warning.

  • Lossless copy for frames that don't depend on the change
  • Dependent frames rebuilt automatically as full images
  • Total duration preserved โ€” the delay moves to the previous frame
  • Tested: pixel-identical output on a 40-frame optimized GIF
Crab GIF before the fix: frame delays of 60 + 60 centiseconds
Before ยท delays 60 + 60 cs
Crab GIF after the fix: frame delays of 60 + 30 centiseconds
After ยท gifmeta mod crab.gif --delays 1=30 -o crab-fixed.gif ยท delays 60 + 30 cs

Features

Everything you need to fix โ€” or make โ€” a GIF.

Small, focused and built with Rust speed. The same safe engine powers the desktop app, the CLI and the library.

๐ŸŽฌ

Create GIFs from imagesNew

Turn PNG, JPEG or WebP images into an animated GIF โ€” set the order, delays and loop.

Learn how โ†’
โž•

Insert & duplicate framesNew

Add an image as a new frame anywhere, or copy a frame to hold it longer.

Learn how โ†’
๐Ÿ”€

Re-order & reverseNew

Drag frames into a new order or play a GIF backwards โ€” even in optimized GIFs.

Learn how โ†’
๐Ÿ—‘๏ธ

Safe frame deletion

Delete frames without breaking the rest โ€” dependent frames are rebuilt, the delay moves to the previous frame.

Learn how โ†’
โฑ๏ธ

Frame timing

Set one delay for all frames or override specific frames. Delays are in centiseconds (1 = 10 ms).

Learn how โ†’
๐Ÿ”„

Loop control

Loop forever or play a fixed number of times. "Plays once" GIFs stay that way.

Learn how โ†’
๐Ÿ”‘

Detect frame-optimized GIFs

See which frames are full images (๐Ÿ”‘ keyframes) and which are delta frames (ฮ”).

Learn how โ†’
โœจ

Pretty & raw view

Render any frame exactly as it plays โ€” disposal-aware โ€” or view just the raw pixels it stores.

๐Ÿ”

Inspect

Size, frame count, duration, palette, transparency and loop setting โ€” also as JSON for scripts.

๐Ÿ”จ

Unoptimize

Convert selected frames to full images, or unoptimize the whole GIF into flat full frames.

โšก

One-pass rendering

Render or export all frames in a single fast pass โ€” 15โ€“56ร— faster than frame by frame.

๐Ÿ”

Signed for macOS and WindowsNew

Notarized by Apple with native Apple Silicon builds, and a signed Windows installer.

Learn how โ†’

Get it

Three ways in. Zero friction.

Pick the interface that fits you โ€” the Rust crate underneath is always the same, always safe.

gifmeta โ€” zsh
$ gifmeta mod animation.gif --infinite --delay 8 -o animation-fixed.gif

โœ” 12 frames ยท loop: infinite
โœ” delay: 80 ms

$ gifmeta create title.png walk-*.png the-end.png -o crab.gif --delay 12

โœ… Created 10 frames (480ร—300) โ†’ crab.gif
gifmeta crate versiongifmeta crate downloadsgifmeta docsgifmeta CI statusGIFmeta GUI latest release

Ready to give your GIFs a better loop?

GIFs are still everywhere โ€” messaging, memes, UI loaders. Fix the timing, rearrange the frames or make a brand-new one, without breaking the optimization. It's free, it's open source, and it's built with love.