Agent skill

Ideagram unDraw Illustrations

by codeswithroh in codeswithroh/tastemaker

Turns a concept, feature or blog post into one on-brand illustration by matching it to a real unDraw SVG in a local library and recoloring it to the brand accent.

MITAuto-check passedMedia & Creative

Install Ideagram unDraw Illustrations

skills CLI
$ npx skills add codeswithroh/tastemaker --skill ideagram -a claude-code

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

GitHub CLI
$ gh skill install codeswithroh/tastemaker ideagram --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/codeswithroh/tastemaker.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/tastemaker/ideagram .claude/skills/ideagram && 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
ideagram
GitHub stars
437
Token cost
~2.2k tokens
SKILL.md length
1,091 words
Files
27 (incl. scripts, references, assets)
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Turns a concept, feature or blog post into one on-brand illustration by matching it to a real unDraw SVG in a local library and recoloring it to the brand accent.

  • Works in 6 steps: Distill the concept → Match to the best illustration in the… → Recolor to the brand → …
  • Needing a hero, feature or blog illustration for an idea
  • SKILL.md covers The core idea, Setup: a local unDraw library, Workflow and Reference files, plus 3 more sections
  • Calls python3

What it does

Drawing paths by hand gives crude pictograms, so this skill reuses real unDraw illustrations instead. It distills the idea into one sentence and a few keywords, matches it to the best illustration in a local library folder (by default ~/.ideagram/undraw/), recolors it to the brand accent and composes it if needed before delivery. Two separate ideas get two illustrations rather than one crowded one.

You build the library yourself by downloading illustrations from undraw.co, because the skill neither bundles nor redistributes unDraw's files, and 20 to 30 illustrations on common themes cover most requests. scripts/build_library_index.py writes index.md and index.json, which the agent reads before matching. If no library exists, the agent says so and points you to unDraw, and falls back to generated primitives such as figures and props only with a clear warning about the quality drop. Reference notes cover composition, metaphors, a prompt template and a QA checklist.

When your agent uses it

  • Needing a hero, feature or blog illustration for an idea
  • Visualizing a concept for a tweet or an article
  • Producing an unDraw-style graphic in your brand color

Example prompts

  • “Make an illustration for this blog post about onboarding new customers, in our teal brand color.”
  • “I need a graphic for this tweet about data security.”
  • “Visualize the idea of shipping faster as a feature illustration.”

Requirements

  • A local folder of downloaded unDraw SVGs, by default ~/.ideagram/undraw/
  • Python 3, to build the library index

Workflow steps

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

  1. Distill the concept
  2. Match to the best illustration in the library
  3. Recolor to the brand
  4. (Optional) Compose a custom scene from real components
  5. Fallback only if there's no usable library
  6. Validate and deliver

What it can do on your machine

Read from SKILL.md and the folder at commit e39b4bf. 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

    Ships 1 file in scripts/, which the agent can run.

    Shell commands in SKILL.md call:

    • python3

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

  • Network

    Links to these hosts (documentation or services it may open):

    • undraw.co

    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

Ideagram unDraw Illustrations loads about 2.2k tokens when it runs, and up to ~9.5k if it reads all its reference files. Until then it costs about 162 tokens; SKILL.md has 1,091 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~162
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~9.5k

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); the scripts in this folder are not scanned.

SKILL.md

The full file from codeswithroh/tastemaker at commit e39b4bf, republished under its MIT licence (© codeswithroh). 1,091 words, ~2,173 tokens.

