Hi everyone! Gram v1.3.0 is now available. This release addresses several issues reported since the last release.
Node.js 22 or later is now required
Node.js 20 reached end of life in April 2026, so the CLI now requires Node.js 22 or later. If you run Gram on Node.js, make sure to update your runtime before bumping the CLI. Bun users are not affected.
Support for abbreviated units
Units written with abbreviation dots are now recognized: {1/2 c.à.s}, {1 c. à c.}, or {2 fl. oz.} are directly mapped to càs, càc, and fl oz.
In return, the compiler is stricter: an unreadable quantity inside braces (like an unsupported unit in @salt{1 g/l} or a missing closing brace) now triggers a clear error pointing at the brace, instead of being silently ignored. If an existing recipe fails to compile, that is the first place to check.
Other fixes & tweaks
- CLI & terminal view (
gram view): Timers retain their authored units (~1h,~20s), durations are rounded and readable (1h 5m), resting time appears in the recipe header, and fractions stay fractions in the shopping list (1/4 tsp). - Ingredient database: Lookups in
ingredients.yamlnow resolve through slug normalization (e.g.Huile d'olivematcheshuile-dolive), avoiding false “missing nutrition” alerts during volume-to-mass conversions.gram db lintalso catches ambiguous aliases. - Modules: Intermediates declared in imported modules display their authored name (
pressed) instead of an internal path prefix, and syntax errors in the main recipe are no longer blamed on an “imported module”.
For the complete list of changes, check out the Changelog.