← The Dino Dispatch
Featurev0.3.0

Rich Terminal UI

April 12, 2026

An Ink-powered terminal UI with a real design system, an ESM bundle a quarter of the size, and a tag-based release pipeline. Node 22 required.

Dino grew a face. v0.3.0 rebuilds the CLI's output on Ink, React for the terminal, with a real design system, an ASCII dino header, and structured cards for every command. Under the hood, the bundle moved to ESM and shrank by 75%.

A terminal design system

The CLI now renders through twelve Ink components (#1013, #1014, #1015): DinoHeader, SummaryCard, HealthBadge, StatusIcon, DinoSpinner, ErrorPanel, Divider, ProgressBar, NextStep, FindingsTable, and DiffBadge, with per-command views for scan, watch, diff, validate, lint, changelog, and init. There are spinners on every async call, colored health scores, and a CliError.hint field that tells you what to do when something breaks. --debug prints stack traces; --no-color and NO_COLOR are respected.

A quarter of the size

The bundle switched from CommonJS to ESM (type: module) and dropped from 14 MB to 3.5 MB by excluding the TypeScript compiler and shipping production React builds. Node 22 is now required.

Coverage scoring and tag-based releases

This release also landed a coverage-scoring module with miss-rate and Wilson intervals (#985), OIDC Trusted Publishing for npm (#983), and a move to tag-based releases that dispatch the changelog draft straight to this site (#1009, #1010, #1011).

Upgrade and try it: npx @dino-hq/cli@0.3.0 validate shows the new Ink-rendered output.