Scripting
Use Python recipes, live MCP tools, saved-source scripts, or the Rust font engine.
| Status | Experimental |
|---|---|
| Stability | Verify live tool schemas with MCP tools/list |
Choose an Automation Surface
| Surface | Use it for |
|---|---|
| Python recipes | Explicit single-source edits and proofs from the native Scripts workflow. |
| Live MCP | Inspecting unsaved editor state, proposals, receipt-backed edits, and proof jobs. |
| Saved-source scripts | Repeatable batch work on UFO and Designspace files. |
| Rust font engine | Purpose-built tools that use the editor’s canonical operations without a window. |
The editor has an optional external Python interpreter for recipes. The editor itself does not require Python, and the subprocess boundary is not an operating-system sandbox. For a guarded live edit, use the receipt and revision rules in MCP.
Saved Sources
A script can write UFO files while the native editor is open. The editor watches files and reloads changes when they do not conflict with unsaved work. Coordinate writes and keep sources in version control. A disk script cannot read an unsaved outline on the canvas; use the live connection for that state.
Current Limits
Python recipes currently mutate one explicit source at a time with bounded guarded operations.
Cross-source and whole-font atomic recipes are not implemented.
Live MCP capabilities differ from saved-source commands, and exact tool availability comes from tools/list in the connected session.