What it does
FontParts provides Python objects for creating and editing fonts during type development. Its shared interface works across supported editors, with an included implementation for scripts that run outside an editor.
A script using FontParts needs an implementation beneath its common interface. The included fontshell supplies command-line access through defcon, while editor integrations provide their own environment objects. This lets a foundry reuse much of its repetitive font-development logic between tools.
Install the package with pip install fontParts in Python 3.10 or later. The Getting Started example imports OpenFont from fontParts.world, opens a UFO font source, and adds ten units to both sidebearings of every glyph. That is a concrete starting point for a spacing script.
Host behavior still matters. FontParts supplies shared tests, but each editor environment needs its own test setup. It replaces RoboFab without preserving every part of that older interface, and some converted examples remain unfinished. The MIT licence permits free use and modification, including in commercial work.
Strengths
- A shared API supports scripts across multiple font-development environments.
- The included fontshell works from the command line without a font editor.
Watch out for
- RoboFab scripts are not all compatible, and some converted examples need further work.
- Editor integrations need checks in their own host environment.
Best for
- Type designers writing reusable Python scripts
Sources
- FontParts README (Oct 27, 2026)
- FontParts MIT License (Oct 27, 2026)
- Getting Started: FontParts (Oct 27, 2026)
