# Runebender > Runebender is a free, open-source font editor for UFO and designspace sources, built on the Linebender ecosystem of Rust crates. A headless core does the font work, and a GPUI front-end runs both in the browser as WebAssembly and as a native application from the same code. This site is alpha documentation. The editor changes quickly, so treat these pages as an orientation map rather than a stable API reference, and verify behaviour against the source repository. ## Canonical Sources - [runebender-gpui](https://github.com/eliheuer/runebender-gpui): the editor. Browser and native from one codebase. - [runebender-core](https://github.com/eliheuer/runebender-core): the shared headless library. Editing model, shaping, measurement, curve analysis. - [runebender-xilem](https://github.com/eliheuer/runebender-xilem): the same editor on Xilem, the Linebender UI stack. - [runebender-druid](https://github.com/linebender/runebender): the original implementation, kept as project history. - [font-ml](https://github.com/eliheuer/font-ml): a Rust library and CLI for running machine-learning models on font sources. Built to be driven by agents as well as people. ## Start Here - [Documentation map](https://runebender.org/docs): every page, grouped. - [Install](https://runebender.org/docs/install.html): run it in the browser, or build the native application with cargo. - [Opening and saving](https://runebender.org/docs/opening.html): UFO, designspace, .glyphs conversion, compiled font import, file watching. - [Architecture](https://runebender.org/docs/architecture.html): one headless core (runebender-core) plus interchangeable front-ends (gpui, xilem, web). The rule is that anything changing a font lives in core, so it can be tested without a window and reused by every shell. - [Concepts](https://runebender.org/docs/concepts.html): sources, the em and units, outlines, interpolation compatibility, axes, shaping, composites. - [The interface](https://runebender.org/docs/interface.html): the grid view, the editor view, and every panel. ## Editing - [Tools](https://runebender.org/docs/tools.html): select, pen, hyperbezier pen, shapes, knife, measure, text, preview. - [Glyphs](https://runebender.org/docs/glyphs.html): add, rename, encode, group, remove; images and the background layer. - [Paths and filters](https://runebender.org/docs/paths.html): cleanup, booleans, transforms, curve quality, curve conversion, filters. - [Components and anchors](https://runebender.org/docs/components.html): composites, live auto-alignment, anchor editing. - [Masters and interpolation](https://runebender.org/docs/masters.html): designspace masters, axis sliders, instances, avar mappings, reinterpolation, intermediate layers, interpolation timing, shape switches, smart components, masks. - [Spacing and kerning](https://runebender.org/docs/spacing.html): widths, sidebearings, metric keys, kerning by dragging, groups, the kerning table. - [Feature code](https://runebender.org/docs/features.html): the features.fea editor, and generation of init/medi/fina, curs, mark, mkmk, ccmp, liga, and GDEF carets. - [Color fonts](https://runebender.org/docs/color.html): CPAL palettes, layers, COLRv0 and v1, gradients. - [Text and shaping](https://runebender.org/docs/text.html): editing in text context, the shaping inspector, bidirectional carets, cursive joining, script and language overrides. - [Font info](https://runebender.org/docs/font-info.html): names, vertical metrics, and PostScript hinting values. - [Checking a font](https://runebender.org/docs/checking.html): compare masters, measure stems, verify joining and curvature. ## AI - [Agents](https://runebender.org/docs/agents.html): how an AI agent works with Runebender. The seam is the filesystem: the agent edits UFO sources, the editor reloads them. No plugin API, no key in the application, no model service called by the editor. - [Local models](https://runebender.org/docs/local-models.html): running a machine-learning model on your own machine over your own sources. Experimental; one job so far, proposing a heavier master from a lighter one, and often wrong. ## Learn - [Draw a glyph](https://runebender.org/docs/tutorial-first-glyph.html): a tutorial from an empty font to a saved, spaced letter. - [Workflows](https://runebender.org/docs/workflows.html): accented glyphs, monoline drawing, adding a weight, spacing and kerning, starting an Arabic font, tracing, variable fonts, scripting alongside the editor. ## Reference - [Shortcuts](https://runebender.org/docs/shortcuts.html): every keyboard command. - [Configuration](https://runebender.org/docs/configuration.html): $XDG_CONFIG_HOME/runebender/config.toml sets `theme`, `models` and `journal`. Environment beats the file, which beats the default. A desktop that wants Runebender to follow its theme writes this file; there is no desktop-specific code. - [Themes](https://runebender.org/docs/themes.html): the OKLCH token file shared by every Runebender editor. A theme decides its greys, its corner radii and rule weights, and how a glyph mark is drawn. Themes are compiled in; a custom one means editing the token file and rebuilding. - [File format](https://runebender.org/docs/format.html): the UFO data Runebender reads and writes, including its own namespaced keys. - [Exporting](https://runebender.org/docs/exporting.html): build scripts take precedence, otherwise fontc. - [Troubleshooting](https://runebender.org/docs/troubleshooting.html): build, open, interpolation, joining, and browser-build limits. - [Scripting](https://runebender.org/docs/scripting.html): no plugin API; file watching and the core crate are the two paths. - [FAQ](https://runebender.org/docs/faq.html): short answers about the project, formats, running it, and drawing. - [Development](https://runebender.org/docs/development.html): build from source, work on core alongside, build the wasm bundle. - [Code layout](https://runebender.org/docs/code-layout.html): the reference for how the code is organized. Core modules by concern, the document layer (Master, Project), the editor's files, tests and fixtures, conventions, the CI gate, what is still out of place, and the planned split into a workspace of crates. - [Glossary](https://runebender.org/docs/glossary.html): terms as Runebender uses them. ## Command Line Entry points usable without a graphical session, for scripted and agent-driven font work. - `runebender-gpui path/to/Font.designspace` opens a source. The editor reloads files changed on disk, so a script can edit sources while a session is open. - `font-ml models