html-artifacts
Skill2 starsChanged 52 days agoApache-2.0View on GitHub
Build a single self-contained, interactive HTML artifact and pop it open in the browser. Covers reports, slide decks, flowcharts/diagrams, design systems, component sheets, clickable prototypes, animation sandboxes, code-review / PR writeups, module maps, research explainers, status / incident reports, and throwaway editor UIs (triage board, feature-flag toggler, prompt tuner). Reach for this WHENEVER the user wants to SEE something instead of reading prose about it — phrases like "make an HTML page/artifact", "build me a deck / report / diagram / mockup / dashboard / prototype", "show me this as a webpage", "visualize this", "render this", "pop it open / 弹开看看", "做成一页 HTML", or any time the answer lands better as a spatial, interactive page than as markdown. Output is one self-contained .html saved to ~/.claude/artifacts/ and opened in the browser, styled with the Claude editorial design system and modeled on the bundled reference/*.html pattern library ("the unreasonable effectiveness of HTML"). NOT for shippable production UI / React components, and NOT a replacement for /talk-html when the user specifically wants a shareable gist recap link.
12 other projects use a version of this.
Adopted by
Most recently taken up by
- langchain-ai/open-swetheir own version, first seen Nov 8, 2026
- fabiandistler/agentstheir own version, first seen Nov 1, 2026
- Astatide1337/Skillstheir own version, first seen Oct 20, 2026
- fernandoxavier02/html-artifactstheir own version, first seen Oct 13, 2026
- PeteChu/skillstheir own version, first seen Oct 11, 2026
- dogum/html-artifactstheir own version, first seen Sep 14, 2026
Other versions12 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 12
- langchain-ai/open-swe★ 11ksame name
- dogum/html-artifacts★ 147same name
- joshuadavidthomas/agent-skills★ 49same name
- fabiandistler/agents★ 2same name
- SNIKO/agent-skills★ 2same name
- Astatide1337/Skills★ 1same name
- dovydaskarbutovskis20-art/html-artifacts★ 1same name
- fernandoxavier02/html-artifacts★ 1same name
- Jiliac/skills★ 1same name
- PeteChu/skills★ 1same name
2 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository6 other files it gives its agents.
- AGENTS.mdAGENTS.md
- chatcut-production-mirror/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- run-skill-generatorSkill
- runSkill
- verifySkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 3 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 27
reacts to the thing: instead of imagining it from a description.
- Very specific: line 59
Save to
~/.claude/artifacts/and pop it open: Use the helper: - Very specific: line 72
Every file is a full, self-contained example.
- Distinctive: line 172
Spatial beats linear: If the content has a shape — a graph, a timeline, a before/after — draw the shape.
- Distinctive: line 174
Earn every interaction: Add a slider, toggle, drag, or live-rerender only where the human's *decision* improves by playing with it (tuning …
- Very specific: line 188
Default path: ~/.claude/artifacts/<slug>.html (the dir already exists).
- Distinctive: line 198
After opening, report the path so the user knows where it lives.
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
HTML Artifacts — the unreasonable effectiveness of HTML
Markdown flattens things that are inherently spatial or interactive: a diff, a
module graph, a set of design options, a four-screen flow, a 30-ticket backlog.
A single self-contained HTML file renders them as themselves — the human
reacts to the thing instead of imagining it from a description. That tighter
feedback loop is the whole point. This skill builds that file, drops it in
~/.claude/artifacts/, and pops it open.
The bundled reference/*.html is a library of 20 worked examples (from Thariq
Shihab's "The unreasonable effectiveness of HTML"). They are the source of truth
for how good these should look and feel — read the one closest to the task
before writing, then adapt. Don't reinvent; the references already solved
layout, interaction, and polish for each genre.
When to reach for this
- The user asks for an HTML page / artifact / "one-pager" / webpage to look at.
- The answer is a report, plan, deck, diagram, design, prototype, explainer, or a small editing UI — anything in the index below.
- The content is spatial (diffs, maps, timelines, flowcharts) or wants interaction (toggles, sliders, drag, live-rerender, arrow-key nav).
- The user says "pop it open", "弹开看看", "做成一页", "show me", "visualize".
Skip it for: production UI / React components (build those for real), pure data
files, or when the user explicitly wants /talk-html to publish a shareable
gist recap.
Workflow
- Pick the genre → open the matching reference. Map the request to a row in
the index, then actually
Readthatreference/<file>.html. It shows the layout, the interaction model, and the quality bar to match. - Build ONE self-contained
.html. Everything inline — no CDN fonts, no external scripts, no build step. Vanilla HTML + CSS + a little JS; inline<svg>for diagrams. It must open correctly from afile://path with no network. Use the house design system below. Save to
~/.claude/artifacts/and pop it open. Use the helper:bash ~/.claude/skills/html-artifacts/scripts/open-artifact.sh <slug> [source.html]It writes
~/.claude/artifacts/<slug>.html(from a file arg or stdin),opens it in the default browser, and prints the absolute path. Then tell the user the path. Reuse-friendly slugs:status-report-w24,deploy-flowchart,triage-board. Add a date suffix (-2026-06-29) when versions matter.
Reference library — index
Every file is a full, self-contained example. Read the closest match before
building. Live versions: https://thariqs.github.io/html-effectiveness/<file>.
Exploration & Planning
| # | reference file | build this when you need… |
| 01 | 01-exploration-code-approaches.html | Three code approaches side-by-side, trade-offs called out inline — for "which way should we solve this?" |
| 02 | 02-exploration-visual-designs.html | Visual design directions — a few layout/palette options rendered live so the user reacts instead of imagining. |
| 16 | 16-implementation-plan.html | Implementation plan to hand off — milestone timeline, data-flow diagram, inline mockups, the risky code, a risk table. |
Code Review & Understanding
| # | reference file | build this when you need… |
| 03 | 03-code-review-pr.html | Annotated pull request — a diff with margin notes, severity tags, jump links. Scans better than a terminal. |
| 17 | 17-pr-writeup.html | PR writeup for reviewers — author's side: motivation, before/after, file-by-file tour with the why, where to focus. |
| 04 | 04-code-understanding.html | Module map — an unfamiliar package as boxes + arrows, hot path highlighted, entry points listed. |
Design
| # | reference file | build this when you need… |
| 05 | 05-design-system.html | Living design system — colors, type scale, spacing tokens as copy-able swatches. |
| 06 | 06-component-variants.html | Component variants — every size / state / intent of one component on a single review sheet. |
Prototyping
| # | reference file | build this when you need… |
| 07 | 07-prototype-animation.html | Animation sandbox — a transition in isolation with duration / easing sliders to tune before wiring in. |
| 08 | 08-prototype-interaction.html | Clickable flow — a few screens linked together; enough fidelity to feel whether the interaction is right. |
Illustrations & Diagrams
| # | reference file | build this when you need… |
| 10 | 10-svg-illustrations.html | SVG figure sheet — diagrams for a post, drawn inline so each can be tweaked and copied out. |
| 13 | 13-flowchart-diagram.html | Annotated flowchart — a pipeline as a real flowchart; click a step for what runs, timings, failure paths. |
Decks
| # | reference file | build this when you need… |
| 09 | 09-slide-deck.html | Arrow-key slide deck — a short presentation as one HTML file, ←/→ to navigate, no build step. |
Research & Learning
| # | reference file | build this when you need… |
| 14 | 14-research-feature-explainer.html | "How a feature works" — TL;DR box, collapsible request-path steps, tabbed config snippets, FAQ. |
| 15 | 15-research-concept-explainer.html | Concept explainer — a concept taught with a live interactive widget, a comparison table, a hover-linked glossary. |
Reports
| # | reference file | build this when you need… |
| 11 | 11-status-report.html | Weekly status — what shipped, what slipped, a small chart, formatted for a Monday skim. |
| 12 | 12-incident-report.html | Incident timeline — post-mortem with a minute-by-minute timeline, log excerpts, follow-up checklist. |
Custom Editing Interfaces (throwaway tools that keep a human in the loop)
| # | reference file | build this when you need… |
| 18 | 18-editor-triage-board.html | Ticket triage board — drag tickets across Now / Next / Later / Cut, then copy the ordering out as markdown. |
| 19 | 19-editor-feature-flags.html | Feature-flag editor — toggles grouped by area, dependency warnings, a "copy diff" button for changed keys. |
| 20 | 20-editor-prompt-tuner.html | Prompt tuner — editable template with highlighted variable slots; sample inputs re-render live as you type. |
House design system (Claude editorial)
The references share one look: warm ivory paper, a clay accent, serif display
headings over a sans body, mono for labels and code. Reusing it makes new
artifacts feel native. Drop this in <head> and build on it:
<style>
:root{
--ivory:#FAF9F5; --paper:#FFFFFF; --slate:#141413;
--clay:#D97757; --clay-d:#B85C3E; --oat:#E3DACC; --olive:#788C5D;
--g100:#F0EEE6; --g200:#E6E3DA; --g300:#D1CFC5; --g500:#87867F; --g700:#3D3D3A;
--serif:ui-serif,Georgia,"Times New Roman",Times,serif;
--sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
--mono:ui-monospace,"SF Mono",Menlo,Monaco,Consolas,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--slate);font-family:var(--sans);
line-height:1.55;-webkit-font-smoothing:antialiased}
.wrap{max-width:1120px;margin:0 auto;padding:0 32px 140px}
h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:-.018em}
h1{font-size:clamp(38px,5.4vw,62px);line-height:1.06}
h1 em{font-style:italic;color:var(--clay)}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.12em;
text-transform:uppercase;color:var(--g500)}
code,kbd,.mono{font-family:var(--mono)}
a{color:var(--clay)}
</style>Type roles: serif = display headings (italic + clay for emphasis);
mono = eyebrows, labels, tags, code, numbers; sans = body. The clay
#D97757 is the only loud color — use it sparingly for the one thing the eye
should land on. Greys (--g100…g700) carry structure.
Principles that make these work
- Self-contained, always. One file, no network. It must open from
file://with fonts, styles, scripts, and SVG all inline. This is why the user can keep it, mail it, and reopen it next month. - Spatial beats linear. If the content has a shape — a graph, a timeline, a before/after — draw the shape. That's the edge over markdown.
- Earn every interaction. Add a slider, toggle, drag, or live-rerender only where the human's decision improves by playing with it (tuning an easing, ordering a backlog). Static content stays static — don't bolt on motion.
- Include the exit. Editing UIs (18–20) end in a copy-out button — markdown, a diff, a JSON blob — so the human's decisions flow back into the real workflow. An interface with no export is a dead end.
- Skim-first hierarchy. Lead with the TL;DR / the chart / the headline number. Collapsible sections and tabs hold the detail. Respect the Monday- morning skim.
- Quiet, confident polish. Generous whitespace, one accent color, real type hierarchy. Match the reference's restraint — no gradients-on-everything.
Saving & popping open
- Default path:
~/.claude/artifacts/<slug>.html(the dir already exists). - Helper does write +
open+ prints the path:# from an existing file: bash ~/.claude/skills/html-artifacts/scripts/open-artifact.sh deploy-flowchart /tmp/draft.html # or pipe content in: cat <<'HTML' | bash ~/.claude/skills/html-artifacts/scripts/open-artifact.sh status-report-w24 <!doctype html>... HTML - After opening, report the path so the user knows where it lives. Popping open is the deliverable — the user reads the page in the browser, not in chat.
Anti-patterns
- ❌ Linking external CSS/JS/fonts (breaks offline, breaks
file://). Inline it. - ❌ Pulling in React / Vue / a bundler for a throwaway artifact. Vanilla only.
- ❌ Writing a prose document and calling it HTML. If it's just paragraphs, it should have been markdown — this skill is for things prose can't hold.
- ❌ Building without reading the closest reference first. The reference is the quality bar; skipping it produces generic output.
- ❌ Saving somewhere other than
~/.claude/artifacts/, or forgetting toopenit. The user expects it on screen.
Credits & license
The 20 reference/*.html files are from
ThariqS/html-effectiveness
("The unreasonable effectiveness of HTML"), © 2026 Anthropic PBC, Apache-2.0,
bundled here unmodified with their original per-file copyright headers. See
NOTICE. The skill scaffolding is © 2026 Liu Shiyu, Apache-2.0 (LICENSE).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

