Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

sketch — Claude Code skill: UI mockups and how to install

Generates 2-3 HTML mockup variants to compare design directions before you commit to production code.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add NousResearch/hermes-agent --skill sketch -a claude-code
Open on GitHub

What sketch does

The skill produces several self-contained HTML files, each taking a different design stance: dense vs. airy, utilitarian vs. editorial, card-based vs. bare-content. Every variant is a single file with inline styles, system fonts or one Google Font, and interactive states (hovers, toggles, filters). After generation, the skill verifies the render via browser_exec, loading each file in a browser and capturing a screenshot to catch layout bugs invisible in source inspection.

The method: intake (feel, references, core user action), then 2-3 variants, then a head-to-head comparison table with the agent's take. Each variant gets a README.md explaining the principle and trade-offs. The upstream GSD project this skill was adapted from is archived and no longer maintained — this version runs standalone without GSD dependencies.

What it helps with

  • compare design directions before committing to production
  • sketch an interface in several visual approaches
  • verify layout renders cleanly before showing a client
  • choose between dense utilitarian and airy editorial treatments
  • generate interactive HTML variants for side-by-side comparison

Example prompts for the agent

  • sketch this screen in 2-3 variants
  • show me what the dashboard could look like — give me some takes
  • mockup this form before I build it, compare dense vs. calm

How to install sketch

1Skills CLI (Vercel)

npx skills add NousResearch/hermes-agent --skill sketch -a claude-code

2Manually: put the files in place

~/.claude/skills/sketch/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/sketch/

From the same set42

