Agent skill

Bm Favicon Creator

by buildermethods in buildermethods/bm-skills

Generate a complete favicon set (SVG, PNGs, multi-resolution .ico, Apple touch icon) from a Lucide icon (default) or another source SVG, then wire the favicon meta tags into the codebase.

MITAuto-check passedMarketing & SEO

Install Bm Favicon Creator

skills CLI
$ npx skills add buildermethods/bm-skills --skill bm-favicon-creator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install buildermethods/bm-skills bm-favicon-creator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/buildermethods/bm-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/bm-favicon-creator .claude/skills/bm-favicon-creator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
bm-favicon-creator
GitHub stars
146
Token cost
~2.4k tokens
SKILL.md length
1,082 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Generate a complete favicon set (SVG, PNGs, multi-resolution .ico, Apple touch icon) from a Lucide icon (default) or another source SVG, then wire the favicon meta tags into the codebase.

  • Works in 8 steps: Gather inputs from the user → Locate the layout file → Determine the public asset directory → …
  • The user wants to set up a favicon
  • SKILL.md covers Prerequisites, Step 1 — Gather inputs from…, Step 2 — Locate the layout file and Step 3 — Determine the public…, plus 6 more sections
  • Calls magick and brew; reaches w3.org

What it does

Bm Favicon Creator is an agent skill from buildermethods/bm-skills. Generate a complete favicon set (SVG, PNGs, multi-resolution .ico, Apple touch icon) from a Lucide icon (default) or another source SVG, then wire the favicon meta tags into the codebase. Use when the user wants to set up a favicon, replace a placeholder favicon, or brand the app icon.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Marketing & SEO, covering On-page SEO. The repository describes itself as: A collection of public open-source tools for builders, by Brian Casel @ Builder Methods (buildermethods.com). The licence is MIT.

When your agent uses it

  • The user wants to set up a favicon
  • Replace a placeholder favicon
  • Brand the app icon

Example prompts

  • “/bm-favicon-creator”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Gather inputs from the user
  2. Locate the layout file
  3. Determine the public asset directory
  4. Generate the SVG for browser tabs (rounded square with centered icon)
  5. Generate the raster source SVG
  6. Rasterize all sizes
  7. Wire up the meta tags
  8. Report what changed

What it can do on your machine

Read from SKILL.md and the folder at commit b6b6a72. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • magick
    • brew

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • w3.org

    Also links to:

    • lucide.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bm Favicon Creator loads about 2.4k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 1,082 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~76
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from buildermethods/bm-skills at commit b6b6a72, republished under its MIT licence (© buildermethods). 1,082 words, ~2,409 tokens.

