游乐游手机版
首页/AI教程/文章详情

Figwright 让AI直接驱动Figma画布的双向工具

时间:2026-07-09 15:32
Figwright通过MCP服务器与Figma插件,借助本地WebSocket实现AI代理对Figma画布的双向读写,包含101个工具。免费使用,不依赖付费模式。代码生成时优先复用项目现有组件、变量和样式,支持设计还原代码与代码反向输出设计稿,具备多代理协同及断线续传能力。

Figwright:让 AI 直接驱动 Figma 画布的双向工具

先用一句话说清它的核心能力:Figwright 借助一个 MCP server 加上 Figma 插件,通过本地 WebSocket 中转,让 Claude Code、Cursor 这类 AI agent 不仅能够“查看”Figma 中的设计,还能直接“修改”Figma 画布上的内容。

Figwright:让 AI 直接驱动 Figma 画布的双向工具

官方给出了一段非常精准的描述:Playwright 驱动浏览器,Figwright 驱动 Figma。名字的由来也与此相关,-wright 是英语里“匠人、制造者”的后缀(playwright 写戏、shipwright 造船),Figwright 就是“打造设计的匠人”。

它要解决什么问题

如果你用过 Figma 官方的 Dev Mode MCP,大概率会遇到两个瓶颈:一是需要付费、必须拥有 Dev Mode seat,门槛直接卡住;二是只能读取、无法写入,agent 看到设计可以生成代码,但反向操作——将代码或描述转化为 Figma 画面——这条路是走不通的。

Figwright 成功绕开了这两点:

  • 免费:通过插件通道,免费版 Figma 就能使用,不依赖 Dev Mode,无需任何付费席位。
  • 双向:总共提供 101 个工具,读取和写入都涵盖在内。agent 既能根据设计生成代码,也能根据代码或描述直接在画布上搭建图形。

另外值得关注的是:它的代码生成并非“通用型”。很多 Figma 转 Code 的工具输出一堆通用 div 和硬编码颜色,你还需要手动重写一遍。Figwright 会先探测你项目真实的技术栈(框架、样式系统),然后复用你已有的组件、token、图标,仅补齐缺失的部分。

它怎么工作

三层架构,全部运行在本地。

最上层是 MCP 客户端,每个 agent 一个(Claude Code、Cursor 等),通过 stdio 走 MCP 协议。

中间是 @figwright/mcp 这个 server,由客户端负责启动。有意思的是它支持多客户端共享:多个 server 会自行选举一个 leader 持有唯一的插件连接,其他 follower 通过 HTTP /rpc 转发调用。当 leader 退出时,follower 自动接管,断线也能续上。这个设计保证了同时开启多个 agent 不会互相冲突。

最下面是 Figma,桌面版或浏览器版均可。Figwright 插件(基于 Vue 3 编写的 iframe)运行在其中,接收 server 发来的调用,执行真正的 Figma Plugin API。

MCP 客户端 (Claude Code / Cursor)
│
MCP over stdio
▼
@figwright/mcp (leader 选主 + 断线续传)
│
本地 WebSocket + msgpack
▼
Figma 插件 → Canvas 画布

传输走的是本地 127.0.0.1,不联网、不出本机,数据也不会外泄。

插件不是黑盒

这一点做得相当用心。插件界面包含四个标签:

  • Activity:每一次工具调用都被列出来,附带耗时。
  • Payload:展示真正发给模型的原始数据,你可以看到 agent 到底拿走了什么信息。
  • Context:当前文件、页面、选中内容一目了然。
  • Debug:连接健康度显示,还能一键导出诊断包。

换句话说,agent 在背后做了什么、用了什么数据,全程透明可见。这对调试和建立信任都很有帮助。

怎么安装

四步即可完成,参照官方的流程:

1. 配置 MCP server。 在 Claude Code 的 .mcp.json 中添加:

{
  "mcpServers": {
    "figwright": {
      "command": "npx",
      "args": ["-y", "@figwright/mcp@latest"]
    }
  }
}

npx 会自动拉取发布版,无需全局安装。

