← All skills
claude-slides
94 / 100 · Low risk
Fine to try.
By JimLiu/baoyu-design (GitHub) · writing · 6,426 stars · scanned at commit d9e5123
Make and revise slide decks in the Slides artifact format (project/deck.json plus one HTML file per slide) as local files, then open them in a local slide editor where the user can present, retype, drag, and export PDF, HTML or PowerPoint. Use when the user asks for an editable slide deck or presentation in this format, names claude-slides or the Slides type, or wants to revise a folder that holds project/deck.json. Not for a one-off single-file HTML deck or prototype.
Works with any agent that supports SKILL.md skills.
What this skill can do
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README.
Found in 3 places.
Connects to the internet
This is disclosed by the author in the skill's SKILL.md or README.
Found in 24 places.
Show 17 more
- chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/artifact.mjs, line 2533
const response = await fetch(new URL(probe, state.url), { signal: AbortSignal.timeout(2e3) }); - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/artifact.mjs, line 2738
const response = await fetch(`${origin}${HUB_ROUTE}`, { signal: AbortSignal.timeout(1e3) }); - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/artifact.mjs, line 2754
const response = await fetch(`${origins[i]}${HUB_ROUTE}`, { - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/artifact.mjs, line 2770
const response = await fetch(`${new URL(state.url).origin}${HUB_ROUTE}`, { - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/artifact.mjs, line 3129
const response = await fetch(new URL("__share", url), action ? { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(action) } - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/artifact.mjs, line 3214
const response = await fetch(new URL("__share", url), { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(action) }); - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/artifact.mjs, line 3479
next: KIND === "slides" ? type.startsWith("font/") ? 'Put url verbatim as the src of its face in project/deck.json "faces", then run check once the deck is writ - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/artifact.mjs, line 3685
const response = await fetch(new URL(`__comments/agent/wait?timeout=${Math.max(1, Math.round(left))}`, state.url), { - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/editor/assets/woff2-decoder-aTXEHBUp.js, line 1
import{g as IC,a as CC}from"./index-C-TTqD5o.js";var dA={exports:{}};const gC={},BC=Object.freeze(Object.defineProperty({__proto__:null,default:gC},Symbol.toStr - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/editor/share-ui.js, line 88
`;function W(){if(window.__baoyuNativeDownloads===!0)return!1;if(/\bElectron\/\d/.test(navigator.userAgent))return!0;if(window.top===window)return!1;try{return - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/editor/share-ui.js, line 92
`,X=r("div",{"data-baoyu-archive-layer":""}),Ye=X.attachShadow({mode:"open"}),fe=r("div",{class:"wrap"});Ye.append(r("style",{},L+Fe),fe);var F=null,he,K=!1;fun - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/editor/share-ui.js, line 181
`,E=t=>y?t.zh:t.en;function Q(t){let e=new Date(t),n=new Date,o=s=>new Date(s.getFullYear(),s.getMonth(),s.getDate()).getTime(),i=Math.round((o(n)-o(e))/864e5); - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/editor/share-ui.js, line 212
`,I=t=>{let e=t.presence.context;return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null},B=t=>typeof t=="string"?t:typeof t=="object"&&t!==null&&typeof t - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/server.mjs, line 851
const response = await fetch(new URL(probe, state.url), { signal: AbortSignal.timeout(2e3) }); - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/server.mjs, line 1887
return new WebSocketConnection(socket, head); - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/server.mjs, line 2311
const response = await fetch(`${origin}${HUB_ROUTE}`, { signal: AbortSignal.timeout(1e3) }); - chatgpt-plugins/baoyu-slides/skills/claude-slides/scripts/server.mjs, line 2327
const response = await fetch(`${origins[i]}${HUB_ROUTE}`, {
and 4 more places
Other copies in this repository
JimLiu/baoyu-design has 1 more folder with a skill named claude-slides. This page shows the lowest-scoring copy.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'claude-slides' ] || [ -L ~/.agents/skills/'claude-slides' ]; then echo 'A skill folder named claude-slides already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/JimLiu/baoyu-design' "$d" && git -C "$d" checkout --quiet 'd9e5123f888228cacdab69a157a4e94d2d1c629c' -- 'chatgpt-plugins/baoyu-slides/skills/claude-slides' && mkdir -p ~/.agents/skills && cp -R "$d"/'chatgpt-plugins/baoyu-slides/skills/claude-slides' ~/.agents/skills/'claude-slides' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'claude-slides' ~/.claude/skills/'claude-slides' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for JimLiu/baoyu-design shows the score of its lowest-scoring skill.

[](https://zalavijaysinh.github.io/skilltrust/repos/JimLiu/baoyu-design/)
Score history
| Date | Version | Score |
|---|
| 2026-11-14 | d9e5123 | 94 |
| 2026-11-10 | 807fe38 | 94 |
| 2026-11-08 | 7db9784 | 94 |
| 2026-11-07 | 18f3b1a | 69 |
Also found in
Identical copies of this skill exist at:
- JimLiu/open-artifacts/chatgpt-plugins/baoyu-slides/skills/claude-slides