Font Lab

io.github.jmg698由 GitHub 帳號 jmg698 發布v1.0.0更新於 Oct 24, 2026

A decision surface for typography: curate font directions on your real site, ship next/font code.

已驗證STDIO僅桌面開發者工具媒體與設計

概覽

AI 產生的概覽

Font Lab 讓助理策劃字體搭配、在你的真實網站上預覽,並為選中的方案產生可回復的 next/font 或 @font-face 程式碼。

可以做什麼
  • 分析專案技術堆疊,指出適用的預覽與自動套用路徑
  • 組合精選字體方向(標題、內文、等寬)並附理由,排除千篇一律的 AI 預設字體
  • 在真實頁面預覽:Next.js 用站內即時面板,其他框架用無頭截圖或可離線開啟的樣張頁
  • 就地修改頁面文案並顯示變更清單
  • 把選定方向套用為 next/font 加 Tailwind 或自架 @font-face 程式碼,支援復原,並在收尾時移除開發用脚手架
適用情境
適合 AI 生成的網站落入 Inter、Geist 等預設字體、你想在自己的頁面上比較真實替代方案後再定案的情況。也可在挑選排版的同時順手潤飾頁面文案。
執行需求
以 npm 套件形式在本機透過 stdio 執行(npx font-lab install),僅支援桌面端。需要專案具備 CSS 接入點;截圖模式需要開發伺服器,工具可自行啟動並綁定 127.0.0.1。未宣告帳號、金鑰或環境變數。
安裝前請注意
它會寫入原始碼檔案:字體程式碼、CSS 變數或 Tailwind 設定,以及面板中做的文案修改。所有變更都聲稱可用復原指令回復,但套用前仍應檢查產生的差異與提交計畫。截圖模式可能在你機器上啟動專案的開發伺服器。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Font Lab,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Font Lab

[npm version] [npm provenance] [license: MIT]

Pick the fonts. Fix the words. Your agent does the work.

[Font Lab — flipping font directions live on a real running site]

Watch the full demo →

Font Lab is a real-time typography and text editor for AI-built sites. Your agent installs it, composes curated font directions Google fonts and distinctive open-foundry faces, and renders them live on your real site. You can toggle between the fonts and pick the one you like. The agent then finishes it up— next/font + Tailwind on Next.js, self-hosted @font-face everywhere else — reversibly.

Most AI-built sites ends up with generic fonts, like Inter or Geist, because the agent just uses defaults. Font Lab brings the human choose from options the agents curates based on some intake questions. It also allows you to edit text to make it sound like you wrote it.

copy-able prompt here: https://www.jack-mcgovern.com/fontlab

Install

Inside your project — use this prompt:

bash
Install font-lab (npx font-lab install) and set it up for me — start whatever needs to run; I shouldn't have to touch the terminal. Ask me a couple of questions, compose font directions for this project, and show them on my real pages: the live panel if you're on my machine, screenshots if you're not. Before you tell me to look, make sure it actually worked — the panel really loaded, or the screenshots really came out. I make the call. Don't pick for me. Then write the code for the one I choose, and stick around — I'll have text fixes as I go.

Works with: Claude Code · Cursor · VS Code · Codex · Windsurf · Gemini CLI For: any framework with a CSS seam — Next.js gets the full live-panel experience; everything else ships through the same engine (see the matrix below).

Install auto-detects which agents you have and wires them all — skill, MCP server, config, each in the right format. On a stack with no seam at all, Font Lab refuses to half-apply and hands you the generated code with a clear reason instead.

Newly registered MCP tools load on the next session reload — but the agent never has to wait: every tool also runs as a one-shot CLI, npx font-lab run <tool> '<json-args>' (same tool table, same JSON out), so the loop starts the moment install finishes. That's also the fallback whenever an MCP server drops mid-session.

Frameworks — what ships where

The taste engine, shippability gate, portable preview, and screenshots work on every stack. What varies is the preview surface and how the pick lands in your code — font-lab analyze prints the exact verdict for your project:

Your stackPreviewAuto-ship
Next.js App Router + Tailwind v4live in-app panel + real-site screenshotsnext/font + Tailwind codegen
Any framework + Tailwind v4 (Vite, Astro, Remix, SvelteKit, TanStack, …)real-site screenshots (headless paint) + portable sheetself-hosted @font-face + @theme role map in your CSS entry
Any framework + Tailwind v3 (fonts in tailwind.config fontFamily)real-site screenshots (headless paint) + portable sheetself-hosted @font-face + utility/Preflight overrides in your CSS entry
No Tailwind, fonts routed through CSS variables (--font-body, --fd, …)real-site screenshots (headless paint) + portable sheetself-hosted @font-face + your own font vars repointed
No seam (hardcoded font-family, CSS-in-JS)real-site screenshots (headless paint) + portable sheethand-apply: Font Lab generates the block, you paste it

