Skip to content

DevToolz ​

0.3.3 ​

2026-10-07

  • New: image-hash generates 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-run table) 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 (default 28; 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: --cache now 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, and image-hash accepts space-separated paths. PowerShell passes a,b to a program as one argument a b, which these options used to reject, so devtoolz image-hash -t blurhash,thumbhash,color failed 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-hash command generates blurhash and thumbhash placeholders for raster images. It takes files and/or directories (comma-separated too, -r for subdirectories) and prints to stdout, writes one file (-o), or writes a file per image (--per-file, --out-dir, with --suffix and --out-ext for the names, for example photo.jpg.blurhash.txt). Formats are json, plain, csv, ts and js. See Image Hash.
  • New: image-hash needs the native sharp library, which is not installed with devtoolz. The first run offers to install it into ~/.devtoolz/deps (-y/--yes agrees up front; without a terminal and without -y the command stops with a message). A sharp already installed next to devtoolz is used as is.
  • New: image-hash can 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-hash accepts http(s) URLs and a path list from a file or stdin (--files-from), and reshapes the keys in its output with --key-base and --key-prefix.
  • New: image-hash --cache skips unchanged images, --update merges into an existing output file and --prune drops entries whose image is gone, and --check fails (exit 1) when output files are missing or stale — made for CI. See Keeping an output file up to date.
  • New: image-hash shows a progress counter in a terminal, finds a sharp already 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-run writes 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:column positions, names, headings, hints and the full-check status icons each have their own color. --color (or FORCE_COLOR) forces color when output is piped or in CI; NO_COLOR, TERM=dumb and --plain keep it off. The text of every report is unchanged, only escape codes are added. See Output & colors.
  • Changed: --quiet no longer turns color off, it only drops the banner and the output of a clean run. --plain still turns off color, banner and celebration copy together.
  • Added to the programmatic API: runImageHash and renderImageHashReport, with their option, report and entry types.