Agent skill

Wireframe

by akonan in akonan/wiremd

Create and render wireframes using wiremd — a text-first tool that converts Markdown into visual HTML mockups.

MITAuto-check passedFrontend & Design

Install Wireframe

skills CLI
$ npx skills add akonan/wiremd --skill wireframe -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install akonan/wiremd wireframe --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/akonan/wiremd.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/wireframe .claude/skills/wireframe && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
wireframe
GitHub stars
103
Token cost
~2.8k tokens
SKILL.md length
792 words
Files
14 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

Create and render wireframes using wiremd — a text-first tool that converts Markdown into visual HTML mockups.

  • Works in 2 steps: Create from a description or spec → Document an existing component or screen
  • The user wants to wireframe
  • SKILL.md covers Workflows, Before you render, Rendering and Style picker, plus 4 more sections
  • Calls npm, npx and git; reaches github.com and tobiashoelzer.com

What it does

Wireframe is an agent skill from akonan/wiremd. Create and render wireframes using wiremd — a text-first tool that converts Markdown into visual HTML mockups. Use this skill whenever the user wants to wireframe, mockup, prototype, or sketch a UI screen — from a description, Jira ticket, PRD, existing React/JSX, or rough idea. Also trigger on: "draw a login page", "show what this would look like", "create a mockup", "design a screen for X", "sketch the UI", "prototype this flow", "document this component as a wireframe", or any request to render or preview a…

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including reference files (for example `references/examples/_nav.md`, `references/examples/_sidebar-nav.md` and `references/examples/dashboard.md`).

It sits in Frontend & Design, covering UI design. It works with React and Jira. The repository describes itself as: The text-first UI design tool for developers who think in code. Create wireframes and mockups as fast as you can type—no clicking, no dragging, just pure markdown magic. The licence is MIT.

When your agent uses it

  • The user wants to wireframe
  • Sketch a UI screen — from a description
  • Existing React/JSX
  • : draw a login page

Example prompts

  • “draw a login page”
  • “show what this would look like”
  • “create a mockup”
  • “/wireframe”

Requirements

  • Node.js

Workflow steps

2 steps, taken from the step headings in SKILL.md.

  1. Create from a description or spec
  2. Document an existing component or screen

What it can do on your machine

Read from SKILL.md and the folder at commit 85fe43e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • npx
    • git
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • tobiashoelzer.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Wireframe loads about 2.8k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 158 tokens; SKILL.md has 792 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~158
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from akonan/wiremd at commit 85fe43e, republished under its MIT licence (© akonan). 792 words, ~2,763 tokens.

Download SKILL.mdSave it as .claude/skills/wireframe/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.
name
wireframe
description
Create and render wireframes using wiremd — a text-first tool that converts Markdown into visual HTML mockups. Use this skill whenever the user wants to wireframe, mockup, prototype, or sketch a UI screen — from a description, Jira ticket, PRD, existing React/JSX, or rough idea. Also trigger on: "draw a login page", "show what this would look like", "create a mockup", "design a screen for X", "sketch the UI", "prototype this flow", "document this component as a wireframe", or any request to render or preview a .md wireframe file. When in doubt, use this skill — it's better to invoke it unnecessarily than to miss it.

Wireframe Skill

Write a wiremd .md file, render it, and iterate. wiremd converts plain Markdown with extended syntax into visual wireframes — 7 styles, no design tools needed.

Workflows

1. Create from a description or spec
  1. Understand the screen's purpose — what does the user accomplish here?
  2. Sketch structure top-to-bottom: nav → layout → content sections → forms/data → off-screen elements (modals)
  3. Write the wiremd file using the quick reference below
  4. Render and tell the user where to open it
2. Document an existing component or screen
  1. Read the JSX/TSX component tree — focus on structure, not logic
  2. Map components to wiremd equivalents (see references/syntax.md → Component mapping table)
  3. Write top-to-bottom following visual flow
  4. Capture: layout, navigation, form fields/labels, button labels, table columns, states
  5. Skip: exact colors, event handlers, API calls, business logic

Before you render

Answer three questions up front — they determine what you build and how you hand it back.

1. What wiremd version is available? Run wiremd --version. Require ≥ 0.1.7 for:

  • ::: layout {.sidebar-main} — proper sidebar CSS (stock 0.1.5 stacks vertically)
  • [[ [Label](./page.md) | ... ]] — cross-page hrefs in nav (stock 0.1.5 drops them silently)
  • ![[file.md]] — shared partial includes

If older, build from source: git clone https://github.com/teezeit/wiremd && cd wiremd && npm install && npm run build, then invoke via node path/to/wiremd-fork/bin/wiremd.js.

