baoyu-design is a portable Agent Skill that lets local coding agents create UI mockups, prototypes, wireframes, landing pages, dashboards, mobile apps, and slide decks as self-contained HTML. Designers and developers use it inside tools such as Cursor, Claude Code, and Claude Desktop without relying on the hosted Claude Design website. The catalogue entries are agents and skills that provide this local design workflow.
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.
npx skills add JimLiu/baoyu-design --skill claude-slidesgit clone --depth 1 https://github.com/JimLiu/baoyu-designWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jimliu/baoyu-design/claude-slides)<a href="https://agentmods.dev/skills/jimliu/baoyu-design/claude-slides"><img src="https://agentmods.dev/badge/skills/jimliu/baoyu-design/claude-slides/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jimliu/baoyu-design/claude-slides"><img src="https://agentmods.dev/badge/skills/jimliu/baoyu-design/claude-slides.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00113 | $0.05339 |
| Opus 5.5 | $0.00045 | $0.02136 |
| Sonnet 5.5 | $0.00023 | $0.01068 |
| Haiku 4.5 | $0.00011 | $0.00534 |
Grade A, and why
claude-slides 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 today.
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.
How it starts
The opening of the file, as written. The whole thing — 175 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Slides
This skill is a local build of the claude.ai Slides artifact type: the rules below are the type's own, with the
Artifact tool replaced by files on disk and this skill's scripts/artifact.mjs (The calls). A deck is a folder,
<root>; its content is ITS OWN files under <root>/project/; write only there. The editor page
(scripts/editor/, served by artifact.mjs open) reads those files and saves the user's edits back into them.
The deck exists
Work on THAT deck, its <root> in every command: never create
another. Read <root>/project/deck.json: none, or
its order is empty: an empty deck, see Creating. Else see Revising.
If no deck exists yet: <root> = a new folder designs/<slug>/ named for the deck (designs/q3-review/) in the
working directory, or where the user says; the deck's name goes in title (REQUIRED).
Tell the user what happens to the deck, never the mechanism.
Asked to send it to apps like Canva: there is no Send to here; the editor's download menu saves PDF, HTML and PowerPoint (.pptx) files the user can import there.
Naming slide 7 to the user? Link it too: open's url + #slide-7 (number, not id).
The deck's files
project/deck.json, the index:{"v":4,"createdOnFiles":{"v":1,"at":"2026-09-14T18:20:00Z"},"lists":"css","title":"Q3","order":["cover","plan"],"cover":"cover","sections":{"s1":{"description":"Numbers","start":"cover"}},"faces":{"source-serif-4":{"family":"Source Serif 4","href":"https://fonts.googleapis.com/css2?family=Source+Serif+4:[email protected]&display=swap"}},"designSystems":[]}.createdOnFilesandlists: an index YOU create has both exactly so (nolistsif the deck already had slides),at= now.order= slide ids in deck order.sections= your outline: any key → a run's one sentence and its first slide's id; the first starts at the cover.cover= the cover slide's id. Ids:[A-Za-z0-9_-]{1,64}.faces= one entry per typeface the slides name (at most 4), keyed by the family lowercased, spaces as-:family(a letter first, then letters, digits, spaces,_,-; 40 at most) plus EITHERhref(only ahttps://fonts.googleapis.com/css2?…link) ORsrc:"/_blob/<id>"(an uploaded woff2/woff/ttf/otf, step 2) or"project/ds/<folder>/<path>"(step 3); a rule broken: the entry is ignored. Basic/generic faces need no entry.designSystemsandproject/ds/<folder>/: written only by the install (step 3). An existing index: keep every key you don't change, named here or not; never addlists;titleempty orUntitled: set a name, else keep it.project/slides/<id>.html, one per slide: EXACTLY ONE<section id="<id>" …>in the slide format (below), nothing before or after it: no<html>,<head>,<title>,<link>,<style>or<body>. The file name is the slide id and the section'sidequals it. A slide shows while its file exists;orderplaces it (a fileorderleaves out shows last). Speaker notes: plain text in one<aside>, the section's LAST child, at most 4,000 characters; anyone who opens the deck can read them. Images:<img src>=/_blob/<id>orproject/ds/<folder>/<path>(step 3); never adata:URI, other path or http(s) URL.project/assets/: the uploads (The calls); never write there yourself.
What ships with it
28 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- artifact-type/reference/craft.md 11 KB
- artifact-type/reference/deck-files.md 16 KB
- artifact-type/reference/diagram-recipes.md 14 KB
- artifact-type/reference/diagrams.md 16 KB
- artifact-type/reference/fonts.md 13 KB
- artifact-type/reference/format.md 16 KB
- artifact-type/reference/google-fonts-families.json 26 KB
- artifact-type/reference/google-fonts-notices.json 59 KB
- artifact-type/reference/google-fonts-reserved.json 7.2 KB
- artifact-type/reference/images.md 7.8 KB
- artifact-type/reference/layout.md 11 KB
- artifact-type/reference/photo-library.md 3.3 KB
- artifact-type/reference/questions.md 4.2 KB
- artifact-type/reference/styles.md 7.8 KB
- artifact-type/reference/view-state.md 9.4 KB
- scripts/artifact.mjs 148 KB runs code
- scripts/editor/artifact-type/reference/google-fonts-families.json 26 KB
- scripts/editor/artifact-type/reference/google-fonts-notices.json 59 KB
- scripts/editor/artifact-type/reference/google-fonts-reserved.json 7.2 KB
- scripts/editor/assets/anthropicons-fizzy-lake-yNspLiPZ.woff2 80 KB
- scripts/editor/assets/index-Cs3WMELF.js 4591 KB runs code
- scripts/editor/assets/index-DooSdFer.css 460 KB
- scripts/editor/assets/woff2-decoder-BlLpfYDy.js 298 KB runs code
- scripts/editor/index.html 3.1 KB
- scripts/editor/node/compiler.cjs 10108 KB runs code
- scripts/editor/node/third-party-licenses.txt 93 KB
- scripts/editor/third-party-licenses.txt 82 KB
- scripts/server.mjs 61 KB runs code
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.
- today Changed · +10 lines 05dae466702e
- yesterday First seen · 165 lines · 113 tokens per session scan A bca06d5a0597
claude-slides is a skill published in the GitHub repository JimLiu/baoyu-design (5,475 stars, last pushed today), licensed MIT. It adds 113 tokens to every session and 5,339 once invoked, about $0.0005 per session on Opus 5.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-10-30.
Other skills, from other repositories
fs-editorial-forest
Art-directing a fashion house's annual report — the editorial system, the photography rhythm, and the data spreads. Built as a decision-grade design craft deck for brand stakeholders, exec audience.
html-ppt-zhangzara-pink-script
A wedding-anniversary tribute photo essay — a decade in scenes, the turning points, and the quiet meaning of staying. Built as a decision-grade story deck for couple, family, friends.
html-ppt-zhangzara-retro-zine
A neighborhood zine on the disappearing corner shops — portraits, voices, and what a block loses when they close. Built as a decision-grade story deck for community, local readers.
html-ppt-zhangzara-studio
A photography studio's portfolio-and-rate deck — the signature work, the process, and the packages that win the brief. Built as a decision-grade design craft deck for prospective clients.
wireframe-annotated
An annotated / redline lo-fi wireframe — a desktop landing/marketing page drawn as flat greyboxes inside a browser chrome frame, overlaid with numbered annotation pins (①②③④⑤) in a single accent color, paired with a right-hand SPEC PANEL that lists each numbered pin with a short engineering / UX note. This is the…
motion-frames
A single-frame motion-design composition with looping CSS animations — rotating type ring, animated globe, ticking timer, parallax labels. Renders as a hero video poster you can hand straight to HyperFrames or any keyframe-based exporter. Use when the brief asks for "motion design", "animated hero", "loop", "video…