OpenClaw
Deploy a managed OpenClaw agent in 60 seconds
Launch on Hostinger →
Hermes Agent
Run your Hermes agent, fully managed
Launch on Hostinger →
Apify
6,000+ web scrapers for your agent, free to start
Try Apify free →
Firecrawl
Crawl and scrape any site into clean data
Try Firecrawl free →
Context.dev
One API to scrape, enrich, and extract the web
Start building free →
SetupClaw
Done-for-you OpenClaw for founders and teams
Get it set up for you →
DataForSEO
SEO data APIs for your agent, $1 free credit
Try DataForSEO free →
Your product here
Reach thousands of AI builders a month
Learn more →
Claude Market
Menu
SkillsMCPPluginsSubmit MCPSkillPluginMCPMCP, plugin, or skillAdvertise
Claude Market
SkillsMCPPluginsSubmit MCPSkillPluginMCPMCP, plugin, or skillAdvertise
Skills/google-labs-code/stitch-skills/stitchextract-static-html
stitchextract-static-html logo

stitchextract-static-html

google-labs-code/stitch-skills
0 installs6K stars
Run it on Hostinger →Free API →|Command ExecutionExternal DownloadsPrompt Injection|View on GitHub

Installation

npx skills add https://github.com/google-labs-code/stitch-skills --skill stitchextract-static-html

Summary

>-

SKILL.md

Extract Static HTML

Extract a self-contained static HTML file from any web application.

Which Strategy to Use

You MUST ask the user to choose which strategy to use before proceeding. Present the options clearly, recommend Strategy A as the preferred default, and provide a brief pros/cons summary for each option to help them make an informed decision.

Strategy A (Puppeteer)Strategy B (Browser Subagent)
WhenApp runs locally, no auth wallNeed to interact with page first (click, fill forms)
FidelityHighest — computed styles resolvedHigh — rendered DOM
SetupZero — no mock neededZero — no mock needed
FrameworkAnyAny
OutputWrites to file — no size limitMay truncate in agent context

[!WARNING] Checkpoint — User Confirmation Required. You MUST ask the user which strategy they prefer before proceeding. Present the comparison table above, recommend Strategy A as the default, and wait for explicit approval. Do NOT make the decision yourself or proceed until the user confirms.

***

Strategy A: Puppeteer Snapshot (Recommended)

Launches headless Chrome, captures the fully rendered DOM, and produces a self-contained HTML file with all CSS inlined and images as base64. Works with any framework — no MockPage.jsx needed.

Prerequisites

  • App running locally (e.g., npm run dev)
  • Node.js with puppeteer available (check: node -e "require('puppeteer')")

Workflow

  1. Start the App and note the port.

[!WARNING] Checkpoint — User Confirmation Required. After starting the local server, you MUST pause and ask the user for confirmation before running the snapshot script or launching a browser subagent. Report the URL and port to the user so they can verify the app is running and rendering correctly. Do NOT proceed to the snapshot step until the user confirms.

  1. Run the Snapshot Script:
    npx tsx <SKILL_DIR>/scripts/snapshot.ts \
      --url http://localhost:5173 \
      --output .stitch/home.html \
      --wait 2000
  1. Multiple pages — run once per route:
    npx tsx <SKILL_DIR>/scripts/snapshot.ts \
      --url http://localhost:5173 --output .stitch/home.html --wait 2000
    npx tsx <SKILL_DIR>/scripts/snapshot.ts \
      --url http://localhost:5173/pricing --output .stitch/pricing.html --wait 2000
    npx tsx <SKILL_DIR>/scripts/snapshot.ts \
      --url http://localhost:5173/dashboard --output .stitch/dashboard.html --wait 2000 --html-class dark

Script Flags