2. 安装 Figma 插件。 插件尚未上架 Figma Community 市场,需从 GitHub Release 手动安装。下载最新 Release 的 zip 并解压,在 Figma 桌面版中通过 Menu → Plugins → Development → Import plugin from manifest…,选中解压出来的 manifest.json 即可。

3. 连接。 在 Figma 中打开 Figwright 插件(Plugins → Development → Figwright),它会自动连接本地 server,显示 Connected。让 agent 运行一下 ping 确认链路通畅。

4.(可选)安装 skill。 skill 能让 agent 在合适的时机主动调用 Figwright:

npx skills add awdr74100/figwright/skills

环境要求:一个 MCP 客户端、Node.js 24 LTS 或更新版本、Figma(免费版即可,但安装插件需要桌面版)。

两个核心工作流

Figwright 的核心理念是 provider-first:不提供一套固定的编译流水线,而是把真实的设计上下文完整地交给模型,让它生成贴合你代码库的代码。这套思路被编码进两个 skill。

Figma → 代码(figma-codegen)

将一个选中的设计转化为“看起来属于这个项目”的代码,而不是通用模板。核心是四个 grounding 工具,模型依靠它们获取真实数据,而非通过截图猜测:

  1. get_design_context:获取结构树,将 token 解析为名字(如 Primary/500、spacing/4),对样式进行去重处理,每个实例都附带 mainComponent 和属性。这是布局和绑定的真相来源。
  2. component_map:将 Figma 组件映射到你本地代码中的组件,给出 high/medium/low/unmapped 四档状态。high 和 medium 级别的直接复用导入,不需要重新创建。
  3. token_map:将 Figma 变量映射到项目 token,映射成功就引用 candidate.ref(比如 bg-primary-500),而不是使用解析出来的原始 hex 值。
  4. 导出 grounding 无法直接携带的素材,比如 logo、图片、图标等,否则渲染出来会变成灰块。

这套流程有一条硬性规定:每个 px、每个颜色、每个圆角、每个间距,都必须从 get_design_context 获取,不能靠截图估算。截图只代表视觉意图。另一条准则是“复用优先于重造”:只要 component_map 显示可以复用,就必须直接导入使用,不能自己另起炉灶。

当设计发生变更后,design_diff 会把同一节点存为基线(存放在 .figwright/snapshots/),下次对比时,返回逐节点、逐属性的增删改列表,你只需修改受影响的代码,无需整屏重新生成。

代码 → Figma(figma-build)

反向流程,将代码或描述转化为 Figma 中“看起来本来就属于这个文件”的设计。同样遵循复用优先原则:先用 get_variable_defs、scan_components、get_styles 摸清当前文件已有的设计系统,能够复用的组件就通过 create_instance 实现,颜色走 bind_variable_to_paint,标量走 bind_variable_to_node,共享样式走 apply_style_to_node,避免硬编码 hex 和 px。

使用场景

将上述能力转化为具体能做的事情:

  1. 设计还原代码,反复同步。 设计师修改了一稿,你无需从头切图,agent 运行 design_diff 只更新变化的部分。这是它最日常、最高频的应用场景。
  2. 代码反向输出设计稿。 你已经有 React/Vue 组件了,产品想看看 Figma 里的样子用于评审或展示。figma-build 把组件推送到 Figma,复用文件里已有的组件库,产出的设计不会和现有设计体系脱节。
  3. 批量搭建画面。 101 个工具中包含 batch 工具,可以一次性应用大量编辑。想根据 spec 批量生成落地页、定价区域或整套页面,agent 都能在画布上直接完成。
  4. 跨 agent 协作。 团队成员同时用 Claude Code 连接同一个 Figma 文件,leader/follower 选主机制保证他们不会冲突,谁先启动谁就是 leader。
  5. 代码生成时复用真实技术栈。 团队使用了 Tailwind 加自有组件库,Figwright 会检测出来,生成的代码直接引用你的组件和 token,而不是输出一堆需要你重写的通用标签。

可能踩到的坑

官方 FAQ 写得很实在,挑两个最容易遇到的问题来说。