Every auto-ship path is fenced, idempotent, and reversible (font-lab undo). Agents: read capabilities + shipNote from font_lab_analyze — a non-Next stack is a different route through the same loop, never a reason to stop.

Upgrading

Always use upgrade, not bare npm install.

bash
npx font-lab upgrade

Font Lab lives in two places: the npm package and the panel code stamped into your project (app/_fontlab/). A bare npm install font-lab@latest updates the package but leaves the panel on the old version — which shows a "stale version" warning. upgrade moves everything together in one command: package, panel re-stamp, MCP re-pin, and stale-endpoint shutdown.

How it works

  1. Ask. Font Lab asks what you're going for — what feeling, how bold a departure, a brand to evoke or avoid — so the directions are tailored to you, not a generic default.
  2. Compose. Your agent composes a small set of font directions (display + body + mono, each with a rationale), reaching past the overexposed AI defaults. A built-in anti-generic rubric rejects menus that are all Inter/Geist/Space Grotesk.
  3. Pick. You compare them on your own site — screenshots in chat (works on web or phone) or a live flip/mix/compare panel locally. You always make the pick.
  4. Ship. The agent writes the real code for your stack — next/font + Tailwind on Next.js; self-hosted @font-face wired through Tailwind's theme, v3 utilities, or your own CSS font variables elsewhere. Every change is reversible.
  5. Finish clean. Click done ✓ (or say so) and the agent runs font_lab_finish: the dev-panel scaffolding comes out, and you get a git-verified commit plan — your copy edits and font change with ready-to-run commands, nothing of Font Lab's mixed in. The scaffolding and state are self-ignoring in git the whole session, so git status was never noisy to begin with.

The panel

The Font Lab panel sits on top of your running site — your real pages, your real content — and lets you change fonts and words in real time.

  • Flip through directions with arrow keys — see each pairing on your actual content across multiple routes
  • Mix roles — heading from one direction, body from another — and save the mix as its own direction
  • Before/after — hold B to peek at your current fonts; tap space to snap between your two finalists
  • Inspect — hover any text to see its role, typeface, size, and how many elements share it
  • Edit words — double-click any text, retype it, and it saves straight to your source files
  • Change receipts — see exactly what changed across the page after every edit
  • Undo everything — every modification ships with a reversal command
  • Done ✓ — one click ends the session cleanly: your agent strips the dev tooling and hands you the exact commit plan

The panel runs headless too: the agent screenshots your site in each direction and shows you the images in chat — a chat-sized hero shot per direction, with the full-page capture behind it. Works on a phone, on the web, anywhere your agent runs.

The live panel is Next-only — but the real-site preview isn't. On every other framework, Font Lab paints your actual running pages in each direction (the same render-first census machinery the panel flips with, injected headlessly — no scaffolding, no source writes; preview fonts cache in self-ignored state, so your git status stays clean until you actually ship). If no dev server is running, the screenshot tool starts your project's own dev command itself — bound to 127.0.0.1, health-checked, stopped after the capture — which is what makes the loop work unattended in cloud/container agents (Claude Code on the web, and friends) where the human can't reach the agent's localhost. With no dev server possible at all, the fallback is the portable preview: a self-contained HTML specimen sheet (fonts embedded, opens offline) on your own palette and copy — clearly labeled as specimen cards, never passed off as your pages.

Honesty

Font Lab's core promise is preview == ship: what you see in the panel is what the codegen writes.

  • Guaranteed fidelity for every font the gate admits — or an honest "may render slightly differently" badge when it can't be byte-for-byte.
  • Auto-ships only where the stack has a real seam; anywhere else it hands you the generated code with a clear reason rather than guessing. Never a half-applied change — that's the contract.
  • Text sourced externally triggers an explicit notice, never a silent edit.
  • The human's pick overrides everything.

Contributing & testing

Testers are the point — especially "it did the wrong thing on my repo" reports. The analyzer output is the most useful thing you can include.

Going deeper


Open source · MIT · Published with npm provenance — every release is traceable to this repo and commit. Built and dogfooded on jack-mcgovern.com.

來源:README.md,提交 53066a5

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分