From a Figma finding to the line of code.
Forge links each text and background pair TintSense checks in Figma to the CSS token that ships it, evaluates every theme with the same contrast engine, and hands your coding agent a patch to review.
WHAT FORGE IS FOR
The design passed. Did the code?
A palette can pass in Figma and still ship failing: a token drifts, a dark theme is defined twice, an alias points somewhere new. Accessibility checkers in the browser catch it late and report a CSS selector, not the token you need to change.
Forge closes that gap at the source. It knows which tokens meet in your designs, reads the values your stylesheets actually declare, and tells you exactly which declaration to change.
Figma supplies the pairs.
The plugin exports every text and background pair with the variables it is bound to, the mode it renders in, and the alias chain behind each variable.
Code supplies the values.
Forge reads CSS custom properties with the selector and media query they live in, so :root, [data-theme="dark"] and prefers-color-scheme each keep their own value.
The engine decides.
Ratios, thresholds and fix colors come from the same deterministic engine as the plugin, never from a language model. A pair Forge cannot trace is reported as unknown, never as a pass.
THE FORGE LOOP
Export. Link. Check. Patch.
Export “Forge (code)” from the TintSense plugin after a scan.
Figma variables meet code tokens through code syntax, a naming rule you accept once, or a link you confirm.
Every pair is evaluated in every theme, with drift between Figma and code called out.
The closest passing color, written in the token’s own syntax, as a diff you review.
MCP
Works where your agent already works.
Forge speaks the Model Context Protocol, so Claude Code, Cursor or any MCP client can ask it what fails and how to fix it. The agent writes the code; Forge supplies the verdicts.
Forge MCP on your machine
Runs next to your repository and reads your stylesheets directly. Your code never leaves your computer, and nothing is uploaded to call a tool.
forge_linksFigma variables and the code tokens they map to, with the evidence for each link.forge_checkEvery known pair evaluated in every theme: failures, drift and unknowns with file and line.forge_propose_fixA unified diff for the failing pairs. Read-only: the patch is returned, not applied.
Forge MCP for subscribers
A remote endpoint behind sign-in with your TintSense account. Access requires an active subscription, so tools are available to your team without sharing keys.
map_projectA compact summary of a project map: stack, scripts, entry points.inspect_projectFind the files, components and tokens relevant to a change.validate_project_mapCheck a project map for missing or unsafe data before an agent uses it.
Make the dashboard pass contrast in both themes.
forge_check → --muted on --bg fails at 4.07:1 in :root (needs 4.5:1), tokens.css:16.
forge_propose_fix → change --muted and keep every other known pair passing:
WHAT FORGE PROMISES
Careful by default.
- Never writes your source. Fixes are patches you apply after review.
- Edits the right token. Through an alias chain to the declaration that actually holds the color.
- Keeps your syntax. Hex stays hex,
oklch()staysoklch(); expressions such ascolor-mix()are never rewritten. - Refuses unsafe fixes. A change that would make another known pair fail is rejected, and generated stylesheets are left alone.
- Fits your CI.
forge checkexits non-zero on failures and writes SARIF, so pull requests get annotations on the token line. - Says what it doesn’t know. Forge checks the pairs your designs define and the ones you list. It does not render your app, so it never claims the whole interface is compliant.
FORGE / COMING SOON
Design should survive contact with code.
Forge is in development alongside the TintSense plugin. It starts with CSS custom properties and Figma variables, and grows from there.