2. Single page or multi-page? Ask the user up front. For multi-page, scaffold from the start — don't bolt on later:

  • _nav.md shared across all pages via ![[_nav.md]]
  • _sidebar.md if using sidebar layout
  • one .md per page at top level

See references/multi-page.md for folder layout, cross-page link syntax, and the rebuild recipe.

3. Which render route does this environment support? Triage by the tools Claude actually has — not by product name. See references/rendering-modes.md for the full table.

  • Write files + run shell (Claude Code, VS Code+terminal, Cowork/Desktop with filesystem + code-execution tools) → files in folder is the default. Render .html into the user's folder; they open via file:// or double-click.
  • User is on their own local terminal → --serve PORT --watch for live iteration.
  • Chat only (no filesystem, no exec) → hand off the .md and direct the user to https://tobiashoelzer.com/wiremd/editor to paste and render.
  • Never hand out a sandbox localhost:PORT URL — it binds to Claude's host, not the user's. When in doubt, write HTML to the folder.

Rendering

bash
# Live preview in browser with hot reload
wiremd my-screen.md --style clean --serve 3001 --watch

# Build to a static HTML file
wiremd my-screen.md -o output.html -s clean

# VS Code: Cmd+Shift+P → "wiremd: Open Preview" (live preview while editing)
# See references/vscode.md for extension install steps

Tell the user: open http://localhost:3001 for live preview, or the HTML path for a static file.

To screenshot and verify from the CLI:

bash
npx playwright screenshot --browser chromium --full-page "file://$(pwd)/output.html" /tmp/wf-check.png

Then read the PNG with the Read tool.


Style picker

Default to clean unless the user specifies otherwise. See references/styles.md for full descriptions.

StyleBest for
sketchEarly ideation, lo-fi client presentations
cleanStakeholder review, internal handoff (default)
wireframeLow-fidelity explorations, documentation
materialMaterial Design apps
tailwindTailwind-based products, indigo/purple palette
brutalBold, high-contrast concepts
noneCustom CSS, embedding elsewhere

Quick reference

For the full syntax including all attributes, edge cases, and disambiguation rules, read references/syntax.md.

markdown
# Navigation & breadcrumbs
[[ :logo: Brand | Home | *Active* | :user: Profile | [Sign Up]* ]]
[[ Home > Section > Current Page ]]

# Sidebar-main layout
::: layout {.sidebar-main}

::: sidebar

