agentsclimarketplace

Adobe fonts skill

Skill alexh/adobe-fonts-skill

Agent skill to search Adobe Fonts, manage Typekit web kits, and return embed tags with CSS font-family snippets.

Install
npx -y skills add alexh/adobe-fonts-skill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Search Adobe Fonts (Typekit) families, create and manage web kits/projects, and return ready-to-use embed snippets plus CSS font-family values. Use when the user asks to find Adobe fonts, compare font options, set up Typekit for a website, add fonts to kits, publish kits, or generate copy/paste font embed metadata for Codex, Claude Code, or OpenCode workflows.

The file declares its own license as Complete terms in LICENSE. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

7.3 KB, as published. Nobody here has run it

Adobe Fonts

Overview

Use this skill to handle Adobe Fonts/Typekit workflow without opening the Adobe Fonts UI.

Hard Output Rules

These rules are mandatory unless the user explicitly asks otherwise.

  • Do not include per-step raw JSON in the final chat response.
  • Do not include <details> blocks with command dumps in the final chat response.
  • Keep final chat response concise (decision summary + final snippets + artifact path).
  • Put long-form content in ./adobe-fonts-skill/summary-<timestamp>.md.
  • If raw JSON archive is requested, save files under ./adobe-fonts-skill/runs/<timestamp>/ and return paths only.

Workflow

  1. Confirm environment:
    • ADOBE_FONTS_API_TOKEN is set
    • resolve CLI path and validate executable
    • if token is missing, send user directly to: https://fonts.adobe.com/account/tokens
  2. Validate auth/setup:
    • "$AFONT_BIN" doctor
  3. Warm cache once after install (recommended):
    • "$AFONT_BIN" index refresh --per-page 500 --max-pages 40
  4. Discover fonts:
    • "$AFONT_BIN" search --query <keyword> --limit 8
  5. Mutate kits with dry-run first:
    • kits ensure, kits add-family, kits publish
  6. Return integration snippets:
    • "$AFONT_BIN" kits embed --kit <kit-name-or-id>

Quick Start

Resolve a working CLI path first (recommended from any project directory):

if [ -z "${AFONT_BIN:-}" ]; then
  for p in \
    "$HOME/.agents/skills/adobe-fonts-skill/scripts/afont" \
    "$HOME/.codex/skills/adobe-fonts-skill/scripts/afont" \
    "$HOME/.claude/skills/adobe-fonts-skill/scripts/afont" \
    "$HOME/.opencode/skills/adobe-fonts-skill/scripts/afont"
  do
    if [ -x "$p" ]; then
      export AFONT_BIN="$p"
      break
    fi
  done
fi

if [ -z "${AFONT_BIN:-}" ] || [ ! -x "$AFONT_BIN" ]; then
  echo "afont CLI not found. Reinstall skill: npx skills add alexh/adobe-fonts-skill -a codex -g -y" >&2
  return 1 2>/dev/null || exit 1
fi

"$AFONT_BIN" doctor

Important path note:

  • Prefer "$AFONT_BIN" from installed skill directories.
  • Running scripts/afont from a repo checkout uses that checkout as AFONT_SKILL_DIR, so cache DB path will differ.

Supported commands:

  • index refresh
  • index status
  • index stats
  • search
  • view
  • kits list
  • kits ensure
  • kits add-family
  • kits publish
  • kits embed
  • doctor

Adaptive Decision Framework

Use the smallest workflow that satisfies the prompt. Do not force a single end-to-end path.

  1. Classify intent first:
    • Discovery only: search + shortlist only.
    • Visual comparison: discovery + limited view screenshots.
    • Integration only: kit/embed operations with minimal discovery.
    • Full workflow: discovery + kit updates + publish + snippets.
  2. Choose depth level:
    • Minimal: 2-3 candidates per category.
    • Standard: 4-6 candidates per category.
    • Deep: larger sweeps only when user asks.
  3. Cache gate before search:
    • Run "$AFONT_BIN" index status --json.
    • If empty/stale, ask user to warm cache or explicitly approve uncached.
  4. Search strategy:
    • Preferred: --cache-only after warmup.
    • Uncached only with explicit approval:
    • "$AFONT_BIN" search --query <keyword> --limit <n> --no-cache --confirm-uncached
  5. Mutations only if requested:
    • kits ensure, kits add-family, kits publish, kits embed.
    • Use --dry-run first.

