← All skills
claude-design
94 / 100 · Low risk
Fine to try.
By JimLiu/baoyu-design (GitHub) · design · 6,426 stars · scanned at commit d9e5123
Make and revise designs in the Design (canvas) artifact format (project/canvas.json plus one .dc.html Design Component file per artboard) as local files, then open them in a local canvas editor where the user can view the artboards side by side, retype copy and adjust tweaks. Use when the user asks for an editable canvas of artboards in this format, names claude-design or the Design (canvas) type, or wants to revise a folder that holds project/canvas.json. Not for a one-off HTML prototype or a …
Works with any agent that supports SKILL.md skills.
What this skill can do
Connects to the internet
This is disclosed by the author in the skill's SKILL.md or README.
Found in 27 places.
Show 17 more
- chatgpt-plugins/baoyu-canvas/skills/claude-design/scripts/artifact.mjs, line 2055
add("makes network requests (fetch / XMLHttpRequest / WebSocket / EventSource / sendBeacon); the bundle fetches nothing"); - chatgpt-plugins/baoyu-canvas/skills/claude-design/scripts/artifact.mjs, line 2533
const response = await fetch(new URL(probe, state.url), { signal: AbortSignal.timeout(2e3) }); - chatgpt-plugins/baoyu-canvas/skills/claude-design/scripts/artifact.mjs, line 2738
const response = await fetch(`${origin}${HUB_ROUTE}`, { signal: AbortSignal.timeout(1e3) }); - chatgpt-plugins/baoyu-canvas/skills/claude-design/scripts/artifact.mjs, line 2754
const response = await fetch(`${origins[i]}${HUB_ROUTE}`, { - chatgpt-plugins/baoyu-canvas/skills/claude-design/scripts/artifact.mjs, line 2770
const response = await fetch(`${new URL(state.url).origin}${HUB_ROUTE}`, { - chatgpt-plugins/baoyu-canvas/skills/claude-design/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-canvas/skills/claude-design/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-canvas/skills/claude-design/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-canvas/skills/claude-design/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-canvas/skills/claude-design/scripts/editor/artifact-type/dc-runtime.js, line 7446
window.__resources || fetch(location.href).then( - chatgpt-plugins/baoyu-canvas/skills/claude-design/scripts/editor/artifact-type/dc-runtime.js, line 8877
return blob ? blob.text() : fetch(url).then((response) => { - chatgpt-plugins/baoyu-canvas/skills/claude-design/scripts/editor/artifact-type/dc-runtime.js, line 9253
(blob ? blob.text() : fetch(url).then( - chatgpt-plugins/baoyu-canvas/skills/claude-design/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-canvas/skills/claude-design/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-canvas/skills/claude-design/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-canvas/skills/claude-design/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-canvas/skills/claude-design/scripts/server.mjs, line 851
const response = await fetch(new URL(probe, state.url), { signal: AbortSignal.timeout(2e3) });
and 7 more places
Runs commands on your computer
This is disclosed by the author in the skill's SKILL.md or README.
Found in 3 places.
Other copies in this repository
JimLiu/baoyu-design has 1 more folder with a skill named claude-design. 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-design' ] || [ -L ~/.agents/skills/'claude-design' ]; then echo 'A skill folder named claude-design 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-canvas/skills/claude-design' && mkdir -p ~/.agents/skills && cp -R "$d"/'chatgpt-plugins/baoyu-canvas/skills/claude-design' ~/.agents/skills/'claude-design' && 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-design' ~/.claude/skills/'claude-design' (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-canvas/skills/claude-design