joeseesun/qiaomu-tiny-gif — explained in plain English
Analysis updated 2026-05-18
Compress a GIF that WeChat rejects for being over 10MB or having too many frames.
Cut a screen recording GIF's frame count down so it displays correctly in a WeChat article.
Shrink a large downloaded GIF while keeping static and slow-motion sections looking unchanged.
Run the tool directly as a Python script with custom size and frame limits for non-WeChat use cases.
| joeseesun/qiaomu-tiny-gif | 2arons/llm-cli | adzza/guardium-dns | |
|---|---|---|---|
| Stars | 11 | 11 | 11 |
| Language | Python | Python | Python |
| Setup difficulty | easy | easy | moderate |
| Complexity | 2/5 | 2/5 | 3/5 |
| Audience | vibe coder | developer | general |
Figures from each repo's GitHub metadata at analysis time.
gifsicle is optional but recommended for better compression results.
qiaomu-tiny-gif is a command-line tool and AI agent skill that shrinks GIF files down to fit within WeChat's official account content rules, without needlessly wrecking image quality. WeChat article bodies reject GIFs over roughly 10MB and will not display them at all past 300 frames, and the tool defaults to a tighter 6MB budget since uploads near the stated 10MB ceiling tend to fail in practice. GIFs downloaded from the web or exported from screen recordings often arrive at dozens of megabytes and hundreds of frames, and ordinary compressors just lower quality across the whole file instead of being selective. This tool looks at the actual content of each frame before compressing anything. It merges frames that barely change into a single frame while keeping the same total playback duration, since a long static moment produces no visible difference either way. For sections with only small motion, it drops every other frame, which halves the local frame rate but preserves overall timing. If the GIF still exceeds the frame count, width, or frame rate limits after that, it thins frames evenly, scales down the width, or caps the frame rate. Only if the file is still too large does it move through a further encoding ladder: reducing the color palette, applying lossy compression, and finally scaling down the image, stopping as soon as the size target is met. You install it as an agent skill with a single command, then describe what you want in plain language, such as asking to compress a GIF for WeChat or to cut down its frame count, and the skill handles it. It can also run directly as a Python script with flags for the size budget, frame limit, target width, and frame rate ceiling, so the WeChat defaults can be turned off for other uses. Every run writes a new file with a tiny suffix and a report describing how many frames were merged or dropped and the final file size, and it never overwrites the original. The tool needs Python 3 with the Pillow library, and works better with the optional gifsicle utility installed for its lossy compression step. It only reads and writes local files, with no network calls or accounts involved, and does not handle converting video to GIF or the reverse. The project is released under the MIT license.
A command-line tool and agent skill that shrinks GIFs to fit WeChat's size and frame limits by merging static frames and thinning motion before falling back to lossy compression.
Mainly Python. The stack also includes Python, Pillow, gifsicle.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly vibe coder.
This repo across BitVibe Labs
Don't trust strangers blindly. Verify against the repo.