Agent skill

Draw Your Font Handwriting Converter

by danilo-znamerovszkij in danilo-znamerovszkij/draw-your-font

Turns a photo of handwritten letters into an installable TTF, WOFF or WOFF2 font, with the agent labeling letters and judging quality while a local CLI handles all geometry.

MITAuto-check passedMedia & Creative

Install Draw Your Font Handwriting Converter

skills CLI
$ npx skills add danilo-znamerovszkij/draw-your-font --skill draw-your-font -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install danilo-znamerovszkij/draw-your-font draw-your-font --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/danilo-znamerovszkij/draw-your-font.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/draw-your-font .claude/skills/draw-your-font && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
draw-your-font
GitHub stars
813
Token cost
~1.6k tokens
SKILL.md length
847 words
Files
3 (incl. scripts, references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Turns a photo of handwritten letters into an installable TTF, WOFF or WOFF2 font, with the agent labeling letters and judging quality while a local CLI handles all geometry.

  • Turning a photo of your own handwriting into an installable font
  • SKILL.md covers Setup (once per session), Decide the flow, Template flow (best quality) and Main flow: photo(s) → font, plus 3 more sections
  • Runs JavaScript scripts from its folder; calls node and npm
  • Printing a template to fill in and photograph for a font

What it does

The division of labor is explicit: the agent finds and labels letters and judges quality, while the CLI does all tracing, metrics and font assembly, and the skill is clear that SVG paths or coordinates are never edited by hand. A one-time setup step runs a resolver script that prints the exact CLI invocation to use, since shell variables do not persist between tool calls, and the CLI needs Node 18 or newer with everything running locally and nothing uploaded.

For the best result, a printable template lets the user write one character per box in dark ink and photograph each page, which the skill offers when no photo exists yet; freeform photos work too. The main flow segments each photo into numbered character blobs, then the agent reads the resulting contact sheet image and writes a labels.json mapping each blob id to its character, marking junk boxes such as shadows or ruled lines with an empty string, and handling a letter accidentally split across two boxes or two touching letters sharing one box.

A troubleshooting reference and a CLI-resolving script ship with the skill, and it also supports refining a font built earlier in the same session, such as making it smoother or thicker or fixing one letter.

When your agent uses it

  • Turning a photo of your own handwriting into an installable font
  • Printing a template to fill in and photograph for a font
  • Fixing or adjusting a specific letter in a font built earlier in the session

Example prompts

  • “Turn this photo of my handwriting into a font.”
  • “Give me a handwriting font template to print and fill in.”
  • “Make the lowercase g thicker in the font we just made.”

Requirements

  • Node.js 18 or newer

What it can do on your machine

Read from SKILL.md and the folder at commit ef367bb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Draw Your Font Handwriting Converter loads about 1.6k tokens when it runs, and up to ~2.2k if it reads all its reference files. Until then it costs about 127 tokens; SKILL.md has 847 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~127
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from danilo-znamerovszkij/draw-your-font at commit ef367bb, republished under its MIT licence (© danilo-znamerovszkij). 847 words, ~1,639 tokens.

Download SKILL.mdSave it as .claude/skills/draw-your-font/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
draw-your-font
description
Turn a photo of handwriting into a real installable font (TTF/WOFF/WOFF2). Use when the user shares a photo of handwritten letters and wants a font, asks to "make my font", "handwriting font", "turn my handwriting into a font", "font from this photo/image", asks for a handwriting font template, or wants to refine a font made earlier (smoother, thicker, fix a letter). Not for choosing, recommending, or identifying existing fonts - only for creating a font from the user's own handwriting.

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 (once per session)

Run node <skill-dir>/scripts/resolve-cli.js once. It prints the CLI invocation to use (e.g. node /abs/path/src/cli.js). Substitute that printed command wherever the examples below show $DYF - shell variables do not persist between tool calls, so paste the real command each time.

If it errors, run npm install where it tells you (or npm i -g draw-your-font) and retry. Requires Node ≥ 18. Everything runs locally; nothing is uploaded.

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)

bash
$DYF template -o template.pdf --charset minimal   # or: spanish

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:

bash
$DYF segment photo1.jpg photo2.jpg -d work

2. Look, then label. Read work/contact-1.png (one per photo): every detected blob is numbered. This is the step where your eyes matter - check:

  • Did every written character get exactly one box? A letter drawn with separate strokes may appear as two boxes (relabel handles it: give the main box the character and mark the fragment ""), and two touching letters may share one box (ask the user to re-shoot just those, or accept the gap).
  • Junk boxes (shadows, ruled lines, smudges, page edges) → label them "".