Download SKILL.mdSave it as .claude/skills/bm-favicon-creator/SKILL.md (or your agent's skills folder).
name
bm-favicon-creator
description
Generate a complete favicon set (SVG, PNGs, multi-resolution .ico, Apple touch icon) from a Lucide icon (default) or another source SVG, then wire the favicon meta tags into the codebase. Use when the user wants to set up a favicon, replace a placeholder favicon, or brand the app icon.
user_invocable
true

Favicon Creator

Generate a complete, cross-device favicon set and wire it into the project's layout so it shows up correctly in every browser, tab, home screen, and pinned shortcut.

The favicon is always rendered as a square with tight rounded corners, with the chosen icon centered inside on a solid background color.

Prerequisites

Requires rsvg-convert and ImageMagick's magick on the system. If either is missing, stop and ask the user to install them (brew install librsvg imagemagick). Do not attempt a workaround.

Step 1 — Gather inputs from the user

Ask each question in order. Wait for an answer before moving on. Do not assume defaults beyond what is specified.

1.1 Icon source

Ask: "What icon do you want to use? You can:

  • Name a Lucide icon (e.g. rocket, sparkles, book-open) — this is the default
  • Name an icon from a different icon library (and which library)
  • Point me to an existing .svg file in the repo
  • Describe the icon you want and I'll generate the SVG"

Resolve the answer:

  • Default — Lucide icon by name. If the user names an icon without naming a library, treat it as a Lucide icon. Fetch the exact SVG from lucide.dev for that icon and use it as the source. Lucide icons use stroke="currentColor" and fill="none". Always set stroke-width="1.5" on the root <svg> element (override whatever value Lucide ships with). Do not redraw, simplify, or recreate the paths — use the exact paths from Lucide.
  • Other icon library. If the user names a different library (e.g. Heroicons, Phosphor, Tabler, Material Symbols), fetch the exact SVG from that library's official source.
  • Existing SVG path. Read the file and confirm the viewBox / intrinsic size. If there is no viewBox, derive one from width/height.
  • Described icon. Generate a minimal SVG matching the description. Keep it geometric and legible at 16×16.
1.2 Background color

Ask: "What background color should the favicon square use? (hex, e.g. #FCF8F2)"

This fills the rounded square and also becomes the page theme-color meta tag value.

1.3 Icon color

Ask: "What color should the icon itself be? (hex, e.g. #22D3EE)"

For Lucide / stroke-based icons, this becomes the stroke color. For filled icons, this becomes the fill color.

Confirm both colors back to the user before generating.

Step 2 — Locate the layout file

Find where favicon <link> tags should live. First, read CLAUDE.md and/or AGENTS.md if they exist — they may declare a convention for where head/meta tags go.

If no convention is declared, check in this order:

  • Next.js (app router): app/layout.tsx / app/layout.jsx — favicons are typically handled via file conventions (app/icon.*, app/apple-icon.*) and/or a metadata export
  • Next.js (pages router): pages/_document.tsx / pages/_app.tsx
  • Rails: app/views/layouts/application.html.erb (or .haml, .slim)
  • Vite/React (Inertia, SPA): index.html or app/views/layouts/application.html.erb
  • SvelteKit: src/app.html
  • Astro: src/layouts/*.astro or individual page layouts
  • Plain HTML: index.html

If you can't find the layout, grep for rel="icon" or apple-touch-icon across the repo. If still ambiguous, ask the user.

Step 3 — Determine the public asset directory

Always look for a public/ folder first. Most modern frameworks use it, and the four canonical files (favicon.ico, icon.png, icon.svg, apple-touch-icon.png) must always land there if it exists.

If the project also has another conventional asset location (e.g. Next.js app router's app/ directory for file-convention icons), write there in addition — but public/ is always required.

If neither exists, ask the user where assets should go, then ensure a public/ equivalent.

Step 4 — Generate the SVG for browser tabs (rounded square with centered icon)

Write public/icon.svg as a square with tight rounded corners, the background color filling the square, and the source icon centered inside. After writing it, also copy the same file to public/favicon.svg (some browsers and link-preview crawlers look for favicon.svg at the site root by name).

Canvas: 80 × 80. Corner radius: 16 (tight rounded corners — 20% of the canvas).

The inner icon should occupy ~60% of the canvas (safe zone for iOS rounded corner masking). Round offsets to whole pixels.

Stroke-based icon (Lucide, etc.) — keep fill="none" and apply the icon color via stroke. Always use stroke-width="1.5" for Lucide:

svg
<svg width="80" height="80" viewBox="0 0 80 80" xmlns="http://www.w3.org/2000/svg">
  <rect width="80" height="80" rx="16" fill="#FCF8F2"/>
  <g transform="translate(Xoff Yoff) scale(N)" stroke="#22D3EE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none">
    <!-- exact Lucide paths here, fill/stroke attributes stripped from individual paths -->
  </g>
</svg>

Filled icon — apply the icon color via fill:

svg
<svg width="80" height="80" viewBox="0 0 80 80" xmlns="http://www.w3.org/2000/svg">
  <rect width="80" height="80" rx="16" fill="#FCF8F2"/>
  <g transform="translate(Xoff Yoff) scale(N)" fill="#22D3EE">
    <!-- source paths, individual fill attributes removed -->
  </g>
</svg>

Centering math — if the source viewBox is W × H, target inner size T = 48 (60% of 80):

  • N = T / max(W, H)
  • Xoff = (80 - W * N) / 2
  • Yoff = (80 - H * N) / 2
Show full SKILL.md (382 more words)Show less

Step 5 — Generate the raster source SVG

Write a second, scaled-up SVG to /tmp/favicon-source.svg — same composition, but at 512 × 512 with corner radius 102 (~20% of 512). This is the source for all PNGs and the ICO.

svg
<svg width="512" height="512" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
  <rect width="512" height="512" rx="102" fill="#FCF8F2"/>
  <g transform="translate(Xoff Yoff) scale(N)" stroke="#22D3EE" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" fill="none">
    <!-- source paths -->
  </g>
</svg>

For Lucide, multiply stroke-width by N if needed so it renders proportionally at large sizes, OR keep stroke-width="1.5" outside the transform and apply vector-effect="non-scaling-stroke" on the paths. Simpler: keep the icon's stroke crisp by scaling its stroke-width with N (e.g. stroke-width="${1.5 * N}").

Inner-icon target: T = 308 (~60% of 512). Same offset math as Step 4.

Step 6 — Rasterize all sizes

Run from the project root, with $PUBLIC set to the public directory (usually public):

bash
rsvg-convert -w 512 -h 512 /tmp/favicon-source.svg -o $PUBLIC/icon.png
rsvg-convert -w 192 -h 192 /tmp/favicon-source.svg -o $PUBLIC/icon-192.png
rsvg-convert -w 180 -h 180 /tmp/favicon-source.svg -o $PUBLIC/apple-touch-icon.png
rsvg-convert -w 48  -h 48  /tmp/favicon-source.svg -o /tmp/fav-48.png
rsvg-convert -w 32  -h 32  /tmp/favicon-source.svg -o /tmp/fav-32.png
rsvg-convert -w 16  -h 16  /tmp/favicon-source.svg -o /tmp/fav-16.png
magick /tmp/fav-16.png /tmp/fav-32.png /tmp/fav-48.png $PUBLIC/favicon.ico

This produces, in public/:

  • favicon.ico — multi-resolution 16/32/48 for Windows/legacy
  • icon.svg and favicon.svg — the rounded square mark for modern browser tabs
  • icon.png — 512×512 PNG
  • icon-192.png — 192×192 PNG for Android
  • apple-touch-icon.png — 180×180 PNG for iOS home screen

Step 7 — Wire up the meta tags

Edit the layout file. Inside <head>, ensure these tags exist (add or replace — do not duplicate):

html
<meta name="theme-color" content="#FCF8F2">
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="icon" href="/icon-192.png" type="image/png" sizes="192x192">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">

Notes:

  • theme-color uses the background color from Step 1.2.
  • favicon.ico gets sizes="32x32" (not any) so modern browsers prefer the SVG.
  • If the project already has a <meta name="theme-color"> or any <link rel="icon"> / apple-touch-icon, replace them — don't stack duplicates.
  • Next.js app router: prefer the file convention. Drop the generated files at app/icon.svg, app/icon.png, app/apple-icon.png, app/favicon.ico (rename accordingly) and let Next emit the tags. Still write the same four files to public/ as well. Only hand-write <link> tags if the project already does.

Step 8 — Report what changed

Summarize for the user:

  • The icon source used (Lucide name, library, file path, or description)
  • The background and icon colors
  • Which files were written
  • Which head tags were added or replaced
  • A reminder to hard-refresh the browser (or close and reopen the tab) to bust the favicon cache

Rules

  • Do not leave behind a half-generated set. If any step fails, stop and report.
  • Do not add a manifest.json unless the project already has one.
  • Do not commit the changes. This skill only generates assets and edits the layout.
  • Do not use emojis in file contents.
  • Keep the generated SVGs minimal — no decorative comments, no unused attributes.
  • Always preserve the exact Lucide path data when a Lucide icon is requested. Only the stroke width and color may change.

© buildermethods, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/bm-favicon-creator of buildermethods/bm-skills.

Open the folder on GitHubat commit b6b6a72

Compare with similar skills

Bm Favicon Creator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Bm Favicon Creator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bm Favicon Creator this skillbuildermethods/bm-skills146—~2.4kAutomated safety check: PassMIT
SEO Keyword ClusteringAgriciDaniel/claude-seo18k2 repos~3.3kAutomated safety check: PassMIT
SEO Content Brief GeneratorAgriciDaniel/claude-seo18k2 repos~2.6kAutomated safety check: PassMIT
Nemoclaw Maintainer Normalize Title TagsNVIDIA/NemoClaw23k—~693Automated safety check: PassApache-2.0
AI Citability Scorerzubair-trabzada/geo-seo-claude11k2 repos~3.7kAutomated safety check: NotesMIT
SEO Drift MonitorAgriciDaniel/claude-seo18k1 repos~1.9kAutomated safety check: PassMIT

Similar skills

  • SEO Keyword Clustering

    AgriciDaniel/claude-seo

    Clusters keywords by how much their search results overlap and designs a hub-and-spoke content plan with an internal link matrix and an interactive cluster map.

    18k GitHub starsUsed in 2 repos~3.3k tokens
    Marketing & SEOAuto-check passed
  • SEO Content Brief Generator

    AgriciDaniel/claude-seo

    Builds research-backed SEO content briefs with competitor scoring, per-section word counts and page-type templates, for new pages or improving existing ones.

    18k GitHub starsUsed in 2 repos~2.6k tokens
    Marketing & SEOAuto-check passed
  • Remove bracketed NemoClaw tags from GitHub issue and PR titles.

    23k GitHub stars~693 tokensUpdated yesterday
    Marketing & SEOAuto-check passed
  • AI Citability Scorer

    zubair-trabzada/geo-seo-claude

    Scores how likely AI assistants are to quote passages from a web page and suggests rewrites that make those passages easier to extract.

    11k GitHub starsUsed in 2 repos~3.7k tokens
    Marketing & SEOAuto-check: notes
  • SEO Drift Monitor

    AgriciDaniel/claude-seo

    Captures baselines of a page's SEO-critical elements, compares later snapshots against them and flags regressions by severity, like version control for on-page SEO.

    18k GitHub starsUsed in 1 repo~1.9k tokens
    Marketing & SEOAuto-check passed
  • Meta Tags Optimizer

    nowork-studio/notfair-plugin

    Writes and improves title tags, meta descriptions, Open Graph and Twitter card tags for click-through, with character counts and A/B test variants.

    3.9k GitHub starsUsed in 1 repo~2.7k tokens
    Marketing & SEOAuto-check passed

More from buildermethods/bm-skills

  • Bm Design System

    buildermethods/bm-skills

    Guides you through creating and implementing a design system for your application.

    146 GitHub stars~6.5k tokensUpdated yesterday
    Auto-check passed
  • Bm Prd Creator

    buildermethods/bm-skills

    A skill your agent uses when the user wants to create a Product Requirements Document (PRD) for a new app, feature, or project.

    146 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Bm Skill Builder

    buildermethods/bm-skills

    Build a new agent skill (or restructure an existing one) following Builder Methods conventions.

    146 GitHub stars~735 tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Bm Favicon Creator

What does Bm Favicon Creator do?

Generate a complete favicon set (SVG, PNGs, multi-resolution .ico, Apple touch icon) from a Lucide icon (default) or another source SVG, then wire the favicon meta tags into the codebase. Bm Favicon Creator is an agent skill from buildermethods/bm-skills.ico, Apple touch icon) from a Lucide icon (default) or another source SVG, then wire the favicon meta tags into the codebase.

When should I use Bm Favicon Creator?

Bm Favicon Creator fits situations like: the user wants to set up a favicon; replace a placeholder favicon; brand the app icon.

How do I install Bm Favicon Creator in Claude Code?

Run `npx skills add buildermethods/bm-skills --skill bm-favicon-creator -a claude-code`. Or copy the skill folder (skills/bm-favicon-creator in buildermethods/bm-skills) into .claude/skills/bm-favicon-creator in your project. Claude Code loads it when a task matches its description.

How do I install Bm Favicon Creator in Codex?

Run `npx skills add buildermethods/bm-skills --skill bm-favicon-creator -a codex`. Or copy the skill folder (skills/bm-favicon-creator in buildermethods/bm-skills) into .agents/skills/bm-favicon-creator in your project. Codex loads it when a task matches its description.

Can I use Bm Favicon Creator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add buildermethods/bm-skills --skill bm-favicon-creator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bm-favicon-creator, .gemini/skills/bm-favicon-creator, .github/skills/bm-favicon-creator and .opencode/skills/bm-favicon-creator in your project.

What does Bm Favicon Creator need to run?

Going by SKILL.md and its folder, Bm Favicon Creator needs the command-line tools its instructions call (magick and brew).

Does Bm Favicon Creator access the network?

SKILL.md names 2 domains. In commands or code: w3.org; the agent is likely to contact it when it follows the instructions. As links in the text: lucide.dev. This is read from the text; nothing was executed.

Is Bm Favicon Creator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Bm Favicon Creator use?

Bm Favicon Creator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bm Favicon Creator use?

About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Bm Favicon Creator?

Skills that share tags, products or a category with Bm Favicon Creator: SEO Keyword Clustering (AgriciDaniel/claude-seo, 18k stars), SEO Content Brief Generator (AgriciDaniel/claude-seo, 18k stars), Nemoclaw Maintainer Normalize Title Tags (NVIDIA/NemoClaw, 23k stars) and AI Citability Scorer (zubair-trabzada/geo-seo-claude, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bm Favicon Creator?

buildermethods (a GitHub organization) maintains it in buildermethods/bm-skills, which has 146 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 8, 2026.

Source: buildermethods/bm-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.