Back to skills
SKILL.md
Figjam Plugin
ASecurityFigJam plugin development workflow. Use when working on plugin code (code.ts, ui.ts), debugging WebSocket communication, or building the plugin.
- 416 stars
- 0 votes
- 0 copies
- 4 views
- Added February 7, 2026
Works with
Security analysis
100/100Pro scans all 2 files and shows the line behind each finding
npx -y skills add aiskillstore/marketplace --skill figjam-plugin --agent claude-codeAre you the author of Figjam Plugin?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/aiskillstore-figjam-plugin)---
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/core` and normalizes to IR before posting to main thread
- Validation errors are surfaced in the UI alert with path/message details
## Build
```bash
cd packages/plugin && bun run build
```
Output: `packages/plugin/dist/` (code.js, ui.html)
## Import Plugin
1. Open Figma Desktop
2. Menu → Plugins → Development → Import plugin from manifest
3. 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 configuration
- `src/code.ts` - Canvas rendering logic
- `src/ui.ts` - WebSocket client and connection UI
- `src/ui.html` - UI template (bundled by build)
- `src/icons/` - AWS service icons
Files in this skill
- SKILL.md
- skill-report.json
Attribution
Comments
Loading comments…