FlagDefaultDescription
--url(required)URL to capture
--output(required)Output file path
--wait1000Extra wait (ms) after network idle. Increase for lazy-loading apps.
--viewport1280x800Viewport size as WIDTHxHEIGHT
--html-class—Class(es) for <html> element (e.g., dark)
--remove-fixedfalseRemove fixed/sticky elements (cookie banners, chat widgets)
--full-heightfalseResize viewport to full scroll height
--title—Override page title

What It Does Automatically

  • Inlines all <link rel="stylesheet"> → <style> blocks
  • Converts <img> src and srcset → base64 data URIs (skips fonts)
  • Inlines <source srcset> URLs as base64
  • Removes failed/dead srcset entries so the browser falls back to the inlined src
  • Removes <script> tags, Vite overlay, Next.js dev indicators
  • Resolves relative CSS url() paths before inlining

Framework Notes

FrameworkNotes
React + ViteWorks out of the box. --wait 1000.
Next.js--wait 3000 for SSR hydration. URL: http://localhost:3000. <img srcset> from /_next/image is auto-inlined as base64.
Vue / NuxtWorks out of the box.
Svelte / SvelteKitWorks out of the box.
StorybookUse story URL: --url http://localhost:6006/?path=/story/...
SSR (Webpack)May need longer --wait.

Troubleshooting

IssueSolution
Images missingIncrease --wait
Images show as broken after server stopsVerify srcset was inlined — check log for "Inlined N images". If srcset URLs failed, they are auto-removed so src (inlined) is used.
Next.js /_next/image not inlinedEnsure the dev server is running when snapshot runs — the script fetches optimized images from the running server.
Dark mode not applied--html-class dark
Cookie banner in output--remove-fixed
Page requires loginUse the Static Fallback (appendix below)
Cannot find module 'puppeteer'npm install -g puppeteer

***

Strategy B: Browser Subagent Capture

Use when you need to interact with the page (click buttons, fill forms, navigate tabs) before capturing. The browser subagent gives you full control but output may truncate for large pages.

Workflow

  1. Start the App locally.
  2. Navigate using a browser subagent.
  3. Interact as needed (click, scroll, fill forms).
  4. Extract DOM: document.documentElement.outerHTML

[!WARNING] Large pages may truncate. To handle this: - Remove <style> tags before extraction: document.querySelectorAll('style').forEach(el => el.remove()) - Re-add styles statically (Tailwind CDN link, source CSS)

  1. Save to file.

***

Appendix: Static Fallback (MockPage.jsx)

[!NOTE] This method is a last resort for when the app cannot run locally (broken deps, missing backend, auth walls with no bypass). It requires manually flattening React components into a single JSX file. Prefer Strategy A whenever possible.

When to Use

  • App can't run locally at all
  • Page requires auth with no mock/bypass
  • You need a specific UI state that's impossible to reach by navigation (error screens, empty states)

Quick Reference

npx tsx <SKILL_DIR>/scripts/extract_inline_html.ts \
  --index-css src/css/App.css \
  --extra-css index.html \
  --outdir .stitch \
  --page src/MockPage.jsx:Page.html:"Page Title"

Key flags: --no-tailwind (non-Tailwind apps), --html-class dark (dark mode), --css-files (extra CSS files).

Auto-detection: Tailwind config is auto-detected. @apply directives automatically use <style type="text/tailwindcss">.

MockPage.jsx Rules

  1. Include the full layout — header, sidebar, footer (read App.js first)
  2. Flatten all conditionals — pick one state, remove all ternaries and && guards
  3. Hardcode all data — replace {variable} with concrete values, unroll .map() loops
  4. Preserve logos — use <img> with local paths (post-process will inline them)
  5. Remove floating elements — cookie banners, chat widgets, feedback buttons

Post-Processing

Inline local images:

npx tsx <SKILL_DIR>/scripts/post_process.ts \
  .stitch/Page.html --base-dir <app-directory>

Score

0–100
62/ 100

Grade

C

Popularity22/30

6,019 GitHub stars on the source repo — strong adoption. Install counts are not tracked for this skill.

Completeness19/30