[[Dashboard](#)]
[[Reports](#)]

:::

::: main
### Page Title
:::

:::

# In-page tabs — use a button group, * marks the active tab
[Overview]* [Details] [Raw Data]

# Buttons
[Primary]* [Secondary]{.secondary} [Outline]{.outline}
[Danger]{variant:danger} [Disabled]{state:disabled} [Saving...]{state:loading}

# Inputs — label must be on the line DIRECTLY above (no blank line)
Email
[_____________________________]{type:email required}

Password
[*****************************]{type:password required}

Notes
[Your message here...]{rows:4}

Role
[Select role_____________v]
- Admin
- Editor
- Viewer

- [ ] Unchecked   - [x] Checked
- ( ) Option A    - (*) Option B (selected)

# Row — horizontal group of inputs, filters, or actions
::: row
[Search_______________]{type:search}
[All Teams___________v]
- All Teams
- Team A
:::

# Row, right-aligned
::: row {.right}
[+ New Item]*
:::

# Section header with right-aligned action — VERY COMMON PATTERN
::: grid-2
### Section Title

### {.right}

[+ Add Item]*

:::

# KPI metric card
::: grid-3
### Total Revenue
**$124,500**
↑ 8% vs last period

### Active Users
**3,842**
↑ 12% vs last period

### Conversion
**4.2%**
↓ 0.3% vs last period

:::

# Grid — layout only, equal columns, no card chrome
::: grid-3
### Revenue
$124,500
### Users
3,842
### Conversion
4.2%
:::

# Grid of cards — each item gets card styling
::: grid-3 card
### :rocket: Organic
42% of traffic
:::

# Table
| Name  | Role  | Status  | Actions         |
|-------|-------|---------|-----------------|
| Alice | Admin | Active  | [Edit] [Remove] |

# Icons — use anywhere in text, headings, nav, buttons
:home: :user: :gear: :chart: :bell: :shield: :rocket: :check: :x: :search: :edit: :trash: :plus:

# Badges / pills — inline status labels and counts
|Active|{.success}  |Pending|{.warning}  |Failed|{.error}  |New|{.primary}  |Draft|

# Card, alert
::: card
Content here
:::

::: alert success
Changes saved.
:::

# Annotations for states and design notes
> **Loading state:** spinner + "Loading..."
> **Empty state:** "No items yet" + [Add Item]*
> **Design note:** Only visible to Admin users.

# Modals go after --- at the bottom of the file
---
## Modals & Dialogs
> Not visible on page load.
::: modal
## Confirm Delete
Are you sure?

[Delete]{variant:danger} [Cancel]

:::

Show full SKILL.md (321 more words)Show less

Composite example

A dashboard with sidebar, in-page tabs, a metrics grid, a grid of cards, and a data table. See the renderable version at references/examples/dashboard.md.

markdown
[[ :logo: AppName | Dashboard | *Reports* | :gear: Settings | :user: Account ]]
[[ Dashboard > Reports ]]

::: layout {.sidebar-main}

::: sidebar

#### Navigation

[[Overview](#)]
[[Reports](#)]
[[Analytics](#)]
[[Users](#)]

---

#### Filters

[Jan 2025____________v]
- Last 7 days
- Last 30 days
- This quarter

[Apply Filters]*

:::

::: main

### Monthly Reports

[Summary]* [Details] [Raw Data]

---

::: grid-3

### Total Revenue
$124,500

### Active Users
3,842

### Conversion Rate
4.2%

:::

---

::: grid-3 card

### :rocket: Organic Search
**42%** of traffic
↑ 12% vs last month

### :chart: Paid Ads
**31%** of traffic
↓ 3% vs last month

### :bell: Email
**27%** of traffic
↑ 8% vs last month

:::

---

## Recent Transactions

| Date   | Customer   | Amount | Status  |
|--------|------------|--------|---------|
| Jan 15 | Acme Corp  | $4,200 | Paid    |
| Jan 14 | Globex Inc | $1,850 | Pending |
| Jan 13 | Initech    | $3,100 | Paid    |

[Export CSV] [View All Transactions]*

:::

---

## Modals & Dialogs

> Not visible on page load.

::: modal
## Export Report

Format
[CSV_________v]
- CSV
- Excel
- PDF

[Export]* [Cancel]

:::

Gotchas

  1. Label directly above input. No blank line between label text and [_____] — it breaks the association.
  2. Blank line before ::: when last line has inline elements. Buttons, backtick code, bold, links, or list items on the final line of a container — add an empty line before :::.
  3. [[ ]] nav hrefs require wiremd ≥ 0.1.7. Earlier versions silently drop the URL and every item renders as href="#". Mixed static + clickable works in 0.1.7+: [[ *Home* | [About](./about.md) | [Contact](./contact.md) ]].
  4. :::accordion doesn't exist. Use ::: tabs with ::: tab Label children for tabbed panels. For a simple button-group switcher, use [Tab]* [Other].
  5. Use ![[file.md]] for includes, not :::display. :::display is obsolete. ![[path/to/file.md]] works in both the CLI and VS Code preview — path resolves relative to the current file.
  6. Sandbox --serve is unreachable from the user's browser. wiremd --serve PORT binds to localhost on Claude's host, not the user's. When Claude is running in Cowork/Desktop and the user is elsewhere, write HTML to a shared folder instead. See references/rendering-modes.md.
  7. Static HTML keeps .md hrefs — rewrite after build. wiremd x.md -o x.html preserves ./page.md link targets. For file:// double-click delivery, rewrite with: sed -i -E 's|href="\./([A-Za-z0-9_-]+)\.md"|href="./\1.html"|g' *.html. On macOS without GNU sed, use sed -i ''.

Reference files

  • references/quick-reference.md — one-page cheat sheet for all components (copied from QUICK-REFERENCE.md at build time)
  • references/syntax.md — full syntax, all attributes, disambiguation rules, component mapping, gotchas
  • references/styles.md — style guide with visual descriptions and use cases
  • references/multi-page.md — folder layout, shared _nav.md, cross-page links, rebuild recipe for .md→.html handoff
  • references/rendering-modes.md — decision table: files-in-folder, dev server, screenshot, web-editor handoff
  • references/vscode.md — VS Code extension install and live-preview workflow
  • references/examples/dashboard.md — renderable dashboard wireframe (point user to this path)
  • references/examples/settings-form.md — renderable settings/form wireframe (point user to this path)
  • references/examples/multi-page/ — minimal 2-page prototype (_nav.md + index.md + detail.md) demonstrating shared nav, cross-page links, and the render-and-open-html flow

© akonan, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 13 other files (references) in skills/wireframe of akonan/wiremd.

  • SKILL.md
  • references/examples/_nav.md
  • references/examples/_sidebar-nav.md
  • references/examples/dashboard.md
  • references/examples/multi-page/_nav.md
  • references/examples/multi-page/detail.md
  • references/examples/multi-page/index.md
  • references/examples/settings-form.md
  • references/multi-page.md
  • references/quick-reference.md
  • references/rendering-modes.md
  • references/styles.md
  • references/syntax.md
  • references/vscode.md

Open the folder on GitHubat commit 85fe43e

Compare with similar skills

Wireframe next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Wireframe compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Wireframe this skillakonan/wiremd103—~2.8kAutomated safety check: PassMIT
LobeHub Interactive Prototypelobehub/lobehub83k—~1.6kAutomated safety check: PassCustom licence
UI UX Pro Maxsaoudi-h/solar-icons18218 repos~11kAutomated safety check: NotesCustom licence
Creative Tim UI Blockscreativetimofficial/ui12k—~2.1kAutomated safety check: NotesMIT
Ss Learnbitjaru/styleseed970—~1.3kAutomated safety check: PassMIT
UI/UX Design System AdvisorGalaxy-Dawn/claude-scholar5.7k1 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Builds single-file interactive HTML prototypes rendered with the real LobeHub UI components and written as production-style React, so they can later be split into files.

    83k GitHub stars~1.6k tokensUpdated today
    Frontend & DesignAuto-check passed
  • UI UX Pro Max

    saoudi-h/solar-icons

    UI/UX design intelligence for web and mobile. An agent skill from saoudi-h/solar-icons.

    182 GitHub starsUsed in 18 repos~11k tokens
    Frontend & DesignAuto-check: notes
  • Creative Tim UI Blocks

    creativetimofficial/ui

    Helps install, generate and review Creative Tim UI blocks: shadcn/ui-based React and Tailwind sections that follow a restrained, production-minded design philosophy.

    12k GitHub stars~2.1k tokensUpdated 6 mo ago
    Frontend & DesignAuto-check: notes
  • Ss Learn

    bitjaru/styleseed

    Capture a human-approved UI design lesson as a privacy-minimized local StyleSeed candidate, review it, and prepare an opt-in share package without transmitting project code, prompts, screenshots, or…

    970 GitHub stars~1.3k tokensUpdated 7 days ago
    Frontend & DesignAuto-check passed
  • UI/UX Design System Advisor

    Galaxy-Dawn/claude-scholar

    Turns a vague UI request into a concrete design system with style, palette, typography and layout guidance from a search script, plus stack-specific implementation advice.

    5.7k GitHub starsUsed in 1 repo~1.1k tokens
    Frontend & DesignAuto-check passed
  • Senior Frontend

    Ohh-889/skyroc

    Comprehensive frontend development skill for building modern, performant web applications using ReactJS, NextJS, TypeScript, Tailwind CSS.

    795 GitHub starsUsed in 2 repos~1.1k tokens
    Frontend & DesignAuto-check: notes

Works with

Questions about Wireframe

What does Wireframe do?

Create and render wireframes using wiremd — a text-first tool that converts Markdown into visual HTML mockups. Wireframe is an agent skill from akonan/wiremd. Create and render wireframes using wiremd — a text-first tool that converts Markdown into visual HTML mockups.

When should I use Wireframe?

Wireframe fits situations like: the user wants to wireframe; sketch a UI screen — from a description; existing React/JSX; : draw a login page.

How do I install Wireframe in Claude Code?

Run `npx skills add akonan/wiremd --skill wireframe -a claude-code`. Or copy the skill folder (skills/wireframe in akonan/wiremd) into .claude/skills/wireframe in your project. Claude Code loads it when a task matches its description.

How do I install Wireframe in Codex?

Run `npx skills add akonan/wiremd --skill wireframe -a codex`. Or copy the skill folder (skills/wireframe in akonan/wiremd) into .agents/skills/wireframe in your project. Codex loads it when a task matches its description.

Can I use Wireframe in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add akonan/wiremd --skill wireframe -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wireframe, .gemini/skills/wireframe, .github/skills/wireframe and .opencode/skills/wireframe in your project.

What does Wireframe need to run?

Going by SKILL.md and its folder, Wireframe needs the command-line tools its instructions call (npm, npx, git and node). Our summary lists: Node.js.

Does Wireframe access the network?

SKILL.md names 2 domains. In commands or code: github.com and tobiashoelzer.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Wireframe safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Wireframe use?

Wireframe is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Wireframe use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8k tokens, read only when the agent opens those files.

What are the alternatives to Wireframe?

Skills that share tags, products or a category with Wireframe: LobeHub Interactive Prototype (lobehub/lobehub, 83k stars), UI UX Pro Max (saoudi-h/solar-icons, 182 stars), Creative Tim UI Blocks (creativetimofficial/ui, 12k stars) and Ss Learn (bitjaru/styleseed, 970 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Wireframe?

akonan (a GitHub user) maintains it in akonan/wiremd, which has 103 GitHub stars. The repository was last updated on May 10, 2026.

Source: akonan/wiremd on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.