Skip to content
smith font and keyboard build system
Python NSIS Shell Ruby Java C# Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
contrib/rrun Add contrib folder, including rrun Jan 17, 2019
playground Deleting old files as examples have been moved to their own folder. Dec 8, 2017
tests One test for headers. May 12, 2011
utils #987 Jun 18, 2011
vm-install Turned box checking back on. (and update the search URL). Aug 15, 2019
waflib Back to tabs for now. Mar 7, 2019
.gitignore add testFile() to wscript Nov 8, 2018
ChangeLog Fixup mess back to r2690 (aa34df555614) Sep 21, 2011
DEVEL Added missing template. Dec 17, 2017 Update copyright year. May 10, 2018
README.original Add new readme Aug 6, 2015
TODO Fix tests and start support for multiple script Mar 21, 2013
mywaflite Add srcdist for font projects Feb 8, 2011 Dropped extras from Mar 7, 2019 Further py3 fixes. Mar 7, 2019 Further py3 fixes. Mar 7, 2019
wscript Further py3 fixes. Mar 7, 2019


smith is a Python-based framework for building, testing and maintaining WSI (Writing Systems Implementation) components such as fonts and keyboards. It is based on waf. Smith orchestrates and integrates various tools and utilities to make a standards-based open font design and production workflow easier to manage.

Building a font involves numerous steps and various programs, which, if done by hand, would be prohibitively slow. Even working out what those steps are can take a lot of work. Smith uses a dedicated file at the root of the project (the file is python-based) to allow the user to describe how to build the font. By chaining the different build steps intelligently, smith reduces build times to seconds rather than minutes or hours, and makes build, test, fix, repeat cycles very manageable. By making these processes repeatable, including for a number of fonts at the same time, your project can be shared with others simply, or - better yet - it can be included in a CI (Continuous Integration) system. This allows for fonts (and their various source formats) to truly be libre/open source software and developed with open and collaborative methodologies.

Smith is Copyright (c) 2011-2018 SIL International (
and is released under the BSD license.


The manual (including a step-by-step tutorial) is in docs/smith. (to regenerate: cd docs/smith/ && ./


The current VM (Virtual Machine) installation files (using vagrant) are in vm-install.
These files make it easier to use smith (and its various components) on macOS, Windows or Ubuntu.
Simply copy the files to the root of your project and run vagrant up.

You can’t perform that action at this time.