# What changed in @terrazzo/cli

> 32 changes in @terrazzo/cli 2 from its official release notes, upgrade guides and advisories: 12 breaking, 2 deprecations, 6 new APIs and options. Each one cited. Sources checked 2026-10-20. HTML: https://unstale.sh/npm/@terrazzo/cli/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @terrazzo/cli 2

### Breaking changes

- plugin-css now inherits alphabetize from options, changing how the setting is configured. (2.3.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.3.0)
- The listPermutations API is no longer provided for complex resolvers. (2.2.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.2.0)
- Border tokens have stricter requirements for all properties to be present. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Color values require components; channels is invalid. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Dimension values require object notation; zero is no longer expanded to pixels automatically, and `{ $value: 0 }` is not allowed. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Duration values require object notation. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Plugin lint runs once on the merged full set rather than on individual files; plugins using src must instead read sources. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Plugin lint authors should read from the sources array instead of the src context value. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Reimagined as a server-side resolver API for building a token machine. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- TypeScript config files and plugins are fully supported, and terrazzo.config.ts is now the default. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- 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.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Typography values require fontFamily, fontSize, fontWeight, lineHeight, and letterSpacing at minimum. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)

### Deprecations

- Soft-deprecated in favor of core/valid-typography. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Introduces the replacement lint rule for core/required-typography-properties. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)

### New APIs and options

- The resolver API adds orthogonality detection, except for $extends. (2.4.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.4.0)
- Figma import supports OAuth access tokens through FIGMA_OAUTH_TOKEN; OAuth takes precedence over FIGMA_ACCESS_TOKEN when both are set. (2.1.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.1.0)
- Adds first-class support for remote and local JSON $refs, interchangeable with DTCG aliases. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Adds a new and improved native Figma import. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Adds type-safe JavaScript support for use with CSS-in-JS libraries. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Adds typography shorthand. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)

### Behavior and default changes

- The build plugin hook now executes in parallel with buildEnd. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- The buildEnd plugin hook now executes in parallel with build. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- The Sass plugin is improved. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- Validation is handled by lint rules, making it individually configurable and optionally extendable. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
- May be undefined for tokens created with $ref. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)

### Tooling

- Adds full support for DTCG v2025.10, including resolvers. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)

### Fixes and other changes

- Fixes alias resolution for hidden local variables in Figma. (2.1.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.1.0)
- The build command now respects the --no-lint option. (2.1.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.1.0)
- Improves token aliases when the primitive or primary has a token but aliases do not, preventing dropped tokens in plugins. (2.0.3) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.3)
- Fixed legacy modeSelectors resolving to the default alias instead of the requested mode. (2.0.2) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.2)
- Fixes a runtime error when $extensions does not have a mode object. (2.0.1) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.1)
- Throws an error when the supplied config path points to a bad location. (2.0.0) — [release notes](https://github.com/terrazzoapp/terrazzo/releases/tag/%40terrazzo/cli%402.0.0)