The whole set →
dogfood Teknium (teknium1), Hermes Agent A skill for exploratory QA of a web app: it walks the pages, captures console errors and screenshots, then writes a bug report. Claude Code CX Codex Cursor +1 6,400installs humanizer Siqi Chen (@blader, https://github.com/blader/humanizer), ported by Hermes Agent This skill removes common AI writing patterns and gives drafts a more natural voice. Use it for docs, posts, emails, and other text. Claude Code CX Codex Cursor +1 1,300installs popular-web-designs Hermes Agent + Teknium (design systems sourced from VoltAgent/awesome-design-md) 54 real-world design systems (Stripe, Linear, Vercel, Claude) with CSS tokens, typography, and components for building pages styled after known brands. Claude Code CX Codex Cursor +1 914installs powerpoint Nous Research Creates, reads, and edits .pptx presentations with python-pptx. Use it for slide decks, extracting presentation content, and template-based updates. Claude Code CX Codex Cursor +1 751installs claude-design BadTechBandit Skill for building HTML artifacts — landing pages, prototypes, decks — in Claude Code, Codex and Cursor. Reads project context and produces a self-contained file with markup and styles. Claude Code CX Codex Cursor +1 645installs llm-wiki Hermes Agent A skill for building a persistent knowledge base from interlinked markdown files. The agent summarizes sources, cross-references pages, and maintains consistency while you curate and direct the analysis. Claude Code CX Codex Cursor +1 603installs yuanbao Teknium (teknium1), Hermes Agent Connects agents to Yuanbao groups to query members, send mentions using @nickname, and deliver direct messages with attachments. Claude Code CX Codex Cursor +1 564installs songwriting-and-ai-music Teknium (teknium1), Hermes Agent Provides songwriting structures, prosody techniques, and Suno AI prompt formulas that rely on sound details rather than artist names. Claude Code CX Codex Cursor +1 563installs

Similar

gpui-kit-design-guides longbridge Supplies normative desktop interface rules for GPUI Kit applications. Useful when creating new screens, styling components, or auditing UI against review checklists. Claude Code CX Codex Cursor +1 959installs threejs-postprocessing calesthio This skill helps an agent add Three.js post-processing such as glow, blur, depth of field, and screen effects. Use it when building a scene’s visual pipeline. Claude Code CX Codex Cursor +1 1,000installs flux-best-practices Black Forest Labs Prompting guide for BFL FLUX.1 and FLUX.2 image models. Helps format scene descriptions, handle typography, and pick the right model. Claude Code CX Codex Cursor +1 1,000installs user-personas phuryn Generates three detailed user personas from research data with jobs-to-be-done, pains, and behavioral insights. Helps teams segment research findings for product decisions. Claude Code CX Codex Cursor +1 3,000installs brainstorm-ideas-existing phuryn Skill to brainstorm product ideas for an existing product from PM, Designer, and Engineer perspectives. Use it to generate features, solve identified opportunities, or ideate with your product trio. Claude Code CX Codex Cursor +1 3,000installs logo-generator op7418 Generates SVG logos with at least six design variants and creates high-end showcase images using 12 professional background styles via Gemini API. Claude Code CX Codex Cursor +1 3,900installs frontend-design official anthropics This skill guides intentional visual design for new interfaces and redesigns. Use it when a generic generated UI is not enough. Claude Code Claude.ai 1,025,790installs grill-me Matt Pocock grill-me interviews you about a plan or design to expose gaps and sharpen decisions. Use it before implementation starts. Claude Code 1,424,476installs

Questions about sketch

How to install sketch in Claude Code?

Run npx skills add NousResearch/hermes-agent --skill sketch -a claude-code, and the skill will be installed at ~/.claude/skills/sketch/SKILL.md.

Why use sketch when you can just build a production component?

The skill creates throwaway mockups to compare several visual directions before you pick one. Production code comes after the design stance is decided.

What does 'upstream GSD project is archived' mean?

The original gsd-build/get-shit-done project this skill was adapted from is no longer maintained on GitHub. The sketch skill runs standalone and does not require GSD.

Source text

SKILL.md · MIT
---
name: sketch
description: "Throwaway HTML mockups: 2-3 design variants to compare."
version: 1.0.1
author: Hermes Agent (adapted from gsd-build/get-shit-done)
license: MIT
platforms: [linux, macos, windows]
metadata:
  hermes:
    tags: [sketch, mockup, design, ui, prototype, html, variants, exploration, wireframe, comparison]
    related_skills: [spike, claude-design, popular-web-designs, excalidraw]
---

# Sketch

Use this skill when the user wants to **see a design direction before committing** to one — exploring a UI/UX idea as disposable HTML mockups. The point is to generate 2-3 interactive variants so the user can compare visual directions side-by-side, not to produce shippable code.

Load this when the user says things like "sketch this screen", "show me what X could look like", "compare layout A vs B", "give me 2-3 takes on this UI", "let me see some variants", "mockup this before I build".

## When NOT to use this

- User wants a production component — use `claude-design` or build it properly
- User wants a polished one-off HTML artifact (landing page, deck) — `claude-design`
- User wants a diagram — `excalidraw`, `architecture-diagram`
- The design is already locked — just build it

## If the user has the full GSD system installed

If `gsd-sketch` shows up as a sibling skill (installed via `npx get-shit-done-cc --hermes`), you can use **`gsd-sketch`** for the fuller workflow: persistent `.planning/sketches/` with MANIFEST, frontier mode analysis, consistency audits across past sketches, and integration with the rest of GSD. This skill is the lightweight standalone version — one-off sketching without the state machinery.

> **Note:** The upstream GSD project ([gsd-build/get-shit-done](https://github.com/gsd-build/get-shit-done)) is **archived / no longer maintained** on GitHub. The npm package (`get-shit-done-cc`) still installs, but treat it as an archived community project — this standalone `sketch` skill is the maintained path and needs nothing extra.

## Core method

```
intake  →  variants  →  head-to-head  →  pick winner (or iterate)
```

### 1. Intake (skip if the user already gave you enough)

Before generating variants, get three things — one question at a time, not all at once:

1. **Feel.** "What should this feel like? Adjectives, emotions, a vibe." — *"calm, editorial, like Linear"* tells you more than *"minimal"*.
2. **References.** "What apps, sites, or products capture the feel you're imagining?" — actual references beat abstract descriptions.
3. **Core action.** "What's the single most important thing a user does on this screen?" — the variants should all serve this well; if they don't, they're just decoration.

Reflect each answer briefly before the next question. If the user already gave you all three upfront, skip straight to variants.

### 2. Variants (2-3, never 1, rarely 4+)

Produce **2-3 variants** in one go. Each variant is a complete, standalone HTML file. Don't describe variants — build them. The point is comparison.

Each variant should take a **different design stance**, not different pixel values. Three good variant axes:

- **Density:** compact / airy / ultra-dense (pick two contrasting poles)
- **Emphasis:** content-first / action-first / tool-first
- **Aesthetic:** editorial / utilitarian / playful
- **Layout:** single-column / sidebar / split-pane
- **Grounding:** card-based / bare-content / document-style

Pick one axis and pull apart from it. Two variants that differ only in accent color are wasted effort — the user can't distinguish them.

**Variant naming:** describe the stance, not the number.

```
sketches/
├── 001-calm-editorial/
│   ├── index.html
│   └── README.md
├── 001-utilitarian-dense/
│   ├── index.html
│   └── README.md
└── 001-playful-split/
    ├── index.html
    └── README.md
```

### 3. Make them real HTML

Each variant is a **single self-contained HTML file**:

- Inline `<style>` — no build step, no external CSS
- System fonts or one Google Font via `<link>`
- Tailwind via CDN (`<script src="https://cdn.tailwindcss.com"></script>`) is fine
- Realistic fake content — actual sentences, actual names, not "Lorem ipsum"
- **Interactive**: links clickable, hovers real, at least one state transition (open/close, filter, toggle). A frozen static image is a worse spike than a sloppy animated one.

Open it in a browser. If it looks broken, fix it before showing the user.

**Verify variants visually — use Hermes' `browser_exec`.** Don't just write HTML and hope it renders; load each variant and look at it:

```
browser_exec(code='''
# Checking sketch 001 renders cleanly
new_tab("file:///absolute/path/to/sketches/001-calm-editorial/index.html")
wait_for_load()
capture_screenshot()
''')
```

Look at the attached screenshot and ask: does this layout look clean and readable, any visible bugs (overlapping text, unstyled elements, broken images)? (non-vision models: `vision_analyze` the printed path with that question). It catches layout bugs that pure source inspection misses (e.g. a font import that silently failed, a flex container that collapsed). Fix and reload (`goto_url(...)` with the same URL) until each variant looks right.

**Default CSS reset + system font stack** for fast starts:

```html
<style>
  * { box-sizing: border-box; margin: 0; padding: 0; }
  body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
                 "Helvetica Neue", Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
    color: #1a1a1a;
    background: #fafafa;
    line-height: 1.5;
  }
</style>
```

### 4. Variant README

Each variant's `README.md` answers:

```markdown
## Variant: {stance name}

### Design stance
One sentence on the principle driving this variant.

### Key choices
- Layout: ...
- Typography: ...
- Color: ...
- Interaction: ...

### Trade-offs
- Strong at: ...
- Weak at: ...

### Best for
- The kind of user or use case this variant actually serves
```

### 5. Head-to-head

After all variants are built, present them as a comparison. Don't just list — **opinionate**:

```markdown
## Three takes on the home screen

| Dimension | Calm editorial | Utilitarian dense | Playful split |
|-----------|----------------|-------------------|---------------|
| Density   | Low            | High              | Medium        |
| Primary action visibility | Low | High | Medium |
| Scan-ability | High | Medium | Low |
| Feel | Calm, trusted | Sharp, tool-like | Inviting, energetic |

**My take:** Utilitarian dense for power users, calm editorial for content-forward audiences. Playful split is weakest — tries to do both and commits to neither.
```

Let the user pick a winner, or combine two into a hybrid, or ask for another round.

## Theming (when the project has a visual identity)

If the user has an existing theme (colors, fonts, tokens), put shared tokens in `sketches/themes/tokens.css` and `@import` them in each variant. Keep tokens minimal:

```css
/* sketches/themes/tokens.css */
:root {
  --color-bg: #fafafa;
  --color-fg: #1a1a1a;
  --color-accent: #0066ff;
  --color-muted: #666;
  --radius: 8px;
  --font-display: "Inter", sans-serif;
  --font-body: -apple-system, BlinkMacSystemFont, sans-serif;
}
```

Don't over-tokenize a throwaway sketch — three colors and one font is usually enough.

## Interactivity bar

A sketch is interactive enough when the user can:

1. **Click a primary action** and something visible happens (state change, modal, toast, navigation feint)
2. **See one meaningful state transition** (filter a list, toggle a mode, open/close a panel)
3. **Hover recognizable affordances** (buttons, rows, tabs)

More than that is over-engineering a throwaway. Less than that is a screenshot.

## Frontier mode (picking what to sketch next)

If sketches already exist and the user says "what should I sketch next?":

- **Consistency gaps** — two winning variants from different sketches made independent choices that haven't been composed together yet
- **Unsketched screens** — referenced but never explored
- **State coverage** — happy path sketched, but not empty / loading / error / 1000-items
- **Responsive gaps** — validated at one viewport; does it hold at mobile / ultrawide?
- **Interaction patterns** — static layouts exist; transitions, drag, scroll behavior don't

Propose 2-4 named candidates. Let the user pick.

## Output

- Create `sketches/` (or `.planning/sketches/` if the user is using GSD conventions) in the repo root
- One subdir per variant: `NNN-stance-name/index.html` + `README.md`
- Tell the user how to open them: `open sketches/001-calm-editorial/index.html` on macOS, `xdg-open` on Linux, `start` on Windows
- Keep variants disposable — a sketch that you felt the need to preserve should be promoted into real project code, not curated as an asset

**Typical tool sequence for one variant:**

```
terminal("mkdir -p sketches/001-calm-editorial")
write_file("sketches/001-calm-editorial/index.html", "<!doctype html>...")
write_file("sketches/001-calm-editorial/README.md", "## Variant: Calm editorial\n...")
browser_exec(code='new_tab("file:///abs/path/sketches/001-calm-editorial/index.html"); wait_for_load(); capture_screenshot()')
# then check the screenshot: any obvious layout issues?
```

Repeat for each variant, then present the comparison table.

## Attribution

Adapted from the GSD (Get Shit Done) project's `/gsd-sketch` workflow — MIT © 2025 Lex Christopherson ([gsd-build/get-shit-done](https://github.com/gsd-build/get-shit-done)). The upstream GSD repo is now **archived/unmaintained** on GitHub; the `get-shit-done-cc` npm package still installs (`npx get-shit-done-cc --hermes --global`) and ships persistent sketch state, theme/variant pattern references, and consistency-audit workflows, but treat it as an archived community project.

© Hermes Agent (adapted from gsd-build/get-shit-done) · MIT · NousResearch/hermes-agent

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor