Stop feeding LLMs HTML soup. Speak the language of UI.
Capture any web page as a semantic tree of 23 UI primitives. 200–800 tokens instead of 50,000. Works with ChatGPT, Claude, Gemini — any text model.
Install
ext install mcp-tool-shop.websketch-vscode
Capture
Ctrl+Shift+P → WebSketch: Capture URL
Output
PAGE
├─ HEADER {sticky}
│ ├─ *LINK "Home"
│ └─ *BUTTON "Sign Up"
└─ SECTION <main>
└─ TEXT <h1> "Welcome"
Why WebSketch
Raw HTML drowns LLMs. Screenshots lose structure. WebSketch gives you a clean semantic tree.
200–800 Tokens
Raw HTML runs 50,000+ tokens. WebSketch collapses it to a clean tree — same meaning, 99% fewer tokens.
23 UI Primitives
PAGE, HEADER, NAV, CARD, BUTTON, LINK — a fixed vocabulary LLMs learn once and apply to any site.
4 Export Views
LLM tree, ASCII wireframe, collapsible node tree, raw JSON IR. One capture, four ways to use it.
What You Get
Semantic tree (LLM view)
PAGE
├─ HEADER {sticky}
│ ├─ *LINK "Home"
│ ├─ *LINK "Products"
│ ├─ *LINK "Pricing"
│ └─ *INPUT "Search..."
├─ SECTION
│ ├─ TEXT "Welcome to Acme"
│ └─ *BUTTON "Get Started"
├─ LIST (3 items)
│ ├─ CARD
│ ├─ CARD
│ └─ CARD
└─ FOOTER
└─ NAV
├─ *LINK "Terms"
└─ *LINK "Privacy"
Grammar reference
├─ *BUTTON {sticky} "Find products"
│ │ │ │ │
│ │ │ │ └─ Visible text
│ │ │ └─ Layout flags
│ │ └─ Semantic hint
│ └─ Interactive (*)
│
└─ Indentation = parent–child Commands
Open the Command Palette (Ctrl+Shift+P / Cmd+Shift+P) to access all WebSketch commands.
Settings
Configure via VS Code settings (websketch.*).
websketch.chromePath: string
Path to Chrome or Edge executable. Leave empty for auto-detection.
websketch.viewportWidth: number
Viewport width for captures in pixels (default: 1280).
websketch.viewportHeight: number
Viewport height for captures in pixels (default: 800).
websketch.timeout: number
Navigation timeout in milliseconds (default: 30000).
websketch.waitAfterLoad: number
Extra wait after page load for JS rendering in milliseconds (default: 1000).