How to Use Claude Code with Python to Create High-Quality Font Files

Erik ChenErik Chen
5 min read

In the world of font design, have you ever thought about leveraging AI to automate tedious tasks? This article explores the concept of "Claude Code Python Font Design," showing you how to use Claude Code as an AI assistant alongside Python libraries like FontTools or FontForge to effortlessly generate, modify, and optimize font files. Want to make font design faster and more polished? Keep reading!

Why Choose Claude Code Python Font Design?

You might already be familiar with tools like FontTools and FontForge, but manually writing scripts to adjust glyphs often involves time-consuming documentation searches and parameter tweaks.

  • Use Claude Code directly in the Terminal to summon a chat interface instantly.

  • Combine it with Python libraries to let AI help you write, complete, debug scripts, and even generate metadata, kerning, and variable fonts.

  • The workflow is transparent and secure—every change happens in the terminal, and a single command executes and saves your work.

Excited? Here’s a three-step guide to get you started with Claude Code Python font design.

Step 1: Installation and Setup

First, ensure you have Python 3.9+, pip, FontTools, and FontForge installed:

pip install fonttools
brew install fontforge   # For macOS (use Homebrew), Windows users can download the installer
npm install -g @anthropic-ai/claude-code  # Install Claude Code CLI

Next, initialize your project by running:

claude init

This command generates a CLAUDE.md file where you can store frequently used commands and project settings, helping Claude Code remember your font design workflow.

Step 2: Writing Font Scripts with Claude Code

Example: Batch-Adjusting Kerning

Save the following prompt as adjust_kerning.txt, then run claude run -p adjust_kerning.txt in the terminal:

You are a Python developer. Write a script using fontTools to adjust the kerning for all uppercase letter pairs (A–Z) to 50 units and save the output as a new OTF file. Include installation instructions and the complete code.

Claude Code will respond with:

# Install fontTools
# pip install fonttools

from fontTools.ttLib import TTFont

def adjust_kerning(input_path, output_path, value=50):
    font = TTFont(input_path)
    kern = font['kern'].kernTables[0].kernTable
    for pair in kern:
        left, right = pair
        if left.isalpha() and right.isalpha():
            kern[pair] = value
    font.save(output_path)

if __name__ == "__main__":
    adjust_kerning("OriginalFont.otf", "AdjustedFont.otf")

Press Enter, and Claude Code will execute the script and save the file automatically.

Step 3: Optimization and Validation

After writing your script, perform quality checks:

fontforge -c 'open("AdjustedFont.otf"); print(glyphs());'

Or use ttx to convert the font to XML for comparison:

ttx AdjustedFont.otf
diff OriginalFont.ttx AdjustedFont.ttx

Encounter an error? Add --debug to claude run, and Claude Code will help identify and suggest fixes.

Pro Tip: Automating Variable Fonts

Want to create variable fonts? Include a prompt like "Use fontTools.designspaceLib to generate a variable font with weights from bold to light." Claude Code will write the entire workflow, including designspace setup and master merging.

Final Thoughts

Make "Claude Code Python Font Design" your secret weapon for creating fonts—saving time on repetitive tasks and leaving more room for creativity!


How to Design a Font Series with Midjourney and Generate Usable Font Files Using Claude Code

Core Workflow Overview

  1. Generate consistent glyph images for each letter in Midjourney.

  2. Convert the glyph images into vector outlines (SVG).

  3. Use FontForge (via Python scripts, auto-generated by Claude Code) to batch-pack SVGs and export them as TTF/OTF.

Step 1: Designing Glyphs in Midjourney

1. Set the Font Theme and Parameters
  • Theme: Examples include "cyberpunk neon," "hand-painted watercolor," or "vintage print."

  • Aspect Ratio: Use --ar 1:1 for square images, ensuring alignment.

  • Chaos: Set --chaos 2–3 for design consistency.

  • Stylize: Reduce to --stylize 50 for better reproducibility.

2. Generate Base Letters

For the letter "A," use the following command in Discord or the web interface:

/imagine prompt: Blank-themed letter A, neon cyberpunk style, glowing edges --v 6 --ar 1:1 --chaos 2 --stylize 50

This outputs a set of "A" glyphs. Use "Variations" or "Upscale" to get a high-resolution 1024×1024 PNG.

3. Batch-Generate Remaining Letters
  • Reuse the Base Prompt: Replace "A" with "B," "C," etc., keeping other parameters the same.

  • Upload Reference Images: For tricky characters like "Q" or "&," upload existing glyphs and use image weight to maintain style consistency.

Example Prompt:

/imagine prompt: Blank-themed letter G, neon cyberpunk style, glowing edges --v 6 --ar 1:1 --iw 0.7 --chaos 2 --stylize 50

Step 2: Convert PNGs to SVG Vector Outlines

1. Batch Process PNGs to SVGs

Install Potrace:

brew install potrace  # macOS (or download cross-platform version)

Convert PNGs to PBM, then to SVG:

mogrify -format pbm *.png
for f in *.pbm; do potrace "$f" -s -o "${f%.pbm}.svg"; done
2. Check and Fix SVGs

Ensure all SVGs are in the same directory, named by Unicode or ASCII codes (e.g., U0041.svg for "A").

Step 3: Automate Font File Generation with FontForge

1. Prepare a Python Script Outline

Use FontForge’s Python API to import SVGs into corresponding glyph slots. The script should:

  • Open or create a font.

  • Read and map SVGs to the correct glyph slots.

  • Generate TTF/OTF.

2. Let Claude Code Generate the Full Script

Run:

claude run -p create_font_from_svgs.txt

In create_font_from_svgs.txt, input:

You are a Python developer. Write a complete script using FontForge’s Python API to batch-import SVG files (named UXXXX.svg, where XXXX is Unicode hex) into a new font and generate MyCustomFont.ttf. Include dependency installation, opening FontForge, importing SVGs, setting font parameters (Family Name, Weight), and saving the TTF.
3. Run and Generate the Font

Execute the script:

ffpython generate_font.py

Output: MyCustomFont.ttf.

Summary and Tips

  1. Style Consistency: Fix Midjourney’s --ar, --chaos, and --stylize parameters, and reuse keywords (theme, material).

  2. Vectorization: Use Potrace for clean, anti-aliased SVG outlines.

  3. Automation: Let Claude Code generate FontForge Python scripts for "one-click" TTF packaging.

  4. Post-Processing: Manually adjust kerning, enable hinting, or tweak OpenType features (ligatures, alternates) in FontForge.

This workflow efficiently turns Midjourney’s creative glyphs into usable font files, perfect for branding, UI, or print projects.


Ready to streamline your design workflow with AI-powered tools? At Tenten, we specialize in integrating cutting-edge technologies like Claude Code and Python automation to elevate your creative projects. Book a meeting with us today to explore how we can help you optimize your font design process!

0
Subscribe to my newsletter

Read articles from Erik Chen directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Erik Chen
Erik Chen