include-icons

A command for adding monochrome or multicolour SVG icons to an icon package and its connected catalogs and documentation tools.

In plain words
What is it for?
Use it to add single-colour icons as font glyphs or multicolour icons as separate colored assets, then verify them in the catalog, CSS, gallery, and Storybook.
Why use it?
It handles the naming, placement, rebuilding, and checks needed to make a new icon available wherever the package displays or uses icons.

Command for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/aziontech/webkit/include-icons
Clone the repo
git clone --depth 1 https://github.com/aziontech/webkit

Made for: Claude Code.

Per session 57 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,578 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00057 $0.01578
Opus 5 $0.00028 $0.00789
Sonnet 5 $0.00011 $0.00316
Haiku 4.5 $0.00006 $0.00158

Measured yesterday against content hash c6f58bce8462, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

include-icons scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/commands/include-icons.md · 53 lines

How it starts

The opening of the file, as written. The whole thing — 53 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are running /include-icons. Bring new icon SVGs into the @aziontech/icons package the right way, then prove they render. Never open a PR here — that is /open-pr's job.

User input: $ARGUMENTS

Source of truth

The one decision that drives everything: monochrome vs colored

An icon font glyph is single-color — it physically cannot carry gradients or multiple fills. So every icon is one of two kinds:

Kind When Goes to Delivered as Used as
Monochrome one color, meant to inherit currentColor (UI icons, single-color logos) src/svg-raw/ai/ (or pi/) woff2 font glyph + catalog.json <i class="ai ai-<name>"> (recolorable)
Colored multicolor brand/framework logo (gradients, ≥2 fills) src/svg-raw/ai-cor/ azionicons-color.css (.ai-<name>-cor background-image) + color-catalog.json (inline SVG). Not in the font. <i class="ai ai-<name>-cor"> (keeps its palette) or inline via color-catalog

Detect colored automatically: the SVG has <linearGradient>/<radialGradient>, <clipPath>, or more than one distinct fill="#…" / fill="white" (i.e. a real palette). If it is a single solid shape that should theme with text, it is monochrome. If genuinely unsure which the user wants, ask — the choice is not reversible without redoing the work.

Steps

  1. Collect the SVGs. From $ARGUMENTS (file paths, pasted SVG markup, or names) gather each icon's raw SVG. Default set is ai (Azion); use pi only if the user says so.
  2. Classify each SVG monochrome vs colored using the rule above.
  3. Normalize the name → lowercase kebab-case, no spaces, no dots, no capitals. Map to the framework's real name. Examples: Kotlinkotlin, next.jsnext, sveltsvelte. Monochrome file: ai-<name>.svg. Colored file: ai-<name>-cor.svg. Refuse names that collide with an existing icon of the same kind (pick a distinct name).
  4. Prepare each SVG (rewrite to our conventions — never paste a foreign SVG as-is):
    • Square viewBox (0 0 14 14 for the colored set; keep the source's square viewBox otherwise).
    • Monochrome: strip hardcoded fills/strokes and set fill="currentColor"; remove <clipPath>/strokes; merge to filled <path>s. It must pass validate-svg.mjs (no fill="#000", no strokes, has a <path>).
    • Colored: keep the palette exactly — do not convert to currentColor. Gradients/clipPath are allowed (they are not run through the font validator).
  5. Place the files: monochrome → packages/icons/src/svg-raw/ai/ (or pi/); colored → packages/icons/src/svg-raw/ai-cor/.
  6. Build: cd packages/icons && npm run build. This regenerates the font, catalog.json, color-catalog.json, and azionicons-color.css. (dist/ is gitignored — it is a build artifact; never edit it by hand.)
  7. Verify (state results plainly — counts, not vibes):
    • Monochrome: the name is in dist/catalog.json as { icon: "ai ai-<name>", … }; it is not in color-catalog.json.
    • Colored: the name is in dist/color-catalog.json (well-formed <svg>, no currentColor) and has a .ai-<name>-cor rule in dist/azionicons-color.css whose data-URI decodes to the colored SVG; it is not in catalog.json and not in the woff2 font.
    • Apps: rebuild the gallery (apps/icons-gallery) and Storybook (apps/storybook) and confirm the icon appears in the grid / Foundations/Icons. For colored, confirm <i class="ai ai-<name>-cor"> paints the logo (the azionicons-color.css class is bundled via the index.css barrel).
  8. Report what you added (names, kind), how to use each (<i class="ai ai-<name>"> or <i class="ai ai-<name>-cor">), and the verification outcome.

Read the full file on GitHub · 53 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 53 lines · 0 tokens per session scan A c6f58bce8462

Subscribe to this mod's changes

include-icons is a command published in the GitHub repository aziontech/webkit (2 stars, last pushed 3d ago), licensed MIT. It adds 57 tokens to every session and 1,578 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.