Scripting

There is no plugin API. The editor reloads files changed on disk, so a script can work alongside it.

StatusNo in-editor scripting; the file-watching path works today
StabilityThe core API is not stable

What Exists

Runebender does not embed a scripting language, and it has no plugin API. Two things stand in for one.

The two paths
File watchingThe editor reloads sources changed on disk. Run any script you like against the UFO and the change appears.
runebender-coreThe editing model as a Rust library, with no interface attached. Build a tool on it.

If you script fonts in Python today, keep doing that. UFO is the interchange, and Runebender is one of the tools around it rather than the centre of the workflow.

Working Alongside a Script

  1. Keep the editor open on the designspace.
  2. Run your script over the UFO.
  3. The editor picks the change up.

This works with anything that writes UFO: fontTools, defcon, ufoLib2, a shell script, another editor.

Two cautions. Save in the editor before running a script, or the reload will discard what you have not written. And keep the source in version control, so a script that goes wrong is one git checkout away from being undone.

Building on the Core

runebender-core is the crate every front-end shares: the editing model, shaping through harfrust, measurement, curve analysis, path operations, and the Glyphs importer. It has no window and no interface.

cargo add --git https://github.com/eliheuer/runebender-core

It is not a stable API. It changes when the editor needs it to, and there are no release notes yet. Pin a revision.

Building a Font

For compiling, use the tools that already do it. Export runs your project’s build-fontc.sh or build.sh if it finds one, and compiles with fontc otherwise, so a project that already builds a specific way keeps building that way. See Exporting.

Models

Running a machine-learning model over a font is a separate path with its own page: see Local Models. It needs no scripting, and the same models run outside the editor through font-ml.

What Is Not Here

Being plain about the gap: there is no equivalent of RoboFont’s extensions, FontForge’s scripting language, or a plugin manager. If you need to automate inside the editor, it is not the right tool yet.