| name | draw-your-font |
| description | Turn a handwriting photo into an installable TTF font. |
| version | 0.1.0 |
| author | Danilo Znamerovszkij (https://github.com/danilo-znamerovszkij/draw-your-font), ported by Hermes Agent |
| license | MIT |
| platforms | ["linux","macos","windows"] |
| required_commands | ["node","npx"] |
| metadata | {"hermes":{"tags":["font","handwriting","typography","ttf","woff","vision","creative"],"category":"creative","homepage":"https://github.com/danilo-znamerovszkij/draw-your-font","related_skills":["pixel-art"]}} |
draw-your-font
Photo of handwritten letters in → installable font out. You do the seeing
(find and label letters, judge quality); the CLI does all geometry (trace,
metrics, font assembly). Never edit SVG paths or coordinates yourself.
Setup in Hermes (once per session)
The CLI is the pinned npm package draw-your-font@0.1.0 — run it via npx (Node ≥ 18 required, no global install needed):
npx -y draw-your-font@0.1.0 --help
Wherever the examples below show $DYF, use npx -y draw-your-font@0.1.0. Shell variables do not persist between tool calls, so paste the full command each time. Everything runs locally; the user's handwriting never leaves the machine.
Photos arrive in Hermes either as a file path in the message or via the gateway image cache — use the actual file path with the CLI. When a photo lands in the conversation with no path, ask the user for the file (the CLI needs a real file, not your memory of the image).
Do the visual steps (contact sheets, previews, glyph sheets) by loading the PNGs with vision_analyze.
Decide the flow
- User has no photo yet → offer the template: print, write, photograph.
- User shares photo(s) of handwriting → main flow below.
- User pasted an image but there is no file path → you can see it, but the
CLI needs a file. Ask them to drag the image file into the terminal (that
inserts its path) or give the path directly. Do not proceed from memory.
- User wants changes to a font built this session → Refine section.
Template flow (best quality)
$DYF template -o template.pdf --charset minimal
Tell the user: print it, write one character per box with a dark pen
(0.5 mm+), keep the letter sitting on the solid line, then photograph each
page from above in good light and share the file paths. The grid prints in
light grey and vanishes during processing - only their ink survives.
Main flow: photo(s) → font
1. Segment. Works for template pages and freeform photos alike:
$DYF segment photo1.jpg photo2.jpg -d work
2. Look, then label. Load work/contact-1.png with vision_analyze (one per photo): every
detected blob is numbered. This is the step where your eyes matter - check: