Check a Svarn PNG export before handing it over or comparing versions. Check schema-1 manifest entries, PNG structure and SHA-256 hashes; report added, removed or byte-changed PNGs across exports.
You exported sprite slices with the Svarn Aseprite extension and want an independent check before handing the folder to someone else, or you want to see exactly which PNGs changed between two exports.

Buy from /store/svarn-audit-pack/ and download svarn-audit-pack-0.1.0.zip from the checkout page. Extract it; you get a folder named svarn-audit-pack containing audit.py, README.txt and license files. Nothing is installed and no extra Python packages are needed.
In Aseprite, export your slices with Svarn as usual. Keep the export folder as Svarn wrote it: svarn-manifest.json plus the PNG files, with no extra PNGs added by hand.
Open a terminal in the svarn-audit-pack folder and run: python3 audit.py /path/to/svarn-export. A passing folder prints JSON with "status": "verified", the number of files and a SHA-256 value per PNG, and the command exits with code 0.
Run: python3 audit.py /path/to/old-export --compare /path/to/new-export. Both folders are checked first; the output then adds a "comparison" section listing "added", "removed" and "changed" PNG names. "changed" means the file bytes differ, not that the pixels were inspected.
If anything is wrong the tool prints one line starting with AUDIT FAILED: and the reason (for example "PNG CRC mismatch", "PNG dimensions differ from manifest", "unlisted PNG in export folder" or "Svarn export is incomplete"), and exits with code 1. Re-export with Svarn and run the check again.
The tool only reads files and prints to the terminal; it never modifies your export and saves nothing by itself. To keep a record, redirect the output to a file, for example: python3 audit.py my-export > audit-result.json
Input: examples/svarn-audit-pack/ contains three small fictional folders laid out like a Svarn schema-1 export (16×16 PNG squares, not real artwork): export-v1 (frog_1, frog_2, lily_1), export-v2 (frog_2 recoloured, lily_1 removed, dragonfly_1 added) and export-damaged (a copy of export-v1 with one byte flipped inside lily_1.png).
Expected: 1) "status": "verified" with "files": 3 and exit code 0. 2) Also verified, plus "comparison": added ["dragonfly_1.png"], changed ["frog_2.png"], removed ["lily_1.png"]. 3) AUDIT FAILED: PNG CRC mismatch, exit code 1.
The path does not point at a Svarn export folder. Point the command at the folder that directly contains svarn-manifest.json.
A PNG in the folder is not listed in the manifest (for example a file copied in by hand or left over from an older export). Export into an empty folder and check again.
Only complete schema-1 manifests written by Svarn are accepted. Re-run the export in Svarn and resolve any failures it reports first.
Only 8-bit, non-interlaced RGB, indexed or RGBA PNGs are supported, which is what the Svarn extension writes.
Install Python 3.10 or newer. On some systems the command is python instead of python3 (other platforms were not tested).
The Aseprite extension exports your slices and creates the manifest that Audit Pack checks. Download and try that exporter first. Aseprite is licensed separately; Audit Pack is optional.
Download the exporter and follow its guide
Guide and examples: 30 September 2026. Examples are fictional or synthetic. Online guide · Support