claude-slides

claude-slides is a skill for Claude Code from JimLiu/baoyu-design. It costs 113 tokens per session (5,339 once invoked), scanned A, original, MIT.

A local tool for creating and editing slide decks as files, with one HTML file for each slide and a JSON file describing the deck. It opens the deck in an editor where you can change text and layout, then export it as PDF, HTML, or PowerPoint.

In plain words
What is it for?
Use it to build or revise presentations, edit slide content and layout, present the deck, or export it for use in other presentation tools.
Why use it?
It keeps an editable presentation in your project instead of leaving it in a closed application. You can revise the files and review the result in the local editor.

Skill for Claude Code

Written for Claude Code: ${CLAUDE_SKILL_DIR} variable.

Good fit Use it to build or revise presentations, edit slide content and layout, present the deck, or export it for use in other presentation tools.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/jimliu/baoyu-design/claude-slides
About the project

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.

JimLiu/baoyu-design · 5,475 stars · on GitHub

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.

Any agent
npx skills add JimLiu/baoyu-design --skill claude-slides
Clone the repo
git clone --depth 1 https://github.com/JimLiu/baoyu-design

Made for: Claude Code.

Wrote 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.

agentmods badge for claude-slides

README.md
[![agentmods](https://agentmods.dev/badge/skills/jimliu/baoyu-design/claude-slides/github.svg)](https://agentmods.dev/skills/jimliu/baoyu-design/claude-slides)
Your own site
<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.

agentmods 80×15 button for claude-slides

Your own site · 80×15
<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>
Per session 113 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 5,339 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.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

Measured today against content hash 05dae466702e, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

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.

The scan reads SKILL.md. This mod also ships 5 executable files (scripts/artifact.mjs, scripts/editor/assets/index-Cs3WMELF.js, scripts/editor/assets/woff2-decoder-BlLpfYDy.js, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

dsh-plugins/dsh-claude-slides/skills/claude-slides/SKILL.md · 175 lines

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":[]}. createdOnFiles and lists: an index YOU create has both exactly so (no lists if 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 EITHER href (only a https://fonts.googleapis.com/css2?… link) OR src: "/_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. designSystems and project/ds/<folder>/: written only by the install (step 3). An existing index: keep every key you don't change, named here or not; never add lists; title empty or Untitled: 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's id equals it. A slide shows while its file exists; order places it (a file order leaves 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> or project/ds/<folder>/<path> (step 3); never a data: URI, other path or http(s) URL.
  • project/assets/: the uploads (The calls); never write there yourself.

Read the full file on GitHub · 175 lines

Files

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.

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. today Changed · +10 lines 05dae466702e
  2. yesterday First seen · 165 lines · 113 tokens per session scan A bca06d5a0597

Subscribe to this mod's changes

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.

Related

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.

nexu-io/open-design · 44 tokens

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.

nexu-io/open-design · 50 tokens

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.

nexu-io/open-design · 49 tokens

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.

nexu-io/open-design · 47 tokens

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…

nexu-io/open-design · 155 tokens

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…

nexu-io/open-design · 91 tokens