This page is the complete field-by-field reference for bin/scripts/lib/fonts.json This file is the central registry of every font family included in the Nerd Fonts project. It is the authoritative source for font metadata that drives the CI build matrix, batch patching, Homebrew cask generation, the fontfilenames manifest, and the nerdfonts.com website.
For guidance on creating a new entry in this file when adding a font, see Adding New Fonts. For the batch patching script that iterates over this file's entries, see Batch Processing. For a discussion of how caskName relates to Homebrew cask publication, see Package Managers.
bin/scripts/lib/fonts.json
The file is a single JSON object with one key, "fonts", whose value is an ordered array of font objects:
Each element of the array describes one font family. The array currently contains 67 entries.
Sources: bin/scripts/lib/fonts.json1-3
Diagram: Font entry structure in fonts.json
Sources: bin/scripts/lib/fonts.json1-17 bin/scripts/lib/README.md17-29
| Field | Type | Required | Description |
|---|---|---|---|
unpatchedName | string | yes | Human-readable name of the upstream source font |
licenseId | string | yes | SPDX license expression for the source font |
RFN | boolean | yes | Whether the source font carries a Reserved Font Name clause |
RFNException | string | no | URL of the explicit RFN exception granted by the copyright holder |
version | string | yes | Version string as it appears inside the source font files |
patchedName | string | yes | Family name given to the patched font (without the "Nerd Font" suffix) |
folderName | string | yes | Directory name under src/unpatched-fonts/ containing the source files |
imagePreviewFont | string | yes | Font family name used when rendering preview images for nerdfonts.com |
imagePreviewFontSource | string | yes | Path to a specimen font file, relative to src/unpatched-fonts/, used for preview and the fontfilenames manifest |
linkPreviewFont | string or false | yes | Slug for the corresponding entry on programmingfonts.org; false if no entry exists |
caskName | string | yes | Base name for the Homebrew cask; expanded to font-{caskName}-nerd-font |
repoRelease | boolean | yes | Whether patched font files are committed back into the repository under patched-fonts/ |
isMonospaced | boolean | yes | Whether at least some variants of the source font are monospaced (suitable for terminals) |
description | string | yes | One-line summary of what makes this font notable |
Sources: bin/scripts/lib/README.md17-29 bin/scripts/lib/fonts.json4-17
unpatchedNameThe canonical upstream name of the source font family. This name is used in the readme.md font table. It does not need to match the internal name stored in the font file's name table.
Examples: "IBM Plex Mono", "JetBrains Mono", "Hack"
Sources: bin/scripts/lib/fonts.json4 bin/scripts/lib/fonts.json154 bin/scripts/lib/fonts.json440
licenseIdAn SPDX license expression describing the license under which the source font is distributed. Non-standard licenses use the LicenseRef- prefix convention.
| Value seen in file | Meaning |
|---|---|
OFL-1.1-no-RFN | SIL Open Font License 1.1, without Reserved Font Name |
OFL-1.1-RFN | SIL Open Font License 1.1, with Reserved Font Name |
MIT | MIT License |
Apache-2.0 | Apache License 2.0 |
BSD-3-Clause | BSD 3-Clause License |
BSD-3-Clause-Clear | BSD 3-Clause Clear License |
Bitstream-Vera | Bitstream Vera Fonts copyright |
CC-BY-SA-4.0 | Creative Commons Attribution-ShareAlike 4.0 |
WTFPL | Do What The F*** You Want To Public License |
LicenseRef-VicFieger | Non-SPDX: custom Vic Fieger license |
LicenseRef-Monofur | Non-SPDX: custom Monofur license |
MIT OR OFL-1.1-no-RFN | Dual-licensed |
Bitstream-Vera AND MIT | Combined licenses (Hack) |
Sources: bin/scripts/lib/fonts.json5 bin/scripts/lib/fonts.json65 bin/scripts/lib/fonts.json471
RFN and RFNExceptionRFN is true when the upstream font's license includes a Reserved Font Name clause. Under OFL's RFN clause, the patched font must not use the reserved name, which means patchedName will differ from unpatchedName.
RFNException is an optional string field that appears only when the copyright holder has granted an explicit written exception allowing Nerd Fonts to use the original name despite the RFN. It holds a URL pointing to the permission record.
Examples where RFNException appears:
versionThe version string as recorded inside the source font file (not a Nerd Fonts version). For fonts where the version is unknown or not applicable, the value is "-".
patchedNameThe family name assigned to the patched output font, without the Nerd Font suffix. The full family name seen by end users is typically {patchedName} Nerd Font.
When RFN is true, patchedName must differ from unpatchedName. Even without RFN, patchedName is often a compacted CamelCase form of the upstream name.
unpatchedName | RFN | patchedName |
|---|---|---|
Anonymous Pro | true | AnonymicePro |
IBM Plex Mono | true | BlexMono |
Hermit | true | Hurmit |
JetBrains Mono | false | JetBrainsMono |
Hack | false | Hack |
Sources: bin/scripts/lib/fonts.json63-76 bin/scripts/lib/fonts.json154-167 bin/scripts/lib/fonts.json484-498
folderNameThe name of the directory under src/unpatched-fonts/ that contains the source font files for this family. This is used by gotta-patch-em-all-font-patcher!.sh to locate source files.
src/unpatched-fonts/
└── {folderName}/
└── ... (source .ttf / .otf files)
Sources: bin/scripts/lib/fonts.json9 bin/scripts/lib/README.md23
imagePreviewFont and imagePreviewFontSourceimagePreviewFont is the font family name string that should be loaded when generating the preview image shown on nerdfonts.com. It may differ from patchedName when the preview should display a specific sub-family (e.g., "GohuFont 14 Nerd Font" rather than just "GohuFont").
imagePreviewFontSource is the path to a representative font file, relative to src/unpatched-fonts/, that can be patched and used for the preview. This field is also the data source for the fontfilenames manifest.
The fontfilenames file is regenerated from this field using:
Sources: src/unpatched-fonts/README.md14-21 bin/scripts/lib/fonts.json10-11
linkPreviewFontA URL slug for the font's entry on programmingfonts.org. When the font does not have an entry on that site, the value is the boolean false (not the string "false").
Examples:
"jetbrainsmono" → programmingfonts.org/#jetbrainsmonofalse → no link (e.g., CaskaydiaMono, IosevkaTerm)Sources: bin/scripts/lib/fonts.json629 bin/scripts/lib/fonts.json599
caskNameThe base identifier for the Homebrew cask. The cask is named by the convention:
font-{caskName}-nerd-font
For example, caskName: "hack" produces the cask font-hack-nerd-font, installable with:
The value must follow Homebrew naming rules (lowercase, hyphens, no spaces).
Sources: bin/scripts/lib/README.md26 bin/scripts/lib/fonts.json13
repoReleaseControls whether the patched font files for this family are committed back into the repository under patched-fonts/.
| Value | Meaning |
|---|---|
true | Patched files are committed to patched-fonts/{folderName}/ and included in GitHub release archives |
false | Patched files are only distributed via GitHub Releases, not committed to the repo |
Sources: bin/scripts/lib/fonts.json14 bin/scripts/lib/README.md27
isMonospacedtrue if at least one variant of the source font is fixed-width (suitable for use in a terminal emulator). false for proportional fonts like Arimo or OpenDyslexic.
This field informs documentation, website display, and filtering logic. It does not affect the patching process itself.
Sources: bin/scripts/lib/fonts.json15 bin/scripts/lib/fonts.json90
descriptionA single-sentence summary of the font's distinctive characteristics. Used on the nerdfonts.com font listing page.
Diagram: fonts.json data flow to downstream consumers
Sources: bin/scripts/lib/README.md9-14 src/unpatched-fonts/README.md14-21 bin/scripts/lib/fonts.json1-17
Below is the entry for 0xProto, a straightforward case with no RFN complications:
Because RFN is false, patchedName can match unpatchedName exactly. repoRelease: false means the patched files are not committed to the repo. The Homebrew cask is font-0xproto-nerd-font.
Sources: bin/scripts/lib/fonts.json4-17
Below is an entry for Anonymous Pro, which carries an RFN and requires a renamed patchedName:
Because RFN is true, the patched font is renamed AnonymicePro instead of Anonymous Pro. The folderName "AnonymousPro" does not need to match either name. The imagePreviewFontSource path contains a space, which is handled by fontfilenames generation via sed 's/ /\\ /g'.
Sources: bin/scripts/lib/fonts.json63-77 src/unpatched-fonts/README.md16
Diagram: Field-to-filesystem mapping
Sources: bin/scripts/lib/fonts.json620-633 src/unpatched-fonts/fontfilenames42
Refresh this wiki
This wiki was recently refreshed. Please wait 3 days to refresh again.