DevToolz
0.3.3
2026-10-07
- New:
image-hashgenerates hazehash with-t hazehash(or-t all). At the same size it is more accurate than blurhash and thumbhash, and it keeps the aspect ratio and, only when the image has transparent pixels, the alpha channel. In every list of hash types and in every output (JSON, CSV, the--dry-runtable) it comes first, before blurhash. The default,-t both, is still blurhash and thumbhash. See Image Hash. - New:
--budget <bytes>sets the most one hazehash may take, from 7 to 48 bytes (default28; 16–48 is the range the format is tuned for). It is a ceiling: a flat or smooth image needs fewer bytes. A budget too small for an image with transparency (under 9 bytes) is reported as a problem for that image, and a value outside 7–48 exits with code 2. - Note:
--cachenow also remembers the budget, so a cache file written by an earlier version is recomputed once.
0.3.2
2026-10-03
- Fixed: every option that takes a comma-separated list (
--ext,--type,--tags,--methods,--lang,--test-suffix,--source-ext) now also accepts spaces, andimage-hashaccepts space-separated paths. PowerShell passesa,bto a program as one argumenta b, which these options used to reject, sodevtoolz image-hash -t blurhash,thumbhash,colorfailed there. - Fixed: the package is now built automatically before every publish (
prepublishOnly). Version 0.3.1 shipped a stale build without the fix above.
0.3.1
2026-10-03
- Note: this release was published with a build that predates the list fix described under 0.3.2, so the fix is not in it. Use 0.3.2.
0.3.0
2026-10-03
- New: the
image-hashcommand generates blurhash and thumbhash placeholders for raster images. It takes files and/or directories (comma-separated too,-rfor subdirectories) and prints to stdout, writes one file (-o), or writes a file per image (--per-file,--out-dir, with--suffixand--out-extfor the names, for examplephoto.jpg.blurhash.txt). Formats arejson,plain,csv,tsandjs. See Image Hash. - New:
image-hashneeds the nativesharplibrary, which is not installed with devtoolz. The first run offers to install it into~/.devtoolz/deps(-y/--yesagrees up front; without a terminal and without-ythe command stops with a message). Asharpalready installed next to devtoolz is used as is. - New:
image-hashcan also produce the dominant color (color) and a tiny PNG data URI (preview) with-t, and picks blurhash components by aspect ratio with--components auto. - New:
image-hashacceptshttp(s)URLs and a path list from a file or stdin (--files-from), and reshapes the keys in its output with--key-baseand--key-prefix. - New:
image-hash --cacheskips unchanged images,--updatemerges into an existing output file and--prunedrops entries whose image is gone, and--checkfails (exit 1) when output files are missing or stale — made for CI. See Keeping an output file up to date. - New:
image-hashshows a progress counter in a terminal, finds asharpalready installed in the project it runs in, hashes CMYK images correctly, refuses truncated files and images over--max-pixels, and explains such failures in plain words. - New:
image-hash --dry-runwrites nothing and shows the result as a table, with the files that would be written listed under it. - New: colored output for every command, from one shared palette — paths,
:line:columnpositions, names, headings, hints and thefull-checkstatus icons each have their own color.--color(orFORCE_COLOR) forces color when output is piped or in CI;NO_COLOR,TERM=dumband--plainkeep it off. The text of every report is unchanged, only escape codes are added. See Output & colors. - Changed:
--quietno longer turns color off, it only drops the banner and the output of a clean run.--plainstill turns off color, banner and celebration copy together. - Added to the programmatic API:
runImageHashandrenderImageHashReport, with their option, report and entry types.