Skip to main content
wordmark icon

wordmark

1,342 TAAG FONTS, ONE WORD AT A TIME
Type a word and flip through every TAAG font in the terminal, recoloured from your own palette.

CI Python 3.11+, stdlib only 1,342 fonts, 1,013 in colour macOS, Linux MIT license


python3 <(curl -fsSL https://raw.githubusercontent.com/morris-frank/wordmark/main/wordmarks.py)

That one line runs it with nothing installed. The first run downloads the 2.7 MB glyph dataset into ~/.cache/wordmark/ and writes a config to ~/.config/wordmark/config.toml. It needs Python 3.11 or newer and a truecolour terminal; macOS's bundled /usr/bin/python3 is 3.9, so use a Homebrew, mise or uv Python.

To keep it around as a wordmark command:

uv tool install wordmark   # or: pipx install wordmark

Keys

The wordmark sits in the middle of the screen, with its index above and the font's name, section and colour style below.

Key Does
↑ ↓ previous / next font
PgUp PgDn 20 fonts back / forward
Tab Shift-Tab next / previous section (Favourites, Featured, Regular, ANSI, AOL, TOIlet, TheDraw)
← → previous / next colour style
- + lower / raise the maximum font height in lines; the index shows the cap
0 any height again
Ctrl-T next theme (dark, light)
a–z, A–Z, Space type into the word; Shift gives capitals
Backspace delete the last letter
Ctrl-Y copy the wordmark as plain text
Ctrl-A copy it with its truecolour escapes, for a shell banner
Esc quit

Copying uses pbcopy, wl-copy, xclip, xsel or clip.exe, whichever exists, and otherwise OSC 52, which most terminals honour even over SSH. About 1,066 fonts have no lowercase of their own, so there maurice and MAURICE look the same.

Options

python3 wordmarks.py [WORD] [--font NAME] [--theme NAME] [--max-height N] [--config PATH]

WORD overrides the config's word (default maurice). --font starts on a font by exact name, ignoring case. --max-height starts with the height filter set.

Configuration

The config is created on first run with the Soilytix design system as its palette, and is read on every start. Delete it to get the defaults back.

Key Default Holds
word maurice the starting word
theme dark the starting theme; Ctrl-T cycles [themes] in file order
max_height unset only fonts at most this many lines tall
favourites 56 names font names for a Favourites section, first in the list; a name shared by several fonts brings all of them
[themes.<name>] dark, light page (background) and muted (labels)
[colors] lime, ink, soil, gold, azure, rose named colours: "#RRGGBB", or { dark = "…", light = "…" } per theme
[[styles]] six styles what ← → cycles, in file order

Each style has a name and a kind:

kind Fields Paints
solid color every glyph character in one colour
vgrad from, to a top-to-bottom blend, one colour per row
ansi-hue families, neutral colour fonts: each ANSI colour takes the family colour nearest in hue; greys take neutral. Shade is kept by blending from the page, so bright and dim parts stay apart.
ansi-ramp color colour fonts: every ANSI colour on one ramp, by lightness
ansi-original none colour fonts: the font's own 16 colours, as VGA RGB

Colour fonts cycle only the ansi-* styles, so their shading is never flattened; plain fonts cycle the rest.

Dataset

data/ holds the capture the TUI reads: every font's A–Z, a–z and space glyphs as one gzip JSON bundle, plus the raw FIGlet and TheDraw font files TAAG loads. data/README.md describes the format, the compose rules and what they reproduce.

Development

Needs mise. Everything else comes from mise.toml.

git clone https://github.com/morris-frank/wordmark && cd wordmark
mise run setup   # toolchain, hooks, verify
mise run run     # the TUI, from the clone's data/

mise run check is the definition of done and is what CI runs. AGENTS.md is the working agreement.

Release files for wordmark 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wordmark 0.1.0
File Size Uploaded
wordmark-0.1.0.tar.gz 10.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wordmark 0.1.0
File Interpreter ABI Platform
wordmark-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.6 kB

Release files / wordmark-0.1.0.tar.gz

Download URL wordmark-0.1.0.tar.gz
Size 10.8 kB
Tags Source
SHA-256 checksum
How to use checksums
adfb74e8b4674fe6b5b91c8c9f7ec7759d8c76bac2c99671a31b08dab03cb5c6
BLAKE2b-256 checksum
How to use checksums
cc3c0b9316f51999ba97af3e0d17a0fe6ebc6b8a88cf615ede6cea672f894b42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / wordmark-0.1.0-py3-none-any.whl

Download URL wordmark-0.1.0-py3-none-any.whl
Size 11.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
569d244e9f9197c732ce1b1dc5086fabaa267d34222bdc98fcf7fc2f5897d55b
BLAKE2b-256 checksum
How to use checksums
1f13bef47403a431feb469f2ff56d7ea7e946405ab76ec39edef2307e33201da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.20 {"installer":{"name":"uv","version":"0.12.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page