figma-use
figma-use 是一款让开发者能通过命令行直接操控 Figma 的开源工具。它填补了官方插件只能读取文件却无法修改的空白,赋予 AI 智能体完整的读写权限,能够自动创建图形、文本、组件、设置样式甚至导出图片。
这款工具主要解决了自动化设计工作流中的“最后一公里”问题。由于大语言模型(LLM)天生熟悉命令行和 React 代码,figma-use 巧妙地将两者结合:既支持简洁的命令式操作,也允许用户通过直观的 JSX 语法声明式地描述界面结构。这种设计让 AI 无需额外训练就能自然生成复杂的设计布局,极大地节省了交互令牌并提升了执行效率。此外,它还支持直接从 Iconify 库调用超过 15 万个图标,并能将现有的 Figma 节点反向导出为 JSX 代码,实现设计与代码的双向互通。
figma-use 特别适合前端开发者、AI 工程师以及希望将设计流程自动化的高级用户。对于习惯使用终端工具或希望通过代码驱动设计生成的团队来说,它是一个高效且灵活的桥梁,让“用代码画原型”变得触手可及。
使用场景
某前端团队需要在 Figma 中快速批量生成一套包含 50+ 个不同状态和变体的按钮组件库,以配合新的设计系统上线。
没有 figma-use 时
- 设计师必须手动在 Figma 界面中重复点击创建画板、绘制矩形、调整圆角和填充色,耗时数小时且极易出错。
- AI 助手虽然能生成代码或建议,但受限于官方插件只能“读”不能“写”,无法直接将构思转化为实际的设计稿元素。
- 修改整体风格(如将所有主色从蓝色改为紫色)时,需要逐个选中组件进行调整,缺乏批量自动化手段。
- 开发者与设计师协作时,描述复杂布局往往依赖截图或口头沟通,缺乏像 React 组件那样精确的结构化描述语言。
使用 figma-use 后
- 团队只需编写一段 JSX 代码或通过 CLI 命令,figma-use 即可在秒级内自动创建所有按钮变体,包括不同的尺寸、颜色和图标组合。
- AI 代理可以直接调用 figma-use 的读写权限,将自然语言需求(如“生成一个带图标的保存按钮”)瞬间执行并渲染为真实的 Figma 图层。
- 利用声明式 JSX 描述结构,修改全局样式只需调整几行代码并重新运行
render命令,即可一键更新所有相关组件。 - 开发者可以直接用熟悉的 React 思维(
<Frame><Icon /></Frame>)来定义设计稿,实现了从代码到设计的双向无缝流转。
figma-use 通过将命令行的高效与 JSX 的直观结合,彻底打破了 AI 只能“看”不能“做”的壁垒,让设计稿的生成与维护变得像编写代码一样敏捷。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
figma-use
⚠️ Figma 126+ 已阻止远程调试。 不过,figma-use 仍然可以通过
figma-use daemon start --pipe命令使用。或者,您也可以完全跳过 Figma,改用 OpenPencil —— 一款开源的设计编辑器,支持读写 .fig 文件,并内置 AI 和 P2P 协作功能。
用于 Figma 的命令行工具。通过终端、命令或 JSX 来控制 Figma。
# 创建并设置样式
figma-use create frame --width 400 --height 300 --fill "#FFF" --layout VERTICAL --gap 16
figma-use create icon mdi:home --size 32 --color "#3B82F6"
figma-use set layout 1:23 --mode GRID --cols "1fr 1fr 1fr" --gap 16
# 或者渲染 JSX
echo '<Frame style={{display: "grid", cols: "1fr 1fr", gap: 16}}>
<Frame style={{bg: "#3B82F6", h: 100}} />
<Frame style={{bg: "#10B981", h: 100}} />
</Frame>' | figma-use render --stdin --x 100 --y 100
为什么
Figma 官方的 MCP 插件可以读取文件,但无法修改它们。而这个工具则可以做到。
大模型熟悉命令行,也熟悉 React。这款工具将两者结合了起来。
命令行指令简洁紧凑——易于阅读、生成和串联。当任务涉及数十个操作时,每一个节省下来的字符都至关重要。
JSX 是大模型思考 UI 的方式。它们已经见过数以百万计的 React 组件。用 <Frame><Text> 来描述 Figma 布局对它们来说再自然不过——无需特殊训练,也不需要冗长的模式定义。
演示
▶️ 按钮组件 |
▶️ Tailwind UI 日历 |
安装
npm install -g figma-use
或者直接运行而不需安装:
npx figma-use status
启动 Figma 并启用远程调试:
# macOS
open -a Figma --args --remote-debugging-port=9222
# Windows
"%LOCALAPPDATA%\Figma\Figma.exe" --remote-debugging-port=9222
# Linux
figma --remote-debugging-port=9222
检查连接:
figma-use status
仅此而已,无需安装任何插件。
两种模式
命令式——一次执行一条命令:
figma-use create frame --width 400 --height 300 --fill "#FFF" --radius 12 --layout VERTICAL --gap 16
或者声明式——用 JSX 描述结构并渲染:
echo '<Frame style={{p: 24, gap: 16, flex: "col", bg: "#FFF", rounded: 12}}>
<Text style={{size: 24, weight: "bold", color: "#000"}}>卡片标题</Text>
<Text style={{size: 14, color: "#666"}}>描述</Text>
</Frame>' | figma-use render --stdin --x 100 --y 200
标准输入模式只接受纯 JSX——没有变量,也没有逻辑。对于组件、变体和条件判断,请使用 .figma.tsx 文件。
元素: Frame、Rectangle、Ellipse、Text、Line、Star、Polygon、Vector、Group、Icon、Image
示例
图标
只需通过名称即可插入 Iconify 中的任意图标。无需下载、导入或清理。
figma-use create icon mdi:home
figma-use create icon lucide:star --size 48 --color "#F59E0B"
在 JSX 中:
<Frame style={{ flex: 'row', gap: 8 }}>
<Icon icon="mdi:home" size={24} color="#3B82F6" />
<Icon icon="lucide:star" size={32} color="#F59E0B" />
</Frame>
浏览超过 15 万个图标:icon-sets.iconify.design
图片
从 URL 加载图片:
<Image src="https://example.com/photo.jpg" w={200} h={150} />
导出为 JSX
将任意 Figma 节点转换回 JSX:
figma-use export jsx 123:456 --pretty
输出:
import { Frame, Icon, Text } from 'figma-use/render'
export default function SaveButton() {
return (
<Frame name="SaveButton" w={120} h={44} bg="#1FAFBB" rounded={8} flex="row" gap={8}>
<Icon name="lucide:save" size={18} color="#FFFFFF" />
<Text size={16} color="#FFFFFF">
保存
</Text>
</Frame>
)
}
自动将矢量形状匹配到 Iconify 图标:
npm install whaticon # 可选依赖
figma-use export jsx 123:456 --match-icons --prefer-icons lucide
比较两个节点的 JSX 差异:
figma-use diff jsx 123:456 789:012
导出为 Storybook(实验性)
将组件导出为 Storybook 故事:
figma-use export storybook --out ./stories
figma-use export storybook --out ./stories --match-icons --prefer-icons lucide
会生成带有类型化 props 的 .stories.tsx 文件,这些 props 直接来自组件属性。
组件
您可以在 .figma.tsx 文件中定义组件。第一次调用会创建主组件,其余调用则创建实例:
import { defineComponent, Frame, Text } from 'figma-use/render'
const Card = defineComponent(
'Card',
<Frame style={{ p: 24, bg: '#FFF', rounded: 12 }}>
<Text style={{ size: 18, color: '#000' }}>卡片</Text>
</Frame>
)
export default () => (
<Frame style={{ gap: 16, flex: 'row' }}>
<Card />
<Card />
<Card />
</Frame>
)
变体
包含所有组合的 ComponentSet:
import { defineComponentSet, Frame、Text } from 'figma-use/render'
const Button = defineComponentSet(
'Button',
{
variant: ['Primary', 'Secondary'] as const,
size: ['Small', 'Large'] as const
},
({ variant, size }) => (
<Frame
style={{
p: size === 'Large' ? 16 : 8,
bg: variant === 'Primary' ? '#3B82F6' : '#E5E7EB',
rounded: 8
}}
>
<Text style={{ color: variant === 'Primary' ? '#FFFFFF' : '#111' }}>
{variant} {size}
</Text>
</Frame>
)
)
export default () => (
<Frame style={{ gap: 16, flex: 'col' }}>
<Button variant="Primary" size="Large" />
<Button variant="Secondary" size="Small" />
</Frame>
)
这会在 Figma 中创建一个真正的 ComponentSet,包含全部 4 种变体,而不仅仅是 4 个独立的按钮。
网格布局
CSS Grid 适用于二维布局——日历、仪表盘、图库等:
<Frame
style={{
display: 'grid',
cols: '1fr 1fr 1fr', // 3 列等宽
rows: 'auto auto', // 2 行
gap: 16
}}
>
<Frame style={{ bg: '#FF6B6B' }} />
<Frame style={{ bg: '#4ECDC4' }} />
<Frame style={{ bg: '#45B7D1' }} />
<Frame style={{ bg: '#96CEB4' }} />
<Frame style={{ bg: '#FFEAA7' }} />
<Frame style={{ bg: '#DDA0DD' }} />
</Frame>
支持 px、fr 以及 auto/hug。可分别使用 colGap 和 rowGap 设置列与行之间的间距。
在命令行中:
figma-use set layout <id> --mode GRID --cols "100px 1fr 100px" --rows "auto" --gap 16
变量作为标记
通过名称将颜色绑定到 Figma 变量。十六进制值用作回退:
import { defineVars, Frame, Text } from 'figma-use/render'
const colors = defineVars({
bg: { name: 'Colors/Gray/50', value: '#F8FAFC' },
text: { name: 'Colors/Gray/900', value: '#0F172A' }
})
export default () => (
<Frame style={{ bg: colors.bg }}>
<Text style={{ color: colors.text }}>绑定到变量</Text>
</Frame>
)
在 CLI 中,可在任何颜色选项中使用 var:Colors/Primary 或 $Colors/Primary。
差异比较
比较两个框架并获取补丁:
figma-use diff create --from 123:456 --to 789:012
--- /Card/Header #123:457
+++ /Card/Header #789:013
@@ -1,5 +1,5 @@
type: FRAME
size: 200 50
pos: 0 0
-fill: #FFFFFF
+fill: #F0F0F0
-opacity: 0.8
+opacity: 1
将补丁应用到原始框架。应用时会验证当前状态是否符合预期——如果不匹配,则会失败。
视觉差异会以红色突出显示更改的像素:
figma-use diff visual --from 49:275096 --to 49:280802 --output diff.png
| 之前 | 之后 | 差异 |
|---|---|---|
![]() |
![]() |
![]() |
检查
以可读格式显示页面树:
$ figma-use node tree
[0] 框架 “Card” (1:23)
400×300 在 (0, 0) | 填充:#FFFFFF | 布局:列间距=16
[0] 文本 “Title” (1:24)
“Hello World” | 24px Inter Bold
只需一条命令即可导出任意节点或截图。
排列
整理画布布局——尤其在代理在同一位置创建多个框架后非常有用:
figma-use arrange # 网格排列所有顶级节点
figma-use arrange --mode row --gap 60 # 横向排列
figma-use arrange --mode squarify --gap 60 # 智能包装,适用于不同大小的元素
squarify 和 binary 模式使用 d3-hierarchy 树状图进行尺寸感知的矩形打包。
向量
导入 SVG 或直接操作路径——读取、修改、平移、缩放、翻转:
figma-use path get <id>
figma-use path set <id> "M 0 0 L 100 100 Z"
figma-use path scale <id> --factor 1.5
figma-use path flip <id> --axis x
查询
使用 XPath 选择器查找节点:
figma-use query "//FRAME" # 所有框架
figma-use query "//FRAME[@width < 300]" # 宽度小于 300px
figma-use query "//COMPONENT[starts-with(@name, 'Button')]" # 名称以...开头
figma-use query "//FRAME[contains(@name, 'Card')]" # 名称包含...
figma-use query "//SECTION/FRAME" # 直接子元素
figma-use query "//SECTION//TEXT" # 所有后代
figma-use query "//*[@cornerRadius > 0]" # 任何具有圆角的节点
完全支持 XPath 3.1 — 谓词、函数、算术和轴。
分析
用于理解设计系统的发现工具:
# 查找重复模式(潜在组件)
figma-use analyze clusters
# 颜色 palette — 使用频率、变量与硬编码
figma-use analyze colors
figma-use analyze colors --show-similar # 查找可合并的颜色
# 排版 — 所有字体组合
figma-use analyze typography
figma-use analyze typography --group-by size
# 间距 — 间隙/填充值、网格合规性
figma-use analyze spacing --grid 8
# 辅助功能快照 — 提取交互元素树
figma-use analyze snapshot # 整页
figma-use analyze snapshot <id> -i # 仅交互元素
示例输出:
[0] 48× 框架 “Header” 模式 (100% 匹配)
1280×56 | 框架 > [框架×2, 文本]
示例:53171:21628, 53171:21704
#303030 ████████████████████ 1840× (变量)
#E5E5E5 ████████████████████ 1726× (变量)
#000000 ████████ 238×
代码检查(实验性)
检查设计的一致性、可访问性和最佳实践:
figma-use lint # 推荐规则
figma-use lint --page "Components" # 检查特定页面
figma-use lint --preset strict # 更严格的生产标准
figma-use lint --preset accessibility # 仅辅助功能检查
figma-use lint -v # 包含修复建议
输出:
✖ Header/Title (1:234)
✖ 对比度 2.1:1 低于 AA 标准 (4.5:1) color-contrast
⚠ 触摸目标 32x32 小于最小 44x44 touch-target-size
⚠ Card/Body (1:567)
⚠ 硬编码填充颜色 #1A1A1A no-hardcoded-colors
ℹ 包含 3 个子元素的框架未使用自动布局 prefer-auto-layout
────────────────────────────────────────────────────────────────
✖ 1 错误 ⚠ 3 警告 ℹ 1 信息
17 条规则分布在 6 个类别中:
| 类别 | 规则 |
|---|---|
| 设计令牌 | no-hardcoded-colors, consistent-spacing, consistent-radius, effect-style-required |
| 布局 | prefer-auto-layout, pixel-perfect |
| 排版 | text-style-required, min-text-size, no-mixed-styles |
| 辅助功能 | color-contrast, touch-target-size |
| 结构 | no-default-names, no-hidden-layers, no-deeply-nested, no-empty-frames, no-groups |
| 组件 | no-detached-instances |
用于 CI/CD 的 JSON 输出:
figma-use lint --json > report.json
基于评论的工作流(实验性)
AI 代理可以等待 Figma 评论并作出响应:
figma-use comment watch --json # 阻塞直到收到新评论
figma-use comment resolve <id> # 标记为已完成
返回评论内容、作者以及 target_node——即评论标记下的确切元素。代理处理请求后,解决评论,然后再次运行 watch 以等待下一个评论。
完整命令参考
完整 100 多条命令列表请参阅 REFERENCE.md。
MCP 服务器
对于支持模型上下文协议的 AI 代理:
figma-use mcp serve
公开 90 多种工具。设置方法请参阅 MCP.md。
配置
对于 Storybook 导出和代码检查,可创建配置文件:
figma-use init
这将创建 .figma-use.json 文件:
{
"storybook": {
"page": "Components",
"out": "./stories",
"matchIcons": true,
"preferIcons": ["lucide", "tabler"]
},
"lint": {
"preset": "recommended"
},
"format": {
"pretty": true,
"semi": false,
"singleQuote": true
}
}
CLI 参数会覆盖配置值。
适用于 AI 助手
包含 SKILL.md — Claude Code、Cursor 及其他助手的参考文档。
工作原理
┌─────────────┐ ┌─────────────┐
│ 终端 │────CDP────▶│ Figma │
│ figma-use │ 端口 9222 │ │
└─────────────┘ └─────────────┘
figma-use 通过 Chrome 开发者工具协议 (CDP) 直接与 Figma 通信。只需使用 --remote-debugging-port=9222 启动 Figma,即可准备就绪。
命令通过 Figma 的 JavaScript 上下文中 Runtime.evaluate 执行,可完全访问插件 API。
守护进程
可选的守护进程会保持 CDP 连接处于活跃状态,以加快连续命令的执行速度:
figma-use daemon start # 后台守护进程(命令速度提升约 25%)
figma-use daemon stop # 停止守护进程
figma-use daemon status # 检查是否正在运行
管道传输
对于无法获得管理员权限进行补丁的 Figma 126+ 版本,守护进程可以使用 --remote-debugging-pipe 参数启动 Figma:
figma-use daemon start --pipe # 启动 Figma,并通过标准输入输出管道连接
可通过设置 FIGMA_BIN 来指定自定义的二进制文件路径。守护进程会维持管道连接,所有命令都会自动通过该连接路由。
许可证
MIT
版本历史
v0.13.12026/02/22v0.13.02026/02/22v0.12.12026/02/19v0.12.02026/02/19v0.11.32026/02/03v0.11.22026/01/30v0.11.12026/01/29v0.11.02026/01/23v0.10.12026/01/21v0.10.02026/01/21v0.9.22026/01/21v0.9.02026/01/21v0.8.02026/01/20v0.7.12026/01/19v0.7.02026/01/19v0.6.32026/01/18v0.6.22026/01/18v0.6.12026/01/18v0.6.02026/01/18v0.5.92026/01/18常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备


