Scripting
There is no plugin API. The editor reloads files changed on disk, so a script can work alongside it.
| Status | No in-editor scripting; the file-watching path works today |
|---|---|
| Stability | The 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.
| File watching | The editor reloads sources changed on disk. Run any script you like against the UFO and the change appears. |
|---|---|
| runebender-core | The 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
- Keep the editor open on the designspace.
- Run your script over the UFO.
- 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.