Skip to content

Native JavaScript APIs

OpenPencil's native APIs are the ordinary JavaScript libraries used by the editor itself. There is no separate RPC-style authoring language or parallel agent implementation.

ResponsibilityPublic entry pointStart here
Document nodes, hierarchy, variables, instances, geometry@open-pencil/scene-graphScene Graph
Editing actions, selection, undo, component properties, events@open-pencil/core/editorcreateEditor() and its inferred Editor type; custom editor shell
Declarative scene construction@open-pencil/core/design-jsxJSX guide and authoring reference
Layout computation@open-pencil/core/layoutcomputeLayout(graph, frameId) and computeAllLayouts(graph, scopeId)
Figma-compatible scripting@open-pencil/core/figma-apiCompatibility
Schema-backed agent operations@open-pencil/core/toolsMCP

Use the owning package's public exports, not workspace source paths. Package declarations describe the current callable signatures; the table above identifies ownership rather than duplicating every method.

Mutation boundaries

Graph operations are low-level document mutations. They do not automatically constitute an editor undo transaction. Use editor actions for interactive edits that need selection, undo, component synchronization, and layout orchestration. Direct layout functions compute geometry; they are not replacements for editor actions.

Agent access

Library imports, agent tools, and the eval scripting environment are distinct entry points. The installed execution environment determines which objects and functions an agent can access. Do not assume graph, editor, or arbitrary package imports are available in eval simply because those APIs exist in the library. Existing Figma-compatible scripting remains supported.

Shared authoring guidance is maintained in Core and composed into chat/codegen prompts and the installable skill. Examples belong with their implementation and should be exercised against the public API.

Released under the MIT License.