The deterministic centre of gravity for design token workflows, built for humans and agents.

A toolset to lint, structure-check, transform and visually diff design tokens. Synced with Figma, shipped as pull requests.

Read the quick start

How it works

where the change is made
Change

In Figma Variables, in a token file, or by an agent.

into the repository

in the pull request
  1. Check

    Structure and names, against your rules.

  2. Build

    Every output, for every brand and mode.

  3. Diff

    Before and after, each difference named by token.

  4. Decide

    A person approves by token.

A fix goes back to whichever side caused it: a value in Figma, or a component in code.finds the hard-coded ones

01 · Something changes

A change lands as a pull request.

A rounder card and a slightly deeper brand blue. Made in Figma Variables or in a token file; either way DTA pulls them into the repository as one change.

  • Colors.Surface.DefaultVoid.900
  • Colors.Brand.PrimaryNova.500 → 600
  • Radius.Card8 → 24
02 · The checks run first

Structure and names are checked before anyone looks.

dta lint checks the change against your rules, then every output is rebuilt. Nothing here needs a person: what is left is what changed on screen.

  • dta lintpassed · 0 violations
  • dta buildpassed
  • dta diffchanges to review · 6 stories
03 · A person decides

Approve by token, not by screenshot.

dta diff renders the stories before and after and names the token behind each change. The rounder corners are obvious; the darker blue is easy to miss. Approving is a label on the pull request; a new push asks again.

mainLaunch order · 12 min
this changeLaunch order · 12 min
  • Radius.Card 8 → 24 · explains 4 of 6 changed stories
  • Colors.Brand.Primary Nova 500 → 600 · explains 6 of 6 changed stories
  • dta diffchanges to review · 6 stories
Add label dta-diff-approved
04 · Your agent uses the same commands

No hard-coded values, even from agents.

The skill teaches the loop; the context file lists your tokens. The agent proposes, the checks decide, and nothing reaches Figma without a person.

Agent The button needs the brand blue. Looking it up first.

$ dta token find '#2443ac'

2 tokens resolve to #2443ac:

action.bg Light var(--action-bg)

blueprint.700 every mode var(--blueprint-700)

$ dta audit src

No hard-coded token values in 67 files.

Real output, from this website's own tokens.

Open source
MIT. Runs locally, in CI and in your agent's terminal. No account.
Your structure
Your collections, modes and names, in the open DTCG format.
Every Figma plan
REST API on Enterprise, plugin export everywhere else.
Deterministic
Same input, same result, on every machine.

Start with one command.

Sets up the config, the token folder, the GitHub workflow and the agent skill.