From skills
Build single-file HTML+JS+CSS utility tools (converters, viewers, debuggers) without build step. Self-contained, static-hostable, vanilla JS.
How this skill is triggered — by the user, by Claude, or both
Slash command
/skills:html-toolsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build single-file HTML applications that combine HTML, JavaScript, and CSS into one portable file. These tools solve specific problems, load instantly, require no build step, and can be hosted anywhere as static files.
Build single-file HTML applications that combine HTML, JavaScript, and CSS into one portable file. These tools solve specific problems, load instantly, require no build step, and can be hosted anywhere as static files.
This skill codifies patterns from building 150+ such tools. The goal is always: one file, no build step, no framework overhead, maximum utility.
Use this when the user wants a utility or tool — something interactive that transforms, displays, debugs, converts, or processes data. Common types:
If the user wants a polished marketing page or portfolio, use the frontend-design skill instead.
Single file: All HTML, JS, and CSS in one .html file. Trivially copyable, hostable, and shareable.
No React, no build step: Avoid React (JSX requires transpilation). Use vanilla JS or lightweight CDN libraries. If the user specifically requests React, explain the tradeoff and offer both options.
CDN dependencies only: Load from cdnjs.cloudflare.com or cdn.jsdelivr.net with pinned versions. Fewer dependencies is better, but don't reinvent well-solved problems.
Keep it small: A few hundred lines is ideal. At this size, the code is easy to understand, easy to rewrite, and easy to hand to another LLM for modification.
Copy-paste as primary I/O: Many great tools accept pasted input, transform it, and offer a "Copy to clipboard" button for the output. Default to this interaction pattern unless the problem calls for something else.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>[Tool Name]</title>
<!-- CDN dependencies with pinned versions -->
<style>
/* All CSS inline */
</style>
</head>
<body>
<!-- Tool UI -->
<script>
/* All JS inline */
</script>
</body>
</html>
Always include the viewport meta tag for mobile. Use semantic HTML where practical.
When building a tool, consider which patterns from references/patterns.md apply. Here is a quick decision framework:
How does data get in?
How does data get out?
Does the tool need to remember anything?
Does the tool need external data?
Does the tool need heavy computation?
Read references/patterns.md for detailed code examples and implementation guidance for each pattern.
When building an HTML tool, verify:
.html file with inline CSS and JS<title> tagHTML tools are utilities, not showcases. Prioritize clarity and function over visual flair. A clean sans-serif font, sensible spacing, and clear visual hierarchy are enough. Don't over-design.
That said, the tool should look intentional, not broken. Use a system font stack, consistent padding, and visible interactive affordances (buttons look like buttons, inputs look like inputs).
When the user has an existing HTML tool and wants to extend it or build something similar, read the existing tool's source first. Working tools are the best documentation for browser API patterns, library usage, and interaction flows. Use them as a starting point rather than building from scratch.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub nbbaier/agent-skills