← Projects

Local Fonts Agent

Open-source desktop utility

A desktop bridge that makes installed fonts available through a local HTTP API.

RustTauriFontsDesktopHTTP API
GitHub

Websites, browser tools, and design applications cannot normally enumerate the fonts installed on a person’s computer or retrieve their files. Seeing Figma’s browser experience request permission to access local fonts led me to explore the same companion-app model. Local Fonts Agent is a small desktop utility that bridges that gap: run it from the system tray, then query the machine’s font catalog through a local HTTP API.

Local Fonts Agent tray menu running on macOS

API Usage

The agent listens at http://127.0.0.1:36687. Use it to check that the service is running, inspect available fonts, render SVG previews, retrieve a font by PostScript name, or rebuild the cache after changing installed fonts.

curl http://127.0.0.1:36687/
curl http://127.0.0.1:36687/v1/fonts-meta.json
curl http://127.0.0.1:36687/v1/fonts-preview.json
curl http://127.0.0.1:36687/v1/fonts/Helvetica -o helvetica.ttf
curl -X POST http://127.0.0.1:36687/v1/refresh

Metadata includes each discovered font’s family, full and PostScript names, weight, style, stretch, and monospace status. Previews are returned as SVG strings keyed by PostScript name, so clients can show a font picker before fetching font data.

Local And Private By Network

The service binds only to 127.0.0.1, never the computer’s LAN address, so other devices cannot connect to it. It is designed as a local bridge rather than an authenticated server: cross-origin browser requests are allowed, which lets web-based tools use the API from a user’s own machine.

This also means any webpage the user visits may be able to request the installed-font metadata, previews, and font files while the agent is running, subject to the browser’s local-network permission model. The refresh endpoint only rebuilds the agent’s cache. It does not install, remove, or alter system fonts.

Local Fonts Agent tray menu running on Ubuntu

Important Limitations

The catalog exposes the first discovered face for each font family, so it is not a complete family-and-variant inventory. Refresh performs a full rescan rather than monitoring font changes, and a newly launched agent does not accept requests until its initial cache has been built. SVG previews render the family name itself, which can be incomplete when that font lacks glyphs for its own name.

Install And Current State

Local Fonts Agent v0.1.1 is available for macOS on Apple Silicon and Intel, Windows on ARM64 and x64, and Linux on ARM64 and x64. Install the macOS app with Homebrew:

brew install --cask KarthikeyanRanasthala/tap/local-fonts-agent

Direct downloads include DMG and app archives for macOS, MSI and setup executables for Windows, and AppImage, DEB, and RPM packages for Linux. The macOS app is ad-hoc signed but not notarized, so macOS may require an explicit first-launch approval in Privacy & Security.

Download the current release from GitHub Releases.


|