Install
$ agentstack add skill-robzilla1738-htmlshop-htmlshop ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
htmlshop
Two things in one tool:
- A generation workflow. The assistant writes a single self-contained HTML file (fixed dimensions, inline CSS) into the user's projects folder. If there's a
design-system.mdaround, use it. - A local editor launched with
npx htmlshop. Opens a folder, shows a gallery, lets the user click into any design and edit text, fonts, layout, colors, and transforms. Autosaves to disk.
Everything runs locally. Nothing uploads anywhere.
Projects folder
Default location: ~/htmlshop/projects/. Gets created the first time npx htmlshop runs without arguments.
Convention inside that folder:
- Subfolders are carousels or multi-slide projects. e.g.
~/htmlshop/projects/apologetics-series/slide-1.html,slide-2.html. - Loose
.htmlor.htmfiles at the top level are standalone designs.
When creating a new design, write it under ~/htmlshop/projects//. Pick a kebab-case slug from the user's request. One file per design. For a carousel, write slide-1.html, slide-2.html, etc. into the same subfolder.
Creating a new design
When the user asks for a new design in natural language, like "/htmlshop create a 1080×1080 Instagram post titled 'Truth isn't loud' using my design-system.md":
- Look for the design system if they mentioned one. Check the exact path they gave, then the current directory (
./design-system.md,./brand.md,./BRAND.md), then~/htmlshop/design-system.md. If you find it, read it and pull out fonts, colors, spacing, and tone. If they referenced one and you can't find it, ask where it is. If they didn't reference one, use sensible defaults (DM Sans, neutral palette, 1080×1080).
- Pick a slug and filename. Kebab-case from intent. Standalone goes to
~/htmlshop/projects/.html. Carousel goes to~/htmlshop/projects//slide-1.htmland so on. Prefer.html;.htmis accepted for existing files.
- Write the HTML. Constraints:
- One
.htmlfile. All CSS inline in a `` block. No external JS. - Fixed dimensions:
body { width: Xpx; height: Ypx; margin: 0; position: relative; overflow: hidden }. Common sizes: 1080×1080, 1080×1350, 1920×1080. - Google Fonts via `` is fine. Otherwise use system-ui.
- Don't reference external images unless the user gave you URLs, or put local files at
assets/*relative to the HTML. - Follow the design system's typography, colors, and tokens if one exists.
- Use the Write tool to save the file(s). Make the parent directory if needed.
- Launch the editor in the background so the user can keep chatting:
``bash npx htmlshop ~/htmlshop/projects/ ``
Use your tool's background process mode when available. npx htmlshop with no path works if you wrote a standalone design at the top of projects/.
- Tell the user the URL the command prints (usually
http://localhost:5178). Mention that edits autosave and that they can add more slides from inside the editor with+ Artboard.
Opening / editing existing designs
If the user just wants to open what they already have ("open htmlshop", "edit my designs"):
- Pick a folder. Priority order: path the user mentioned, then current directory if it has
.htmlfiles, then~/htmlshop/projects/. - Run
npx htmlshopin the background. - Give the user the URL.
What the editor offers
- Gallery with folders (carousels). Click a card to open single; folder headers get an "Open as carousel" button when they have 2+ files.
- Click to select, drag to move. Static or relative elements auto-promote to
position: absoluteon first drag. 8 resize handles on the selected element. ⌫ deletes, ⌘D duplicates. - Layers panel on the left, labeled by visible text. Eye icon hides/shows (editor-only, not saved).
- Properties panel on the right: text + B/I/U, typography with a font-family dropdown auto-filled from your designs + web standards, layout (display, position, dimensions, overflow, visibility), background (color picker + shorthand for gradients), border + effects + blend modes.
- ⌘Z / ⌘⇧Z undo per stage (100 steps). Zoom with ⌘− / ⌘+ / ⌘0.
+ Artboardadds a new slide next to the open one(s).- Rename/Delete in the Layers sidebar renames or removes the chosen artboard file.
+ Imageuploads to/assets/and places it.- Export: pick PNG/JPG, 1×/2×/3×, this design or all slides, save location (via the browser File System Access API when available).
Notes
- Always launch the editor in the background when your tool supports it.
npx htmlshopdoesn't return until the user closes it. - Users may have live edits when they come back to you. Don't overwrite files without confirmation if you're regenerating.
- If the user says "change", "update", or "tweak" something that already exists, edit the file. Don't create a new one.
- Keep generated HTML in a single file. Don't split CSS out — the editor serializes everything back to one file on save.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: robzilla1738
- Source: robzilla1738/htmlshop
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.