Install ds-bridge.
Three ways to run it: as a Claude Code plugin, from a local checkout, or as a standalone CLI in CI. Free, no signup.
$ claude plugin install ds-bridgeThree ways to run it: as a Claude Code plugin, from a local checkout, or as a standalone CLI in CI. Free, no signup.
$ claude plugin install ds-bridgeThe recommended path. Claude Code installs plugins from a marketplace — point one at this repo, then install ds-bridge from it.
# 1 · register this repo as a marketplace
claude plugin marketplace add lucksy/ds-bridge
# 2 · install the plugin from that marketplace
claude plugin install ds-bridge
# disambiguate when several marketplaces are configured
claude plugin install ds-bridge@<marketplace-name>You can pre-seed userConfig options non-interactively with repeatable --config flags — they’re validated against the manifest and stored the same way as the interactive configure flow.
claude plugin install ds-bridge \
--config figma_file_key=abc123 \
--config readiness_threshold=85Useful follow-ups: claude plugin list, claude plugin details ds-bridge, claude plugin update ds-bridge, claude plugin uninstall ds-bridge.
Load the plugin straight from a checkout for the current session — no marketplace, no install. --plugin-dir is repeatable and also accepts a .zip. Inside that session the slash commands and both hooks are live.
claude --plugin-dir /path/to/ds-bridgeEvery behavior lives in the bundled CLI (dist/cli.mjs) — handy for CI gates and scripts. Exit codes: 0 clean · 1 findings · 2 config error. dist/cli.mjs is committed at release tags only; build it from a fresh checkout with npm run build. Requires Node ≥ 22.
node dist/cli.mjs --help
node dist/cli.mjs lint ./src
node dist/cli.mjs tokens check --reportClaude Code prompts for these natively when you enable the plugin — no settings.json hand-editing.
| Option | Default | What it does |
|---|---|---|
figma_file_key | — | Key from your Figma library file URL. Used by registry build and any library-wide audit. |
figma_token | — | Figma personal access token. Sensitive — stored in the system keychain, never in a file. |
token_source | auto-detected | Your W3C / Tokens Studio / Style Dictionary entry file. If unset, ds-bridge discovers it from common paths. |
report_style | both | Report output: html, terminal, or both. |
readiness_threshold | 80 | The handoff-readiness gate /ds-bridge:handoff-qa must clear for a frame to pass. |
Resolution order (highest wins): CLI flags → env vars (CLAUDE_PLUGIN_OPTION_*, FIGMA_TOKEN) → project .ds-bridge.json → userConfig defaults. A missing token is an actionable message, never a crash.
ds-bridge talks to Figma with a personal access token (PAT). The seat you create it from matters.
Required scopes: file_content:read, library_content:read, file_versions:read, file_comments:read, file_comments:write. The legacy files:read scope is deprecated.
Because figma_token is sensitive, Claude Code stores it in the OS keychain — never put it in .ds-bridge.json (the config loader ignores a token there and warns). Standalone CLI users set FIGMA_TOKEN in the environment instead.
The remote Figma MCP server authenticates on its own — the REST PAT does not authenticate MCP, and vice versa.