Repolode
danilo-znamerovszkij

danilo-znamerovszkij/draw-your-font

A Node CLI and Claude Code skill that turns a photo of your handwriting into an installable TTF, WOFF or WOFF2 font.

Open-source alternative to:Calligraphr

Stars
824
Forks
77
Open issues
6
Last commit
3 months ago

What is it?

draw-your-font converts a photo of handwritten letters into a usable font file. You write the alphabet on paper, photograph it, and the tool detects each letter, vectorizes it with potrace, and assembles TTF, WOFF or WOFF2 output. Each glyph is placed in a shared em-square with consistent cap height, x-height and descender depth, so letters such as g and o sit on the baseline correctly rather than looking like cut-out clippings.

It can be used in two ways. As a Claude Code skill, an agent finds and labels the letters in a messy photo, previews the result and accepts refinement requests such as making curves rounder or the strokes bolder. As a standalone npm CLI, you supply the character order yourself with commands for generating a printable template, segmenting photos, building the font and previewing text. The pipeline runs locally with no system dependencies such as FontForge or ImageMagick.

Key features

  • 01Converts photos of handwriting into TTF, WOFF and WOFF2 font files.
  • 02Generates a printable A4 PDF template with minimal or Spanish character sets.
  • 03Detects and segments letters from freeform photos with uneven lighting.
  • 04Offers smoothing and weight adjustments for rounder or bolder glyphs.
  • 05Can output web-ready WOFF2 files and a CSS @font-face snippet.
  • 06Runs locally as pure npm with no FontForge, ImageMagick or potrace binary required.

Use cases

  • Creating a personal handwriting font for notes, slides or design work.
  • Producing a web-ready handwritten font with CSS for a personal website.
  • Prototyping a custom display font from a quick sketch of an alphabet.
  • Building a font inside Claude Code through conversational iteration.

Quick start

  1. 1

    Install the Claude Code skill

    npx skills add danilo-znamerovszkij/draw-your-font
  2. 2

    Build a font from a freeform photo with the CLI

    npx draw-your-font make photo.jpg --chars "ABCabc" --name "My Hand"

Things to know

  • Kerning, ligatures and letter randomization are planned for v2 and not yet available.
  • Best quality requires printing the template and filling it in, rather than using a freeform photo.
  • Using the Claude Code skill requires access to Claude Code.

Topics

FAQ

What is draw-your-font?
A Node CLI and Claude Code skill that turns a photo of your handwriting into an installable TTF, WOFF or WOFF2 font. draw-your-font converts a photo of handwritten letters into a usable font file. You write the alphabet on paper, photograph it, and the tool detects each letter, vectorizes it with potrace, and assembles TTF, WOFF or WOFF2 output. Each glyph is placed in a shared em-square with consistent cap height, x-height and descender depth, so letters such as g and o sit on the baseline correctly rather than looking like cut-out clippings.
Is draw-your-font free to use? What license does it have?
draw-your-font is open source under the MIT license. Check the license terms before using it in commercial products.
Is draw-your-font still maintained?
Updated within 6 months. The last commit to draw-your-font was on Aug 5, 2026.
What can I use draw-your-font for?
Creating a personal handwriting font for notes, slides or design work. Producing a web-ready handwritten font with CSS for a personal website. Prototyping a custom display font from a quick sketch of an alphabet. Building a font inside Claude Code through conversational iteration.
How do I install draw-your-font?
Install the Claude Code skill: npx skills add danilo-znamerovszkij/draw-your-font Build a font from a freeform photo with the CLI: npx draw-your-font make photo.jpg --chars "ABCabc" --name "My Hand"
Where can I get draw-your-font?
The source code and installation instructions are on GitHub: https://github.com/danilo-znamerovszkij/draw-your-font

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects