unstale

npm / @terrazzo/cli

@terrazzo/cli

What changed in @terrazzo/cli 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-20.

12 breaking2 deprecations6 new APIs and options5 behavior and defaults1 tooling6 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

@terrazzo/cli 232 changes

Breaking changes 12

  • plugin-css now inherits alphabetize from options, changing how the setting is configured.

    2.3.0release notes

  • The listPermutations API is no longer provided for complex resolvers.

    2.2.0release notes

  • Border tokens have stricter requirements for all properties to be present.

    2.0.0release notes

  • Color values require components; channels is invalid.

    2.0.0release notes

  • Dimension values require object notation; zero is no longer expanded to pixels automatically, and { $value: 0 } is not allowed.

    2.0.0release notes

  • Duration values require object notation.

    2.0.0release notes

  • Plugin lint runs once on the merged full set rather than on individual files; plugins using src must instead read sources.

    2.0.0release notes

  • Plugin lint authors should read from the sources array instead of the src context value.

    2.0.0release notes

  • Reimagined as a server-side resolver API for building a token machine.

    2.0.0release notes

  • TypeScript config files and plugins are fully supported, and terrazzo.config.ts is now the default.

    2.0.0release notes

  • The transform callback receives a Momoa node first and a context object second, and must return a Momoa node rather than raw JSON.

    2.0.0release notes

  • Typography values require fontFamily, fontSize, fontWeight, lineHeight, and letterSpacing at minimum.

    2.0.0release notes

Deprecations 2

  • Soft-deprecated in favor of core/valid-typography.

    2.0.0release notes

  • Introduces the replacement lint rule for core/required-typography-properties.

    2.0.0release notes

New APIs and options 6

  • The resolver API adds orthogonality detection, except for $extends.

    2.4.0release notes

  • Figma import supports OAuth access tokens through FIGMA_OAUTH_TOKEN; OAuth takes precedence over FIGMA_ACCESS_TOKEN when both are set.

    2.1.0release notes

  • Adds first-class support for remote and local JSON $refs, interchangeable with DTCG aliases.

    2.0.0release notes

  • Adds a new and improved native Figma import.

    2.0.0release notes

  • Adds type-safe JavaScript support for use with CSS-in-JS libraries.

    2.0.0release notes

  • Adds typography shorthand.

    2.0.0release notes

Behavior and default changes 5

  • The build plugin hook now executes in parallel with buildEnd.

    2.0.0release notes

  • The buildEnd plugin hook now executes in parallel with build.

    2.0.0release notes

  • The Sass plugin is improved.

    2.0.0release notes

  • Validation is handled by lint rules, making it individually configurable and optionally extendable.

    2.0.0release notes

  • May be undefined for tokens created with $ref.

    2.0.0release notes

Tooling 1

  • Adds full support for DTCG v2025.10, including resolvers.

    2.0.0release notes

Fixes and other changes 6

  • Fixes alias resolution for hidden local variables in Figma.

    2.1.0release notes

  • The build command now respects the --no-lint option.

    2.1.0release notes

  • Improves token aliases when the primitive or primary has a token but aliases do not, preventing dropped tokens in plugins.

    2.0.3release notes

  • Fixed legacy modeSelectors resolving to the default alias instead of the requested mode.

    2.0.2release notes

  • Fixes a runtime error when $extensions does not have a mode object.

    2.0.1release notes

  • Throws an error when the supplied config path points to a bad location.

    2.0.0release notes