Visual preview workflow:

  • Capture Adobe preview page screenshot for Codex analysis:
    • "$AFONT_BIN" view --family <family-slug> --json
    • or "$AFONT_BIN" view --url https://fonts.adobe.com/fonts/<family-slug> --json

Confirmation Gate For Long Runs

Before running potentially long index operations, ask for user confirmation. Also ask before running uncached API searches (--no-cache) when doctor/index status reports empty or stale cache. Do not describe uncached searches as "efficient" when cache is empty/stale; label them as slower and less reliable.

Treat these as long-running and confirm first:

  • "$AFONT_BIN" index refresh with default/full settings
  • "$AFONT_BIN" index refresh --max-pages > 5
  • "$AFONT_BIN" search --refresh-cache when cache is missing or stale
  • "$AFONT_BIN" search --no-cache when cache is missing or stale

When asking, offer two options:

  • Quick refresh: smaller scope (example: --max-pages 3)
  • Full refresh: complete indexing (example: --per-page 500 --max-pages 40)
  • Skip warmup and run uncached search anyway (slow and more failure-prone)

If the user confirms a full warmup, you may add a brief optional note while it runs:

  • "This can take a minute..."
  • Then tell them jokes related to Adobe or the font industry while they wait.

Output Expectations

Do not dump the final mega report directly into chat.

  • Tool-call JSON can stay in normal command output.
  • Save the final long-form deliverable to:
  • ./adobe-fonts-skill/summary-<timestamp>.md
  • In chat, return a short summary + the file path.
  • Do not paste per-step raw JSON in final chat response unless user explicitly asks.
  • Only save raw per-step JSON files when the user explicitly asks for an archive.
  • Do not create marker files like .afont_run_dir.

Final chat response format:

  1. Status: one short line.
  2. Selections: shortlist/pairing bullets.
  3. Integration snippets: link tag + minimal CSS block.
  4. Artifacts: path to summary-<timestamp>.md (and screenshot paths if captured).

Screenshot defaults (when visual comparison is useful):

  • Capture previews only for shortlisted families (typically top 2-4), not every candidate.
  • Save screenshots under:
  • ./adobe-fonts-skill/assets/
  • Example command:
  • "$AFONT_BIN" view --family <family-slug> --output-dir ./adobe-fonts-skill/assets --json
  • Include screenshot paths (or markdown image lines) inside summary-<timestamp>.md.

Always return:

  • Link tag snippet: <link rel="stylesheet" href="https://use.typekit.net/<kit>.css">
  • CSS family examples, such as font-family: legitima, serif;
  • Any API warnings from result.warnings
  • Total number of families currently in the kit after updates.
  • If total families in the kit is greater than 8, include a performance note suggesting trimming family count for page-load efficiency.

Use --json for machine parsing when chaining steps.

Search cache flags:

  • --refresh-cache to refresh index before search
  • --cache-only to avoid network calls
  • --no-cache to force API path

Safety

  • Prefer --dry-run first for mutating commands.
  • Do not modify app source files unless the user explicitly asks to apply snippets.

Resources

scripts/

  • scripts/afont - stable wrapper that sets AFONT_SKILL_DIR and executes afont.js.
  • scripts/afont.js - main Adobe Fonts CLI implementation.

references/

  • references/output-schema.md - stable JSON output contract.
  • references/api-notes.md - API/search/cache behavior notes.
  • references/troubleshooting.md - setup and runtime troubleshooting.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.