Skip to content

Skripting

open-pencil eval bietet dir die vollständige Figma Plugin API im Terminal. Knoten lesen, Eigenschaften ändern, Formen erstellen — und Änderungen zurück in die Datei schreiben.

Grundlegende Verwendung

sh
open-pencil eval design.fig -c "figma.currentPage.children.length"

Das -c-Flag nimmt JavaScript entgegen. Das figma-Global funktioniert wie die Figma Plugin API.

Knoten abfragen

sh
open-pencil eval design.fig -c "
  figma.currentPage.findAll(n => n.type === 'FRAME' && n.name.includes('Button'))
    .map(b => ({ id: b.id, name: b.name, w: b.width, h: b.height }))
"

Bearbeiten und speichern

sh
open-pencil eval design.fig -c "
  figma.currentPage.children.forEach(n => n.opacity = 0.5)
" -w

-w schreibt die Änderungen zurück in die Eingabedatei. Verwende -o output.fig, um stattdessen in eine andere Datei zu schreiben.

Von Stdin lesen

Für längere Skripte:

sh
cat transform.js | open-pencil eval design.fig --stdin -w

Live-App-Modus

Lass die Datei weg, um gegen die laufende Desktop-App auszuführen:

sh
open-pencil eval -c "figma.currentPage.name"

Verfügbare API

Das figma-Objekt unterstützt:

  • figma.currentPage — die aktive Seite
  • figma.root — das Dokumentwurzel-Element
  • figma.createFrame(), figma.createRectangle(), figma.createEllipse(), figma.createText(), etc.
  • .findAll(), .findOne() — Nachkommen durchsuchen
  • .appendChild(), .insertChild() — Baummanipulation
  • Alle Eigenschafts-Setter: .fills, .strokes, .effects, .opacity, .cornerRadius, .layoutMode, .itemSpacing, etc.

Dies ist dieselbe API, die Figma-Plugins verwenden, sodass bestehendes Wissen und Code-Snippets direkt übertragbar sind.

JSON-Ausgabe

sh
open-pencil eval design.fig -c "..." --json

Released under the MIT License.