← All skills
claude-dashboard
94 / 100 · Low risk
Fine to try.
By JimLiu/baoyu-design (GitHub) · design · 6,281 stars · scanned at commit 807fe38
Use this for a local, data-backed dashboard, metrics page, KPI tracker, scorecard, data visualization or recurring report that opens in the bundled live editor: a page or scroll story of charts, numbers and tables over datasets (a CSV/TSV/JSON file the user has, or data you gather and attach), with a Sources panel that shows where every number comes from. Read it when creating, filling, refreshing or revising one. You write the datasets, then the page as plain HTML, into the dashboard's own sto…
Works with any agent that supports SKILL.md skills.
This skill is no longer available at its GitHub address. The information below is from the last time we could read it and may be out of date.
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 19 places.
Show 16 more
- chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/artifact.mjs, line 939
const response = await fetch(`${origins[i]}${HUB_ROUTE}`, { - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/artifact.mjs, line 955
const response = await fetch(`${new URL(state.url).origin}${HUB_ROUTE}`, { - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/artifact.mjs, line 1694
var X=XMLHttpRequest.prototype.open; - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/artifact.mjs, line 1695
XMLHttpRequest.prototype.open=function(m,u){var a=[].slice.call(arguments);a[1]=under(u);return X.apply(this,a)}; - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/artifact.mjs, line 1715
var GUEST_WATCH = "setInterval(function(){fetch('/__share/me',{cache:'no-store'}).then(function(r){if(r.status===403)return location.reload();return r.json().th - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/artifact.mjs, line 2914
const response = await fetch(new URL("__share", url), action ? { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(action) } - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/artifact.mjs, line 4762
if (/\bfetch\(|XMLHttpRequest|new WebSocket|import\(/.test(s.text)) warn(s.doc, "reaches the network or imports a module; the page has no network: data comes fr - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/artifact.mjs, line 5451
const response = await fetch(new URL(`__comments/agent/wait?timeout=${Math.max(1, Math.round(left))}`, state.url), { - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/editor/local-host.js, line 64
const doFetch = options.fetch ?? ((...args) => fetch(...args)); - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/editor/local-host.js, line 278
var sessionReady = fetch(api("/_api/session"), { cache: "no-store" }).then((r) => r.ok ? r.json() : null).then((s) => { - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/editor/local-host.js, line 291
res = await fetch(url, { cache: "no-store", ...init }); - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/editor/local-host.js, line 417
const res = await fetch(api("/_api/upload"), { - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/editor/share-ui.js, line 88
`;function F(){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-dashboard/skills/claude-dashboard/scripts/editor/share-ui.js, line 92
`,X=o("div",{"data-baoyu-archive-layer":""}),We=X.attachShadow({mode:"open"}),ge=o("div",{class:"wrap"});We.append(o("style",{},$+De),ge);var W=null,he,K=!1;fun - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/editor/share-ui.js, line 181
`,T=t=>y?t.zh:t.en;function Q(t){let e=new Date(t),n=new Date,i=s=>new Date(s.getFullYear(),s.getMonth(),s.getDate()).getTime(),r=Math.round((i(n)-i(e))/864e5); - chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard/scripts/editor/share-ui.js, line 208
`,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
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'claude-dashboard' ] || [ -L ~/.agents/skills/'claude-dashboard' ]; then echo 'A skill folder named claude-dashboard 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 '807fe38ac8f0a82afcfba0d38ef3ef5c32e69c93' -- 'chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard' && mkdir -p ~/.agents/skills && cp -R "$d"/'chatgpt-plugins/baoyu-dashboard/skills/claude-dashboard' ~/.agents/skills/'claude-dashboard' && 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-dashboard' ~/.claude/skills/'claude-dashboard' (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-10 | 807fe38 | 94 |
| 2026-11-08 | 7db9784 | 94 |
| 2026-11-07 | 18f3b1a | 69 |