Skip to main content
Glama
sevenyang129

flyu-design

by sevenyang129

flyu

Lokaler Client für Design-Dateien: parst Sketch-/Figma-Designvorlagen in ein einheitliches DSL v3 und stellt sie über eingebettetes MCP (HTTP, startet mit der App) für Cursor / Claude bereit, damit eine KI die Designvorlagen direkt ansehen, Code schreiben, Änderungen vornehmen und Bild-Assets exportieren kann.

Demo

https://github.com/user-attachments/assets/51cc3c6-8413-4c3b-8bfd-7fd135e26a3c

Lizenz: MIT. Hinweise zu Drittanbietern: NOTICE.md. Sicherheitsmeldungen: SECURITY.md. Beitrag leisten: CONTRIBUTING.md.

Die Dateiformate und Marken von Sketch und Figma gehören den jeweiligen Rechteinhabern. Dieses Projekt parser die importierte .sketchdsock / .fig**auf dem lokalen Rechner des Benutzer**, ohne Herstellerlizenz und ohne Jinspruch auf eine Verbindung mit Figma, Inc. oder Sketch B.V. Bitte respectt die Nutzungsbedingungen und importiere nur design-Dateien, die du vetwenden darfst. Die Einllegung für.figDecodierung findst du incrates/fig-kiwi-rs`.

Benutzerdokumentation: docs/user-guide.md ( installation / Funktionsland / Formulierungen / Fehllerbehebung) ; Details zu den MCP-Werkzeugen: docs/writ-tools-guarde.md.

Related MCP server: ai-ready-ds-auditor

Entwicklung

pnpm install        # 安装依赖(postinstall 会把 better-sqlite3 编到 Electron ABI)
pnpm dev            # 启动 Electron + HMR
pnpm typecheck      # 类型检查(main + renderer + mcp + tests)
pnpm lint           # ESLint
pnpm test           # 单元 + 契约测试(tsx --test)
pnpm test:visual    # 渲染像素回归(改 import/render 后必跑)
pnpm build          # 构建到 out/(含 main/preload/renderer/mcp)
pnpm dist           # 打本机未签名 mac 双架构(arm64 + x64).dmg → release/

paketieren (macOS lokal, ungetignet)

pnpm dist           # build + electron-builder → release/flyu-*-mac-arm64.dmg + flyu-*-mac-x64.dmg
pnpm dist:dir       # 只打 arm64 .app 到 release/mac-arm64/(便于调试)

Zwei-Architekturen: electron-builder paetert pro Zieelarchitektur; better-sqlite3 wird für gadere Archivterktur neuen kom guile (Cross-Kompile x64 auf ARM64-Host verifiziert). Die Artefake sind unsigned Pakete (identity: null); nach der Installation. Keiterationet wird die App "非鱼". Wenn Gatekeeper beim lokalen Öfffn verhindern: Rechtsklick → Öffnen. Nicht test damage with pnpm dev gestarten (the singleton locks the second process exits immediately).

MCP Server

Zwei Anbindungsmethoden, gleiche tools/prompts (29 Tools + 4 Unterschrecks):

  • HTTP (empfohlen): Der Klient enthält einen eingebetteten Streamable-HTTP-Server, startet mit der App. Einstellungen → MCP-Netzungsconfigration → Kopieren (URL + Bearer token). Default Port spa=332677 und bleibt gespeichert, wird nur bei Belegung zeweit we alter; Token wird in userData/mcp-token (0600) individualised, z.B.

  • stdio (Alternative, lokale Node erforderlich): node out/mcp/server.js. Voraussetzung ist eine vorhandene Datenbank (App seit minmindestens einmal einmal).

Bauen des stdio-Einstiegs

pnpm mcp:build      # esbuild 打包到 out/mcp/server.js
pnpm mcp:dev        # tsx 直跑(调试用)

Verifizierung (JSON-RPC unduell)

echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | pnpm mcp:dev

Sollte serverInfo: { name: "flyu-design", "version": "1.0.0" } zurück.

Fallstricke bei der lokalen macOS-Entwidlung (twoch ABIs + Code-Signatrikt)

  1. ABI-Umstellung: better-sqlite3 kann zu jedem Zeitpunkt für die AAA AA kompiliert werden.

    • Für Electron: pnpm-rebuild (via electron-rebuild)

    • Für direktes Node (MCP-Debugging / tsx-Test): cd node_modules/.pnpm/better-sqlite3@*/node_modules/better-sqlite3k && ./node_modules/.bin/prebuild-install/r node

    • Syptome: mit falschem Runtime kommt z.B. NODEMODULE_VERSION 130 vs 190.

  2. Code-Signatur: Das Prebuilt .node von npm wird auf macOS 26+ von AMFI mit alla „Invalid-Page” beendet (SIGKILL, exit 137, stderr leer). behebung:

codesign --remove-signature node_modules/.pnpm/better-sqlite3@*/node_modules/better-sqlite3/build/Release/better_sqlite3.node
codesign --force --sign -       node_modules/.pnpm/better-sqlite3@*/node_modules/better-sqlite3/build/Release/better_sqlite3.node

Nach jedem prebuild-install erneut aussführen. Später beim Pakten automatisch mit dem electron-builder-Signatur/Hook an.

Verzeichnis

src/
├── main/           Electron 主进程(DB / IPC / 渲染 / 导入导出)
│   ├── import/     双通道导入:sketch-*(.sketch)/ fig-*(.fig 本地,@open-pencil/core)
│   │               + html-to-dsl(HTML 生成)、collect-tokens(共享令牌统计)
│   ├── render/     渲染调度(fig 走 Skia 直渲;sketch 走 DSL→HTML→Chromium)
│   ├── export/     dsl-to-jsx / dsl-to-fig / vector-to-svg / code-snippets / cut-cache
│   ├── tokens/     设计令牌(L1 命名令牌 / L3 组件令牌 / tokenize)
│   ├── db/         SQLite(writers / write-ops / write-docs / restyle / migrations)
│   └── ipc/        渲染进程桥(files / folders / explorer / mcp-config / library)
├── preload/        contextBridge 桥
├── renderer/       React + AntD UI
├── mcp/            MCP Server:server.ts(stdio)+ tools.ts(聚合器)+ tools-*.ts(8 个域模块)
├── shared/         三端共享(DSL v3 类型 / IPC 通道 / 错误码 / 路径)
└── native/         fig-kiwi WASM(由 crates/ 编译)

crates/             Rust 原生(.fig Kiwi 解码)
resources/          打包图标 icon.png / icon.icns
docs/               用户教程 / 写能力设计与工具文档
scripts/            正式脚本(icons / wasm / 视觉回归)
tests/              单元与契约测试

Lokale Laufzeitdaten liegen im Benutzerverzeichnis (~/Library/Application Support/flyu) und natürlich in .tokensave/ (gitignored); Build- Artefakte in out/.

Aktueller Stand

  • Zwei-Kanal-Import: .sketch / .fig digital (@copy (one-core)

  • vereinheitlichtes DSL v3 + SQLite-Ablage + Version-Baudio

  • Rendering: fig Skia direkterly; sketch/ai DSL→HTML→Chromium; degraded explicitly reported

  • M24 26 Tools + 4 Prompts (Navigation / Daten / visual / Code / Assets / write operations / semanwik operations)

  • Schreib-Funktion: Ausstellung applyOperations/reful (dryRun) / create_copy /prose_document_layout / file copy

  • export: get_html (self-contained singleton) / get_codex (JSX + Tailwind, vw/remnox) / export_fig (.fig) etc., download_assets (SVG / PNG / original)

  • Design tokens: L1 namens tokens (fig variables/standard quantities, CSS/DTCG export) + L3 component token /oversights (within

  • Windows / Linux - Installer (config)presete, notn) verstatic

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Bidirectional MCP bridge enabling AI assistants to draw UI on Figma canvas and read designs back as structured data or code tokens via localhost, requiring Figma Desktop.
    5
    981 npm
    264
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI IDEs to query Figma design tokens, component specs, and audit issues via MCP tools, without cloud subscriptions.
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    A local MCP server that lets AI assistants inspect, create, and update designs in Figma Desktop through a development plugin, requiring no Figma Personal Access Token or cloud services.
    12
    16 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP-compatible AI clients to read and modify the user's currently open Figma file by executing JavaScript in Figma's sandbox, all through a local bridge with status monitoring, node jumping, and automatic rollback on errors.
    1
    MIT