Then write work/labels.json mapping blob id → character, e.g. {"0": "A", "1": "B", "7": "", "8": "a"}:

  • Template page: order is the charset order printed on the template - verify against the sheet instead of trusting it blindly. minimal order: A–Z, a–z, 0–9, then .,;:!?'"-()@#&+/$; spanish appends ÑñÁÉÍÓÚáéíóúü¿¡.
  • Freeform: identify each letter from the contact sheet. Uppercase vs lowercase for shape-twins (S/s, O/o, C/c, X/x…) is decided by relative size and position - compare against neighbors you're sure of.
  • The user told you what they wrote (e.g. "ABC then abc")? Trust it, map in reading order (top row first, left to right), and verify visually.
  • Same letter appears twice → label the better-drawn one, "" the other.

3. Build.

bash
$DYF build -d work --labels work/labels.json --name "Dan's Hand"

Name the font after the user (ask if unclear - one short question max).

4. Judge before delivering. Read work/preview.png and work/glyphs.png and critique like an art director:

  • Broken or blotchy letters (bad trace) → often a faint pen stroke; try --weight 1, or ask for a re-shoot of just that letter.
  • Everything too thin/thick → rebuild with --weight 1 / --weight -1.
  • Jagged edges → rebuild with --smooth 1.5 (up to 2).
  • A letter placed wrong (e.g. a g not descending) → usually a mislabel; fix labels.json and rebuild.
  • Filled-in bowls (b, o, g look solid): should never happen - if it does, the crop is smudged; ask for a re-shoot.
Show full SKILL.md (295 more words)Show less

Rebuilds are cheap and safe to iterate. Fix what you can yourself first; only bother the user for re-shoots when the source ink is the problem.

5. Deliver. The font lands at <workdir>/<NameWithoutSpaces>.ttf (the build output prints the exact path). Give that path and how to install: macOS - double-click → "Install Font"; Windows - right-click → "Install". Mention what's missing (the build prints uncovered letters) and offer, without pushing:

  • Web formats + CSS: rebuild with --formats ttf,woff,woff2,css.
  • A legibility read (below).
  • Their next photo to fill missing characters: re-run segment with ALL photos (old and new) into a fresh workdir - $DYF segment p1.jpg p2.jpg -d work2 - then relabel from the new contact sheets (blob ids renumber; the old labels.json does not carry over) and build from the new workdir.

Refine (conversational iteration)

User saysDo
"smoother / rounder"build … --smooth 1.5 (max 2)
"thicker / bolder"build … --weight 1 (max 2)
"thinner / lighter"build … --weight=-1 (negative needs the = form)
"the g looks bad"show them work/crops/<id>.png for that letter; offer re-shoot or smooth
"wrong letter" / swapedit labels.json, rebuild
"give me woff2 / web"build … --formats ttf,woff,woff2,css
custom preview text$DYF preview -d work --text "…" (after a build)

All refine commands rebuild from the stored crops - no re-photographing needed unless the ink itself is the problem.

Legibility report (offer after delivering)

bash
$DYF preview -d work --text "minimum mill rn m cl d I l 1 O 0 quick brown fox" -o work/legibility.png

Read it and give an honest, kind read: a score out of 10 for body-text use, the 2–3 letter pairs most likely to confuse (rn→m, cl→d, I/l/1, O/0), and one or two concrete fixes (rewrite those letters larger, more spacing). Note that display use (headings, notes) is more forgiving than paragraphs. Never gate delivery on this - it's advice, not a blocker.

Troubleshooting

Segmentation found far too many / too few blobs, grey guide lines surviving, shadow blobs, faint ballpoint strokes → see references/troubleshooting.md.

© danilo-znamerovszkij, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts, references) in skills/draw-your-font of danilo-znamerovszkij/draw-your-font.

  • SKILL.md
  • references/troubleshooting.md
  • scripts/resolve-cli.js

Open the folder on GitHubat commit ef367bb

Compare with similar skills

Draw Your Font Handwriting Converter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Draw Your Font Handwriting Converter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Draw Your Font Handwriting Converter this skilldanilo-znamerovszkij/draw-your-font813—~1.6kAutomated safety check: PassMIT
Anthropic Brand Stylinganthropics/skills180k30 repos~559Automated safety check: PassApache-2.0
Minimal Zine Poster GeneratorLiamGvchi/gc-minimal-zine-poster7.3k—~2.9kAutomated safety check: PassMIT
Mono Coloryanliudesign/mono-color-skill3.4k—~8.5kAutomated safety check: PassMIT
Text to PNG Card Casterlijigang/ljg-skills7.5k—~1.9kAutomated safety check: PassMIT
Music Video Subtitle Generatortl2012tl/comfyUI-llama-TE2414 repos~3.6kAutomated safety check: PassNone