command not found 或 -32000 Connection closed。 根因在于 MCP 客户端启动 server 时直接 spawn 命令,不走你的交互 shell,所以 shell 里的 PATH、版本管理器(fnm/nvm/asdf/volta)的配置都获取不到。两种解决办法:一是使用绝对路径,通过 which npx 拿到完整路径填进 command;二是把包装成本地依赖,然后去掉 @latest(@latest 会强制每次启动都去 registry 拉取一次,在被 spawn 的环境里容易卡住或失败)。

插件一直显示 Waiting 连不上。 server 是由 MCP 客户端启动的,客户端关闭它就会停止。请确认客户端正在运行、插件在同一台机器的同一个 Figma 中(中转走的是本地 127.0.0.1)、本地回环没有防火墙拦截。

与 Figma 官方 Dev Mode MCP 的取舍

如果团队已经全员使用 Figma 付费版,且只需要“看设计写代码”这个单向能力,官方 Dev Mode MCP 更省事,装个插件就能搞定。

Figwright 更适合以下几种情况:不想为 Dev Mode 买单;需要双向能力(既读又写);希望代码生成能强贴合已有技术栈和组件库;或者想自己 fork 修改工作流(它是开源的,skill 可安装也可修改)。它的代价是需要手动安装插件、配置 MCP、理解 leader/follower 那一套机制,初期上手比官方方案稍重一些。

几句总结

Figwright 的价值不在于“又一个 Figma 转 Code 工具”,而在于两点:一是把 AI agent 和 Figma 的关系从只读变成了双向读写,二是 provider-first 的思路让生成的产物真的能融入你的代码库,而不是进了回收站。如果你正在寻找一种让 AI 深度参与设计到代码、代码到设计循环的方式,并且不想被 Figma 的付费墙拦住,它值得一试。

来源:https://juejin.cn/post/7659588407208099867
上一篇qModel算法模型平台开源版v1.1.0发布:强化API模型接入管理,提升企业级模型纳管效率 下一篇投行视角解读Codex负责人深度访谈AI原生产品团队组织重构
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
CAD零基础入门教程:坐标输入、图层管理与基础绘图命令
AI教程 · 2026-09-01

CAD零基础入门教程:坐标输入、图层管理与基础绘图命令

本文面向CAD零基础学习者,系统讲解坐标输入、图层管理与基础绘图命令的核心用法。通过分步实操与常见问题排查,帮助新手建立精确绘图习惯,掌握规范出图的基础能力。

CAD从入门到项目交付:绘图、标注、图块与实战工作流
AI教程 · 2026-09-01

CAD从入门到项目交付:绘图、标注、图块与实战工作流

掌握CAD的核心在于建立“画得准、标得清、复用快、交付稳”的工作流。本文提供从环境设置、高频命令组合、标注规范、图块标准化到项目分阶段交付的完整路径,帮助初学者避免常见返工陷阱,独立完成可检查、可复用、可打印的工程图纸。

Claude Code 登录指南:个人、Teams 与企业账号区分与授权步骤
AI教程 · 2026-09-01

Claude Code 登录指南:个人、Teams 与企业账号区分与授权步骤

本文详细解析 Claude Code 登录前的账号类型区分方法,涵盖个人订阅、Teams 席位与企业 Enterprise 席位的授权路径差异。提供终端登录命令、环境变量排查及常见异常处理步骤,帮助用户快速完成正确授权并避免登录路径混淆。

Claude Code 文件修改前的权限模式配置与命令审批指南
AI教程 · 2026-09-01

Claude Code 文件修改前的权限模式配置与命令审批指南

本文详细介绍Claude Code在修改文件前的权限模式配置方法,包括defaultMode可选值、permissions allow与deny规则设置、多层级配置文件管理以及 status验证技巧,帮助开发者安全高效地使用AI编程助手。

Claude Code接入VS Code后先测扩展和终端命令
AI教程 · 2026-09-01

Claude Code接入VS Code后先测扩展和终端命令

在VS Code中接入Claude Code后,建议优先验证扩展面板与集成终端两条入口。本文提供标准检查顺序、关键命令与常见故障排查路径,帮助你快速确认环境就绪,避免后续开发受阻。