原生 Figma 画布工具,供 DeepSeek Harness 使用:可编辑图层、设计上下文、组件、变量、素材和截图。原生 DSH Figma 插件。
47/100
综合分
30
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Duoasa/DSH-to-Figma该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-to-figma(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 08:33:30
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 35 处,展示前 33 条)
- 读取本地文件index.mjs:36
const path=join(skillDir,'SKILL.md'),raw=await readFile(path,'utf8'),front=/^--- ([ ]*?) --- /.exec(raw) - 读取本地文件index.mjs:74
const signal=AbortSignal.any([exec.signal,controller.signal,shutdown.signal]),workspace=await realpath(session.header.cwd) - 读取本地文件index.mjs:91
register('figma_read_guide','Read a focused local Figma workflow guide.',objectSchema({topic:{type:'string',enum:guides}},['topic']),async args=>{if(! - 删除本地文件cli.mjs:21
if(opts.command==='logout'){await rm(join(await privateDirectory(home),'oauth.json'),{force:true});console.log('Local Figma OAuth credentials removed. - 执行外部命令来自配置/变量cli.mjs:24
const child=spawnSync(opts.cli??'dsh',args,{stdio:'inherit',env:{...process.env,DSH_HOME:home},shell:false}) - 写入本地文件lib/storage.mjs:7
await mkdir(directory, { recursive: true, mode: 0o700 }) - 读取本地文件lib/storage.mjs:8
if ((await lstat(directory)).isSymbolicLink()) throw new Error('Figma state directory cannot be a symlink') - 写入本地文件lib/storage.mjs:9
await chmod(directory, 0o700) - 读取本地文件lib/storage.mjs:13
try { return JSON.parse(await readFile(path, 'utf8')) } catch (e) { if (e.code === 'ENOENT') return fallback; throw e } - 写入本地文件lib/storage.mjs:20
await rename(temporary, path) - 删除本地文件lib/storage.mjs:21
} finally { await rm(temporary, { force: true }) } - 读取本地文件lib/storage.mjs:29
const info = await lstat(path) - 写入本地文件lib/storage.mjs:31
await chmod(path, 0o600) - 读取本地文件lib/storage.mjs:32
const token = (await readFile(path, 'utf8')).trim() - 读取本地文件lib/assets.mjs:23
const root=await realpath(workspace), assets=[]; let total=0 - 读取本地文件lib/assets.mjs:28
const canonical=await realpath(candidate) - 读取本地文件lib/assets.mjs:32
try { const info=await file.stat(); if(!info.isFile()||info.size>LIMIT-total)throw new Error('Asset batch exceeds 12 MiB'); bytes=await file.readFile( - 读取本地文件lib/assets.mjs:54
const root=await realpath(workspace) - 写入本地文件lib/assets.mjs:57
directory=join(directory,name);await mkdir(directory,{mode:0o700}).catch(e=>{if(e.code!=='EEXIST')throw e}) - 读取本地文件lib/assets.mjs:58
if((await lstat(directory)).isSymbolicLink()||await realpath(directory)!==directory)throw new Error('Asset output directory cannot be a symlink') - 读取本地文件lib/assets.mjs:58
if((await lstat(directory)).isSymbolicLink()||await realpath(directory)!==directory)throw new Error('Asset output directory cannot be a symlink') - 发起网络请求lib/official.mjs:15
fetch:remote?oauthFetch:async(target,init)=>{if(new URL(target).origin!==new URL(url).origin)throw new Error('Unexpected desktop endpoint');return fet - 读取本地文件lib/companion.mjs:11
const pkg=JSON.parse(await readFile(join(root,'package.json'),'utf8')) - 读取本地文件lib/companion.mjs:12
const manifest=JSON.parse(await readFile(join(root,'companion/manifest.json'),'utf8')) - 读取本地文件lib/companion.mjs:16
const code=`globalThis.DSH_FIGMA_BOOTSTRAP = ${JSON.stringify(bootstrap)};\n`+await readFile(join(root,'companion/code.js'),'utf8') - 读取本地文件lib/companion.mjs:20
'ui.html':await readFile(join(root,'companion/ui.html'),'utf8'), - 读取本地文件lib/companion.mjs:22
'LICENSE':await readFile(join(root,'LICENSE'),'utf8'), - 读取本地文件lib/companion.mjs:23
'FEATHER-LICENSE':await readFile(join(root,'assets/companion/FEATHER-LICENSE'),'utf8'), - 写入本地文件lib/companion.mjs:26
async function safeDirectory(path){await mkdir(path,{recursive:true,mode:0o700});const stat=await lstat(path);if(!stat.isDirectory()||stat.isSymbolicL - 写入本地文件lib/companion.mjs:26
async function safeDirectory(path){await mkdir(path,{recursive:true,mode:0o700});const stat=await lstat(path);if(!stat.isDirectory()||stat.isSymbolicL - 写入本地文件lib/companion.mjs:30
try{const file=await open(temp,'wx',0o600);try{await file.writeFile(value);await file.sync()}finally{await file.close()}await rename(temp,path)}finall - 删除本地文件lib/companion.mjs:30
try{const file=await open(temp,'wx',0o600);try{await file.writeFile(value);await file.sync()}finally{await file.close()}await rename(temp,path)}finall - 发起网络请求lib/oauth.mjs:7
export const oauthFetch=async(url,init={})=>{trusted(typeof url==='string'||url instanceof URL?url:url.url);return fetch(url,{...init,redirect:'error'
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/schemastery@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-mcp-client@deepseek-ai/dsh-skill@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-session-projection@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/dsh-agent@deepseek-ai/dsh-attachment-local给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成DSH to Figma
DSH to Figma
用自然语言读懂、创建和修改 Figma 设计。
连接 DeepSeek Harness 与 Figma,把需求、参考图和设计稿变成可以继续编辑的画布。
简体中文 · English · 日本語
提示词安装 · 能做什么 · 实机演示 · 手动安装
本地模式不消耗官方 Figma MCP 调用额度。 DSH 会自动生成本机已配对的 Figma 插件,首次导入一次,之后运行即可连接。
安装:把下面这段话发给 DSH
推荐直接让 DSH 完成下载、校验和安装。打开当前使用的 DSH,复制发送:
帮我安装或升级 DSH to Figma: https://github.com/Duoasa/DSH-to-Figma
请按仓库最新 README 完成以下操作:
1. 从当前宿主配置和运行环境确认对应的 CLI、profile 与 DSH_HOME,使用这个宿主的 CLI。保留其他插件和现有配置;只有无法确定安装目标时才问我。
2. 从 GitHub 最新正式 Release 获取 dsh-to-figma-<版本>.tgz 和 SHA256SUMS,核对 SHA-256。使用 Release 安装包,不要猜测 npm 包版本,也不要把独立 Figma ZIP 当成 DSH 安装包。
展开完整文档(README 剩余 1 节)
DSH to Figma DSH to Figma 用自然语言读懂、创建和修改 Figma 设计。 连接 DeepSeek Harness 与 Figma,把需求、参考图和设计稿变成可以继续编辑的画布。 简体中文 · English · 日本語 提示词安装 · 能做什么 · 实机演示 · 手动安装 本地模式不消耗官方 Figma MCP 调用额度。 DSH 会自动生成本机已配对的 Figma 插件,首次导入一次,之后运行即可连接。 安装:把下面这段话发给 DSH 推荐直接让 DSH 完成下载、校验和安装。打开当前使用的 DSH,复制发送: 帮我安装或升级 DSH to Figma: https://github.com/Duoasa/DSH-to-Figma 请按仓库最新 README 完成以下操作: 1. 从当前宿主配置和运行环境确认对应的 CLI、profile 与 DSH_HOME,使用这个宿主的 CLI。保留其他插件和现有配置;只有无法确定安装目标时才问我。 2. 从 GitHub 最新正式 Release 获取 dsh-to-figma-<版本>.tgz 和 SHA256SUMS,核对 SHA-256。使用 Release 安装包,不要猜测 npm 包版本,也不要把独立 Figma ZIP 当成 DSH 安装包。 3. 通过宿主原生 plugin --profile <当前 profile> add 命令安装或升级,使用 local 模式。若已有旧版,原位升级;仅在确认有重复入口时处理重复项。 4. 检查插件组件是否运行、工具是否可用。需要重启宿主时告诉我,重启后继续完成连接。 5. 调用 figma_setup,给我本机已配对插件 manifest.json 的完整路径,指导我在 Figma 桌面端导入并运行 DSH to Figma · Local。已导入过则更新原目录,关闭旧插件后重新运行。不要显示配对密钥或上传已配对文件。 6. 等我打开目标 Figma 文件并运行插件后,调用 figma_status,确认两端版本和连接状态。多文件时确认目标,再读取我选中的画板并返回截图;这一步不修改已有设计。 首次连接时,在 Figma 桌面端选择 Plugins → Development → Import plugin from manifest…,导入 DSH 给出的 manifest.json。在目标文件中运行 DSH to Figma · Local,保持插件窗口打开即可。 通常路径为 ~/.dsh/figma/companion/manifest.json,以 figma_setup 返回的路径为准。升级后,两端插件需要同步更新;保留原导入目录,关闭并重新运行 Figma 插件。 能做什么 | 需求 | 使用方式 | | 读懂已有设计 | 读取选中画板、图层结构、文字、尺寸、布局、样式与截图 | | 从需求或参考图开始 | 创建原生画板、文字、矢量和自动布局,继续细化设计 | | 调整与批量修改 | 修改文案、颜色、字号、间距、圆角和布局,按名称、属性或层级定位图层 | | 组件与设计系统 | 创建和修改组件、变体、实例属性、样式、变量、模式及别名,绑定设计变量 | | 设计稿到代码 | 让 DSH 结合画板信息、素材和当前项目生成或调整前端页面 | | 素材交付 | 导入图片和 SVG,导出 PNG、JPG、SVG、PDF,保存脚本生成的文件 | | FigJam、Slides 与交互 | 结合目标文件类型,组织图形、连接线、演示内容和原型交互 | 你可以直接这样说: 读取选中的设置页,把主按钮统一为 40px 高、8px 圆角,调整后给我截图。 复用已有颜色变量和按钮组件,新建一个浅色仪表盘,用自动布局组织内容。 为这个按钮补充悬停和禁用状态,并把颜色绑定到对应的语义变量。 参考这张截图,在新画板中重建界面,文字和布局保留为可编辑图层。 读取这个画板,在当前项目中实现页面,复用项目已有组件,并把所需素材导出到资源目录。 插件负责连接画布与工具,具体设计方案由你使用的模型结合需求完成。可以继续通过对话修改,也可以回到 Figma 手动调整。 实机演示 下面是一组连续操作:读取现有深色界面,在新画板中生成浅色版,再继续探索终端风格。截图来自 2026 年 10 月 19 日的实际使用。 1. 读取选中的画板 现在能看到我选中的画板吗? DSH 返回画板名称、节点 ID、1440 × 900 的尺寸、图层结构和截图,确认接下来操作的目标。 DSH 读取选中画板并返回结构与截图 2. 保留原稿,新建浅色版本 把这个 UI 改成浅色模式,放在一个新画板里。 深色原稿保留,浅色版放到独立画板。Figma 左侧仍能看到文字、侧边栏、消息区等图层,可以继续选择和编辑。 Figma 中并列保留的深色原稿与浅色改版 查看 DSH 中的指令与返回结果 在 DSH 对话中生成浅色版本 3. 继续探索终端风格 给这个浅色模式的 UI 改成终端风格的设计,放在一个新的画板。 在新的画板中调整为深色背景、绿色强调色和等宽文字,保留之前的版本,方便来回比较。 Figma 中的终端风格设计与可编辑图层 查看 DSH 中的指令与返回结果 在 DSH 对话中继续生成终端风格版本 手动安装 从 最新 Release 下载 DSH 安装包与 SHA256SUMS,校验后使用当前宿主的 CLI 安装。 macOS DSH Desktop: "/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \ plugin --profile desktop add "file:/绝对路径/dsh-to-figma-0.3.0.tgz" 其他 DSH 宿主: dsh plugin --profile <你的-profile> add "file:/绝对路径/dsh-to-figma-0.3.0.tgz" 把路径和 profile 替换为实际值。桌面版优先使用应用自带 CLI,避免调用另一份旧版全局 dsh。安装后在插件面板确认 DSH to Figma → 运行中,再让 DSH 调用 figma_setup 完成配对。 DSH 会生成已经配对的 Figma 插件,日常安装不需要额外下载 ZIP。Release 中的 DSH-to-Figma-companion-0.3.0.zip 是手动配对备用包。DSH 在本机生成的已配对目录与 ZIP 含配对凭证,请保留在本机;Release 中的通用 ZIP 不含凭证。 连接与配置 默认使用 local 模式:DSH 与 Figma 配套插件通过本机服务连接。单文件连接后自动选用,多文件时明确选择操作目标。 | 配置项 | 默认值 | 用途 | | backend | local | 选择 local、desktop 或 remote | | bridgePort | 3055 | 本地连接端口 | | toolCallTimeoutMs | 120000 | 单次工具调用超时,单位毫秒 | | desktopServerUrl | http://127.0.0.1:3845/mcp | 桌面 MCP 地址 | | oauthClientId | 空 | 远程登录所需的客户端配置 | 通过宿主插件管理器调整配置。详细接入与配置说明。 如果升级后未发现工具,先确认正在使用正确的宿主和 profile,检查插件面板,再重载或重启 DSH。Figma 端也要关闭旧插件后重新运行。反馈问题时请附上两端版本和错误信息。 开发与贡献 npm ci --ignore-scripts npm run test:all npm run package:companion npm pack --ignore-scripts 源码包括 DSH 插件入口、连接桥接、Figma companion 和工作流 Skill。欢迎提交改进建议或可复现的问题。 感谢 heeq666 与 miztizm 对宿主兼容性的反馈和贡献。 基于 DeepSeek Harness、Figma Plugin API 和 Model Context Protocol SDK 构建。 MIT · Copyright © 2026 Duoasa.
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Duoasa/DSH-to-Figma
原生 Figma 画布工具,供 DeepSeek Harness 使用:可编辑图层、设计上下文、组件、变量、素材和截图。原生 DSH Figma 插件。
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,173已汉化DeepSeek 客户端
74.4
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,197已汉化DSH
71.7
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,308已汉化DSH
71.3
智能体运行框架路由HarnessRouter/harnessrouter
智能体运行框架的统一接口。
★ 3,897已汉化DSH
71.2