Documented: full SKILL.md body, one-line install. Missing: description, category/license metadata.

Trust15/25

Community skill with a public GitHub source repository you can review.

Freshness6/15

No update timestamp is tracked for this skill in our catalog.

Scored automatically from popularity, completeness, trust, and freshness — computed only from data in our catalog, never fabricated.

Proud of your score? Add this badge to your README.

Paste a snippet into your GitHub README. The badge updates automatically and links back to this page.

Stitchextract Static Html skill score badge previewScore badge

Markdown

[![Stitchextract Static Html skill](https://www.claudemarket.ai/skills/google-labs-code/stitch-skills/stitchextract-static-html/badges/score.svg)](https://www.claudemarket.ai/skills/google-labs-code/stitch-skills/stitchextract-static-html)

HTML

<a href="https://www.claudemarket.ai/skills/google-labs-code/stitch-skills/stitchextract-static-html"><img src="https://www.claudemarket.ai/skills/google-labs-code/stitch-skills/stitchextract-static-html/badges/score.svg" alt="Stitchextract Static Html skill"/></a>

Stitchextract Static Html FAQ

How do I install the Stitchextract Static Html skill?

Run “npx skills add https://github.com/google-labs-code/stitch-skills --skill stitchextract-static-html” in your terminal. The skill is added to your agent's skills directory and picked up automatically on the next run — no restart or extra configuration needed.

What does the Stitchextract Static Html skill do?

>- The full SKILL.md on this page shows the exact instructions the skill gives your agent.

Is the Stitchextract Static Html skill free?

Yes. Stitchextract Static Html is a free, open-source skill published from google-labs-code/stitch-skills. As with any third-party skill, review the source repository before installing it into an agent with sensitive access.

Does Stitchextract Static Html work with Claude Code and OpenClaw?

Yes. Skills use the portable SKILL.md format, so Stitchextract Static Html works with Claude Code, OpenClaw, Codex, Hermes, and any other agent that reads SKILL.md skills.

Recommended skills

Browse all →
find-skills logo

find-skills

vercel-labs/skills

2.8M installsInstall
grill-me logo

grill-me

mattpocock/skills

744K installsInstall
frontend-design logo

frontend-design

anthropics/skills

738K installsInstall
grill-with-docs logo

grill-with-docs

mattpocock/skills

631K installsInstall
agent-browser logo

agent-browser

vercel-labs/agent-browser

622K installsInstall
improve-codebase-architecture logo

improve-codebase-architecture

mattpocock/skills

608K installsInstall

Related guides

Hand-picked reading to help you choose, install, and use agent skills.

GuideBest Openclaw Skills 2026GuideHow To Evaluate Openclaw Skill Before InstallingGuideOpenclaw Skills Complete Guide

Skills by category

FrontendBackend & APIsTesting & QASecurityDevOps & CI/CDMCP & ToolingAutomationData & Analysis+20 more

MCP servers by category

AI & MLDeveloper ToolsVector & MemoryFiles & DocsDatabasesFinance & PaymentsBrowser & ScrapingCommunication+8 more

Plugins by category

developmentproductivitycommunicationdesignsecuritydatabaseworkflowcompliance+34 more

The Agent Stack

Weekly Claude Code, Agent SDK, and MCP moves worth your time — free.

Claude Market

AI agent skills directory, marketplace, and workflow hub for OpenClaw, Hermes Agent, Claude Code, Codex, and MCP-powered operator stacks.

Independent project, not affiliated with Anthropic.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Plugins

More

  • Submit a Tool
  • Create a Skill
  • Advertise
  • Free Tools
  • API
  • Shipping
  • Contact
  • Terms
  • Privacy
© 2026 Claude Market · Not affiliated with Anthropic
Fazier badgeFeatured on Twelve ToolsFeatured on Wired BusinessRemote OpenClaw - Featured on AI Agents DirectoryListed on Turbo0Featured on Uneed