figjam-plugin
FigJam plugin development workflow. Use when working on plugin code (code.ts, ui.ts), debugging WebSocket communication, or building the plugin.
$ Installieren
git clone https://github.com/7nohe/figram /tmp/figram && cp -r /tmp/figram/.claude/skills/figjam-plugin ~/.claude/skills/figram// tip: Run this command in your terminal to install the skill
SKILL.md
name: figjam-plugin description: FigJam plugin development workflow. Use when working on plugin code (code.ts, ui.ts), debugging WebSocket communication, or building the plugin.
FigJam Plugin Development
Architecture
Two-thread model:
-
packages/plugin/src/code.ts- Main thread (Figma API, renderer)- NO browser APIs (window, document, fetch)
- Access to figma.* API
- Renders nodes/edges to FigJam canvas
-
packages/plugin/src/ui.ts- UI iframe (WebSocket client)- Browser APIs available
- Manages WebSocket connection to CLI
- Handles connection UI
Communication Flow
CLI (serve) ââ WebSocket ââ Plugin UI (ui.ts) ââ postMessage ââ Plugin Main (code.ts)
JSON Import (UI)
- Accepts DSL JSON (nodes as array) or IR JSON (nodes as object)
- Validates with
@figram/coreand normalizes to IR before posting to main thread - Validation errors are surfaced in the UI alert with path/message details
Build
cd packages/plugin && bun run build
Output: packages/plugin/dist/ (code.js, ui.html)
Import Plugin
- Open Figma Desktop
- Menu â Plugins â Development â Import plugin from manifest
- Select
packages/plugin/manifest.json
Debugging
- UI errors: Browser DevTools console (right-click plugin UI â Inspect)
- Main thread errors: Figma DevTools (Menu â Plugins â Development â Open console)
- WebSocket issues: Check UI console for connection status
Key Files
manifest.json- Plugin configurationsrc/code.ts- Canvas rendering logicsrc/ui.ts- WebSocket client and connection UIsrc/ui.html- UI template (bundled by build)src/icons/- AWS service icons