Similar skills

  • Anthropic Brand Styling

    anthropics/skills

    Official

    Applies Anthropic's brand colors and fonts to artifacts such as PowerPoint slides, using fixed hex values for text and accents, Poppins headings and Lora body text.

    180k GitHub starsUsed in 30 repos~559 tokens
    Media & CreativeAuto-check passed
  • Minimal Zine Poster Generator

    LiamGvchi/gc-minimal-zine-poster

    Creates or analyzes quiet, paper-texture zine posters with big negative space, one color accent and experimental type, returning an image prompt and the generated poster.

    7.3k GitHub stars~2.9k tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • Mono Color

    yanliudesign/mono-color-skill

    Generate original one-ink or controlled two-ink editorial images from any theme, sentence, article idea, object, or reference photo.

    3.4k GitHub stars~8.5k tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed
  • Text to PNG Card Caster

    lijigang/ljg-skills

    Turns text, URLs or local files into tall PNG cards through HTML typography, with four modes: long reading card, full-text layout, comic and whiteboard.

    7.5k GitHub stars~1.9k tokensUpdated 2 days ago
    Media & CreativeAuto-check passed
  • Music Video Subtitle Generator

    tl2012tl/comfyUI-llama-TE

    For musicians, video creators, and social-media editors producing AI music videos or emotional short films with lyric typography.

    241 GitHub starsUsed in 4 repos~3.6k tokens
    Media & CreativeAuto-check passed
  • Brand Identity

    fatihaydost/brand-identity-skill

    Brand identity sets from one brief - logo, typography and colour palette built together, measured (contrast, colour blindness, glyph coverage, font licences, small-size logo renders) and compared…

    130 GitHub stars~2k tokensUpdated today
    Media & CreativeAuto-check passed

Questions about Draw Your Font Handwriting Converter

What does Draw Your Font Handwriting Converter do?

Turns a photo of handwritten letters into an installable TTF, WOFF or WOFF2 font, with the agent labeling letters and judging quality while a local CLI handles all geometry. The division of labor is explicit: the agent finds and labels letters and judges quality, while the CLI does all tracing, metrics and font assembly, and the skill is clear that SVG paths or coordinates are never edited by hand. A one-time setup step runs a resolver script that prints the exact CLI invocation to use, since shell variables do not persist between tool calls, and the CLI needs Node 18 or newer with everything running locally and nothing uploaded.

When should I use Draw Your Font Handwriting Converter?

Draw Your Font Handwriting Converter fits situations like: turning a photo of your own handwriting into an installable font; printing a template to fill in and photograph for a font; fixing or adjusting a specific letter in a font built earlier in the session.

How do I install Draw Your Font Handwriting Converter in Claude Code?

Run `npx skills add danilo-znamerovszkij/draw-your-font --skill draw-your-font -a claude-code`. Or copy the skill folder (skills/draw-your-font in danilo-znamerovszkij/draw-your-font) into .claude/skills/draw-your-font in your project. Claude Code loads it when a task matches its description.

How do I install Draw Your Font Handwriting Converter in Codex?

Run `npx skills add danilo-znamerovszkij/draw-your-font --skill draw-your-font -a codex`. Or copy the skill folder (skills/draw-your-font in danilo-znamerovszkij/draw-your-font) into .agents/skills/draw-your-font in your project. Codex loads it when a task matches its description.

Can I use Draw Your Font Handwriting Converter in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add danilo-znamerovszkij/draw-your-font --skill draw-your-font -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/draw-your-font, .gemini/skills/draw-your-font, .github/skills/draw-your-font and .opencode/skills/draw-your-font in your project.

What does Draw Your Font Handwriting Converter need to run?

Going by SKILL.md and its folder, Draw Your Font Handwriting Converter needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and npm). Our summary lists: Node.js 18 or newer.

Does Draw Your Font Handwriting Converter access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Draw Your Font Handwriting Converter safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Draw Your Font Handwriting Converter use?

Draw Your Font Handwriting Converter is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Draw Your Font Handwriting Converter use?

About 1.6k tokens (SKILL.md is roughly 6.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 600 tokens, read only when the agent opens those files.

What are the alternatives to Draw Your Font Handwriting Converter?

Skills that share tags, products or a category with Draw Your Font Handwriting Converter: Anthropic Brand Styling (anthropics/skills, 180k stars), Minimal Zine Poster Generator (LiamGvchi/gc-minimal-zine-poster, 7.3k stars), Mono Color (yanliudesign/mono-color-skill, 3.4k stars) and Text to PNG Card Caster (lijigang/ljg-skills, 7.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Draw Your Font Handwriting Converter?

danilo-znamerovszkij (a GitHub user) maintains it in danilo-znamerovszkij/draw-your-font, which has 813 GitHub stars. The repository was last updated on August 5, 2026.

Source: danilo-znamerovszkij/draw-your-font on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.