Download SKILL.mdSave it as .claude/skills/ideagram/SKILL.md (or your agent's skills folder). This skill also uses 26 other files; get the full folder from GitHub.
name
ideagram
description
Turn a concept, feature description, blog post, or pitch into a single beautiful, on-brand illustration by matching it to a real unDraw illustration in a local library and recoloring it to the brand accent — genuine illustrator quality, not an AI-drawn approximation. Use whenever the user asks to "make an illustration," "create a graphic," "visualize this concept," "explain this visually," wants something "unDraw-style" or "Storyset-style," needs a hero/feature/blog illustration, or says an idea needs a picture. Trigger even if they don't name a style — "make something to explain X" or "I need a graphic for this tweet" both qualify.

Ideagram

The core idea

Produce one beautiful, on-brand illustration for a concept by matching it to a real unDraw illustration and recoloring it to the brand — never by hand-drawing. unDraw's figures are dozens of hand-placed bezier anchors from a professional illustrator; freehand-generating path coordinates produces crude pictograms, not art. The quality lives in the real path data, so this skill reuses it: match → recolor → (compose, if needed) → deliver. The output is genuinely illustrator-grade because it is the illustrator's work, just made on-brand.

Read references/undraw-anatomy.md once — it's the dissection of how these files are built and why this reuse approach works.

Setup: a local unDraw library

This skill reads real unDraw SVGs from a local library folder — it does not bundle or redistribute unDraw's files (their license bars compiling their assets into a redistributed collection; downloading them for your own use is free and needs no attribution).

  • Default library location: ~/.ideagram/undraw/.
  • Populate it by downloading illustrations from undraw.co/illustrations (free, no attribution, unlimited) — 20-30 illustrations spanning common themes (teams, devices, data, growth, communication, security, travel) covers most requests well.
  • After adding SVGs, (re)build the index: python3 scripts/build_library_index.py. This writes index.md (human-scannable) and index.json (machine-readable) into the library folder — read index.md first for matching instead of guessing from filenames cold.
  • If no library exists yet, say so plainly and point the user at undraw.co (30 seconds to grab a few). Only fall back to the crude generated-primitive path (references/style-contract.md) if they genuinely can't, and be upfront that it's a large quality drop from real unDraw art.

Workflow

Step 1 — Distill the concept

Reduce the input to one sentence — "this is fundamentally about ___" — plus a few keywords. If the content genuinely holds two ideas, that's two illustrations, not one crowded brief.

Step 2 — Match to the best illustration in the library

Read ~/.ideagram/undraw/index.md (run scripts/build_library_index.py first if it doesn't exist or the library changed). Match the concept's keywords against each entry's keyword list — prefer a match on the scene, not just a loose word overlap: a dashboard/analytics concept wants an illustration with a screen or chart; a teamwork concept wants one with multiple figures. If several are close, pick the one whose scene most literally embodies the concept (see the worked example below). If nothing in the library is a real fit, say so and either ask the user to grab a closer one from undraw.co or fall back (Step 5) — don't force a bad match.

Worked example: "an AI creative director composing a whole design system from one prompt" → not literally "AI" or "design system" in any filename, but mobile-site-builder (a person actively laying out screen components) is the closest scene match — the visual metaphor matters more than exact keyword overlap.

Step 3 — Recolor to the brand
python3 scripts/recolor_undraw.py <matched>.svg --accent "#<brand-hex>" --out design/<name>.svg

This swaps only unDraw's #6c63ff accent family for the brand color, leaving every skin tone, hair, clothing, and neutral exactly as drawn — verified on real multi-figure scenes. Check the matched illustration's index.md row for a flagged secondary accent (green/pink); if present and it should also change, add --also "#8ed16f:#<hex>". If the user gives no brand color, unDraw's default purple is a fine, deliberate choice — don't invent one.

If you need to redo a color (the user asks for a different one), re-copy the original unDraw source into the output path first, then recolor — recolor_undraw.py only remaps #6c63ff outward, so recoloring an already-recolored file does nothing (the purple it looks for is gone). Never edit a previously-branded file's colors by hand to "fix" this.

Step 4 — (Optional) Compose a custom scene from real components

Only when no single library illustration fits and a custom scene is worth the extra effort:

  • List a source's components with scripts/extract_component.py source.svg --list, then lift one with --match "translate(...)" --out part.svg.
  • Assemble whole components into one <svg> as a real scene — a background element, the concept's midground device, then the figure interacting with it, plus a ground shadow — not a floating figure. This is what separates a designed illustration from a subject stranded on white.
  • Place each with <g transform="translate() scale()">; render and read getBBox() to size/position accurately rather than guessing coordinates from nested transforms.
  • Reuse whole components. Recombining sub-limbs (an arm from one figure onto another's torso) is fragile — different coordinate spaces and shading directions rarely join cleanly.
  • Recolor the finished composition (Step 3).
Show full SKILL.md (378 more words)Show less
Step 5 — Fallback only if there's no usable library

If the user genuinely has no unDraw library and won't create one, references/style-contract.md + assets/primitives/ still exist — but they produce simple flat pictograms, not illustrator-grade art. Use only as a last resort, and say plainly that a couple of real unDraw SVGs would look dramatically better for the same effort.

Step 6 — Validate and deliver
  • python3 scripts/validate_assets.py <final>.svg — catches malformed SVG (e.g. a -- inside a comment) that renders as a broken image in strict browsers, invisible unless actually parsed.
  • Deliver the SVG directly for web use — smallest, crispest, infinitely recolorable. For social/raster: scripts/export_png.py <final>.svg --out design/export/ (needs cairosvg + system cairo; degrades honestly if either is missing, and the SVG stays fully usable regardless).

Reference files

FileRead when
references/undraw-anatomy.mdAlways, first — the palette, structure, and the reuse technique this skill is built on
~/.ideagram/undraw/index.mdStep 2 — matching a concept to the right illustration
references/style-contract.md, references/metaphor-library.mdOnly for the Step 5 fallback (no library, generated primitives)

Scripts

ScriptPurpose
scripts/build_library_index.pyIndex a local unDraw library into index.md/index.json for fast, accurate matching. Run after adding new SVGs.
scripts/recolor_undraw.pyRecolor a real unDraw illustration's accent to a brand color, preserving skin/ink/clothing/neutrals. The workhorse.
scripts/extract_component.pyLift a whole figure/device/panel out of a source unDraw SVG for composing a new scene.
scripts/validate_assets.pyVerify the finished SVG is well-formed before delivering.
scripts/export_png.pyExport flattened PNGs at standard social/presentation sizes (needs cairosvg + system cairo).

Honesty

Say what actually happened: which illustration was matched and why, whether it was recolored, and if you fell back to generated primitives because there was no library, say that plainly and note the quality gap rather than presenting it as equal. Respect the sourcing model — reuse real unDraw art from the user's local library for their own sites; never redistribute unDraw's files into a public repo.

A note on image generation

An alternative, higher-ceiling approach exists — generating an original illustration with an image model, steered by a rigorous style system (references/style-dna.md, composition-patterns.md, prompt-template.md, qa-checklist.md) — for the rare case a session has a genuine image-generation tool available and the library has no good match. Most Claude sessions don't have one, so this isn't part of the default workflow above; only reach for it if such a tool is actually present, and say so.

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

Files

SKILL.md and 26 other files (scripts, references, assets) in skills/tastemaker/ideagram of codeswithroh/tastemaker.

  • SKILL.md
  • LICENSE
  • README.md
  • assets/primitives/figure-pointing.svg
  • assets/primitives/figure-sitting-desk.svg
  • assets/primitives/figure-standing.svg
  • assets/primitives/prop-chart-bar.svg
  • assets/primitives/prop-document.svg
  • assets/primitives/prop-envelope.svg
  • assets/primitives/prop-lightbulb.svg
  • assets/primitives/prop-rocket.svg
  • assets/primitives/prop-shield.svg
  • assets/primitives/prop-speech-bubble.svg
  • references/composition-patterns.md
  • references/metaphor-library.md
  • references/prompt-template.md
  • references/qa-checklist.md
  • references/style-contract.md
  • … and 9 more

Open the folder on GitHubat commit e39b4bf

Compare with similar skills

Ideagram unDraw Illustrations 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.

Ideagram unDraw Illustrations compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ideagram unDraw Illustrations this skillcodeswithroh/tastemaker437—~2.2kAutomated safety check: PassMIT
Web Visualsglifxyz/glif-mcp-server212—~1.4kAutomated safety check: PassMIT
Imagegennexu-io/open-design100k—~300Automated safety check: PassApache-2.0
Processing Imagesoaustegard/claude-skills150—~2kAutomated safety check: PassMIT
Unified Design Routerassafkip/kipi-system112—~2.9kAutomated safety check: PassMIT
Omd Mediakwakseongjae/oh-my-design531—~1.1kAutomated safety check: PassMIT

Similar skills

  • Web Visuals

    glifxyz/glif-mcp-server

    Make images, textures, illustrations and background video for a website or app you are building, with Glif, and wire them into the code.

    212 GitHub stars~1.4k tokensUpdated today
    Media & CreativeAuto-check passed
  • Imagegen

    nexu-io/open-design

    Generate and edit images using OpenAI's Image API for project assets — UI mockups, icons, illustrations, social cards, and visual references.

    100k GitHub stars~300 tokensUpdated today
    Media & CreativeAuto-check passed
  • Processing Images

    oaustegard/claude-skills

    Image processing toolkit awareness. An agent skill from oaustegard/claude-skills.

    150 GitHub stars~2k tokensUpdated 5 days ago
    Media & CreativeAuto-check passed
  • Unified Design Router

    assafkip/kipi-system

    Routes visual design requests to built-in logo, corporate identity, slide, banner, social photo and icon workflows, backed by style data and AI image generation.

    112 GitHub stars~2.9k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Omd Media

    kwakseongjae/oh-my-design

    Brand-consistent asset sets from DESIGN.md — hero, section illustrations, icon sets, OG image — generated through whichever channel the user actually has (grok build imagegen, Codex $imagegen…

    531 GitHub stars~1.1k tokensUpdated 6 days ago
    Frontend & DesignAuto-check passed
  • Guizang Social Cards

    op7418/guizang-social-card-skill

    Produces social card sets for Xiaohongshu and WeChat: carousels, Live Photo motion cards and puzzle layouts, and WeChat cover pairs, rendered from single-file HTML.

    7.4k GitHub starsUsed in 1 repo~7.8k tokens
    Media & CreativeAuto-check passed

More from codeswithroh/tastemaker

  • Tastemaker UI Design

    codeswithroh/tastemaker

    Grounds AI-built interfaces in real reference images and a saved personal taste profile, so UI work avoids the generic defaults of typical generated apps.

    437 GitHub stars~16k tokensUpdated 8 days ago
    Auto-check passed

Questions about Ideagram unDraw Illustrations

What does Ideagram unDraw Illustrations do?

Turns a concept, feature or blog post into one on-brand illustration by matching it to a real unDraw SVG in a local library and recoloring it to the brand accent. Drawing paths by hand gives crude pictograms, so this skill reuses real unDraw illustrations instead.ideagram/undraw/), recolors it to the brand accent and composes it if needed before delivery.

When should I use Ideagram unDraw Illustrations?

Ideagram unDraw Illustrations fits situations like: needing a hero, feature or blog illustration for an idea; visualizing a concept for a tweet or an article; producing an unDraw-style graphic in your brand color.

How do I install Ideagram unDraw Illustrations in Claude Code?

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

How do I install Ideagram unDraw Illustrations in Codex?

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

Can I use Ideagram unDraw Illustrations 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 codeswithroh/tastemaker --skill ideagram -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ideagram, .gemini/skills/ideagram, .github/skills/ideagram and .opencode/skills/ideagram in your project.

What does Ideagram unDraw Illustrations need to run?

Going by SKILL.md and its folder, Ideagram unDraw Illustrations needs the command-line tools its instructions call (python3). Our summary lists: A local folder of downloaded unDraw SVGs, by default ~/.ideagram/undraw/; Python 3, to build the library index.

Does Ideagram unDraw Illustrations access the network?

SKILL.md names 1 domain. As links in the text: undraw.co. This is read from the text; nothing was executed.

Is Ideagram unDraw Illustrations 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Ideagram unDraw Illustrations use?

Ideagram unDraw Illustrations is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ideagram unDraw Illustrations use?

About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.3k tokens, read only when the agent opens those files.

What are the alternatives to Ideagram unDraw Illustrations?

Skills that share tags, products or a category with Ideagram unDraw Illustrations: Web Visuals (glifxyz/glif-mcp-server, 212 stars), Imagegen (nexu-io/open-design, 100k stars), Processing Images (oaustegard/claude-skills, 150 stars) and Unified Design Router (assafkip/kipi-system, 112 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ideagram unDraw Illustrations?

codeswithroh (a GitHub user) maintains it in codeswithroh/tastemaker, which has 437 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 29, 2026.

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