{"id":20828336,"url":"https://github.com/googlefonts/gftools","last_synced_at":"2026-02-20T14:01:38.129Z","repository":{"id":37432259,"uuid":"106485135","full_name":"googlefonts/gftools","owner":"googlefonts","description":"Misc tools for working with the Google Fonts library","archived":false,"fork":false,"pushed_at":"2024-04-13T20:48:22.000Z","size":12473,"stargazers_count":234,"open_issues_count":125,"forks_count":66,"subscribers_count":35,"default_branch":"main","last_synced_at":"2024-04-14T12:29:04.731Z","etag":null,"topics":["fonts","google-fonts"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/googlefonts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-10-11T00:18:44.000Z","updated_at":"2024-04-17T07:27:22.471Z","dependencies_parsed_at":"2023-10-19T15:32:06.318Z","dependency_job_id":"8bed3125-54e2-4901-884a-9be26931a758","html_url":"https://github.com/googlefonts/gftools","commit_stats":null,"previous_names":[],"tags_count":75,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googlefonts%2Fgftools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googlefonts%2Fgftools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googlefonts%2Fgftools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googlefonts%2Fgftools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/googlefonts","download_url":"https://codeload.github.com/googlefonts/gftools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248617340,"owners_count":21134190,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fonts","google-fonts"],"created_at":"2024-11-17T23:14:31.792Z","updated_at":"2026-02-20T14:01:38.121Z","avatar_url":"https://github.com/googlefonts.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CI Build Status](https://github.com/googlefonts/gftools/workflows/Test/badge.svg?branch=main)](https://github.com/googlefonts/gftools/actions/workflows/ci.yml?query=workflow%3ATest+branch%3Amain)\n[![PyPI](https://img.shields.io/pypi/v/gftools.svg)](https://pypi.org/project/gftools/)\n\n# Google Fonts Tools\n\nThis project contains tools used for working with the Google Fonts collection, plus **Google Fonts Glyph Set Documentation** in the [/encodings](https://github.com/googlefonts/gftools/tree/main/Lib/gftools/encodings) subdirectory. While these tools are primarily intended for contributors to the Google Fonts project, anyone who works with fonts could find them useful.\n\nAdditional documentation in [`/docs`](https://github.com/googlefonts/gftools/blob/main/docs)\n\nThe tools and files under this directory are available under the Apache License v2.0, for details see [LICENSE](LICENSE)\n\n## Google Fonts Official Glyph Sets\n\nThe glyph sets useful for type designers that were previously hosted in this repository have been moved to:\n\n\u003chttps://github.com/googlefonts/glyphsets/tree/main/GF_glyphsets\u003e\n\n## Tool Usage Examples\n\nCompare fonts:\n\n    gftools compare-font font1.ttf font2.ttf\n\nAdd a METADATA.pb to a family directory\n\n    gftools add-font ../ofl/newfamily\n\nSanity check a family directory:\n\n    gftools sanity-check --repair_script=/tmp/fix.py ../ofl/josefinsans\n    gftools sanity-check --repair_script=/tmp/fix.py --fix_type=fsSelection ../ufl\n\nCheck a font family against the same family hosted on Google Fonts:\n\n    gftools qa [fonts.ttf] -gfb -a -o qa\n\nCheck a variable font family against the same family as static fonts:\n\n    gftools qa -f [vf_fonts] -fb [static_fonts] --diffenator --diffbrowsers -o ~/path/out\n\nFix a non hinted font\n\n    gftools fix-nonhinting font_in.ttf font_out.ttf\n\nPackage and PR a family update to google/fonts. Find much more detailed [documentation in `/docs/gftools-packager`](./docs/gftools-packager).\n\n    gftools packager \"Family Sans\" path/to/local/google/fonts -py\n\n## Tool Installation\n\n**Please note that gftools requires [Python 3.7](http://www.python.org/download/) or later.**\n\nPlease install these tools using pip:\n\n    pip install gftools\n\nIf you would like to use `gftools qa`:\n\n    brew install pkg-config # needed for interpolation checks\n    pip install 'gftools[qa]'\n\n\n### Tool Requirements and Dependencies\n\n`gftools packager` needs the command line `git` program in a version \u003e= Git 2.5 (Q2 2015) in order to perform a shallow clone (`--depth 1`) of the font upstream repository and branch. This is not supported by pygit2/libgit2 yet.\n\n`gftools manage-traffic-jam` requires two private files which contain sensitive data. Ask m4rc1e for them.\n\n### Google Fonts API Key\n\nIn order to use the scripts **gftools qa** and **gftools family-html-snippet**, you will need to generate a Google Fonts api key, https://developers.google.com/fonts/. You will then need to create a new text file located on your system at `~/.gf-api-key` (where ~ is your home directory), which contains the following:\n\n```\n[Credentials]\nkey = your-newly-generated-googlefonts-api-key\n\n```\n\n**Upstream project repos**\n\n* https://github.com/google/protobuf\n* https://github.com/behdad/fonttools\n\n## Developers\n\n### Releasing a New Version\n\n0. Commit and push your final changes for the new version.\n1. Create an annotated Git tag of the version number, with a prepended \"v\", like so: `git tag -a v3.1.1`\n2. Write the release notes into the tag message. They will show up as release notes on the release page in GitHub.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglefonts%2Fgftools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgooglefonts%2Fgftools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgooglefonts%2Fgftools/lists"}