🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

html-easy-deploy

by @520xiaomumu

Instantly deploy a single self-contained HTML page to htmlcode.fun for quick live URLs. Alias of html-deploy, with versioned updates, description-required de...

Versionv1.3.0
Downloads365
Stars⭐ 2
TERMINAL
clawhub install html-easy-deploy

πŸ“– About This Skill


name: html-easy-deploy description: Instantly publish a single self-contained HTML page to htmlcode.fun without GitHub, Vercel, or Netlify. Use when an agent needs the fastest path from HTML to a live URL for landing pages, demo pages, temporary microsites, QR share pages, and AI-generated single-file frontends. Supports stable short codes for overwrite-style updates and includes a ready-to-run Python deployment script. Live example and visual guide: https://www.htmlcode.fun/s/htmlcode-fun-guide

html-easy-deploy

Overview

Use htmlcode.fun when the output can be delivered as one standalone HTML document and speed matters more than full project-hosting features. This skill is designed for agents that need the shortest path from HTML content to a live shareable URL.

Live example and walkthrough:

  • https://www.htmlcode.fun/s/htmlcode-fun-guide
  • Bundled script:

  • scripts/htmlcode_deploy.py for deploy, update, and fetch operations
  • Decision rule

    Use this skill when all of the following are true:

  • The deliverable is a single HTML page.
  • The page can be self-contained or nearly self-contained.
  • Fast sharing matters more than custom domains, CI/CD, or multi-file assets.
  • Do not use this skill when any of the following are true:

  • The project is a React, Vue, Next, or multi-file frontend app.
  • The site needs build steps, environment variables, or asset pipelines.
  • The user specifically needs their own domain bound to the host.
  • The page is likely to exceed the service limit of about 1 MB HTML payload.
  • Core workflow

    1. Produce one complete HTML document. 2. Inline CSS and JS when practical. 3. Add quality metadata before deploy: - </code> - <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em"><meta name="description"></code> - <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em"><meta name="viewport" content="width=device-width, initial-scale=1.0"></code> - Open Graph tags when the page will be shared 4. Decide whether the page needs a stable short code. - For one-off pages, deploy without custom code. - For pages that will be updated in place, set <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">enableCustomCode=true</code> and choose <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">customCode</code> on first deploy. 5. Deploy with JSON to <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">POST https://www.htmlcode.fun/api/deploy</code>. 6. Save the returned <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">code</code>, <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">url</code>, and <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">qrCode</code>. 7. For later edits, update with <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">PATCH https://www.htmlcode.fun/api/deploy/content</code> using the same code. 8. If the API returns <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">429</code>, wait for <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">retryAfterSeconds</code> before retrying.</p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Fastest path</h3></p><p style="margin:8px 0">Prefer the bundled script when working from local files.</p><p style="margin:8px 0">Deploy a new page:</p><p style="margin:8px 0"><pre style="background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0"><code style="color:#a5f3fc;background:none;padding:0;font-size:1em">python scripts/htmlcode_deploy.py deploy page.html --title "launch-page" --code launch-page </code></pre></p><p style="margin:8px 0">Update an existing short code in place:</p><p style="margin:8px 0"><pre style="background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0"><code style="color:#a5f3fc;background:none;padding:0;font-size:1em">python scripts/htmlcode_deploy.py update launch-page page.html --title "launch-page-v2" </code></pre></p><p style="margin:8px 0">Fetch deployed content:</p><p style="margin:8px 0"><pre style="background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0"><code style="color:#a5f3fc;background:none;padding:0;font-size:1em">python scripts/htmlcode_deploy.py get launch-page --output launch-page.html </code></pre></p><p style="margin:8px 0">Use raw API calls only when the agent already has HTML content in memory and does not need a file-based workflow.</p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Request format</h3></p><p style="margin:8px 0">Always send JSON.</p><p style="margin:8px 0">Required fields: <li style="color:#94a3b8;margin:3px 0"><code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">filename</code></li> <li style="color:#94a3b8;margin:3px 0"><code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">content</code></li></p><p style="margin:8px 0">Useful optional fields: <li style="color:#94a3b8;margin:3px 0"><code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">title</code></li> <li style="color:#94a3b8;margin:3px 0"><code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">enableCustomCode</code></li> <li style="color:#94a3b8;margin:3px 0"><code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">customCode</code></li></p><p style="margin:8px 0">Example deploy payload:</p><p style="margin:8px 0"><pre style="background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0"><code style="color:#a5f3fc;background:none;padding:0;font-size:1em">{ "filename": "index.html", "title": "launch-page", "content": "<!doctype html><html>...</html>", "enableCustomCode": true, "customCode": "launch-page" } </code></pre></p><p style="margin:8px 0">Example update payload:</p><p style="margin:8px 0"><pre style="background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0"><code style="color:#a5f3fc;background:none;padding:0;font-size:1em">{ "code": "launch-page", "content": "<!doctype html><html>...updated...</html>", "title": "launch-page-v2", "filename": "index.html" } </code></pre></p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Best practices for agents</h3></p><p style="margin:8px 0"><li style="color:#94a3b8;margin:3px 0">Prefer one larger deploy over many tiny edits because the service enforces a 10 second cooldown after success.</li> <li style="color:#94a3b8;margin:3px 0">Do not use multipart upload or <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">-F file</code>. Read files into memory and send them as JSON <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">content</code>.</li> <li style="color:#94a3b8;margin:3px 0">Keep the page self-contained. Inline CSS, inline lightweight JS, and avoid many external dependencies.</li> <li style="color:#94a3b8;margin:3px 0">Keep images small. Large base64 assets can quickly hit the payload limit.</li> <li style="color:#94a3b8;margin:3px 0">If the page will be revised repeatedly, reserve a meaningful <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">customCode</code> at the first deploy.</li> <li style="color:#94a3b8;margin:3px 0">Save returned <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">code</code>, <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">url</code>, and <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">qrCode</code> immediately after deployment.</li> <li style="color:#94a3b8;margin:3px 0">When receiving <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">429</code>, respect <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">retryAfterSeconds</code> instead of retrying aggressively.</li> <li style="color:#94a3b8;margin:3px 0">Treat htmlcode.fun as a fast publication channel, not a full static hosting platform.</li> <li style="color:#94a3b8;margin:3px 0">Tell the user clearly when the page is better suited for Vercel or Netlify instead.</li></p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">What this host is good at</h3></p><p style="margin:8px 0"><li style="color:#94a3b8;margin:3px 0">Temporary landing pages</li> <li style="color:#94a3b8;margin:3px 0">Demo pages</li> <li style="color:#94a3b8;margin:3px 0">Shareable documentation pages</li> <li style="color:#94a3b8;margin:3px 0">QR-linked event or campaign pages</li> <li style="color:#94a3b8;margin:3px 0">AI-generated single-file frontends</li> <li style="color:#94a3b8;margin:3px 0">Stable short-link pages that need quick overwrite updates</li></p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">What this host is not good at</h3></p><p style="margin:8px 0"><li style="color:#94a3b8;margin:3px 0">Multi-page sites with shared assets</li> <li style="color:#94a3b8;margin:3px 0">Framework builds</li> <li style="color:#94a3b8;margin:3px 0">Large production frontends</li> <li style="color:#94a3b8;margin:3px 0">Team workflows with preview environments and rollback</li> <li style="color:#94a3b8;margin:3px 0">Confirmed custom-domain hosting workflows</li></p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Example live page</h3></p><p style="margin:8px 0">Reference example: <li style="color:#94a3b8;margin:3px 0">https://www.htmlcode.fun/s/htmlcode-fun-guide</li></p><p style="margin:8px 0">Use that page as a model for how to explain advantages, limitations, and deployment guidance in one self-contained HTML document. </p></div></section></div><div class="two-col-side"></div></div></div><script> document.querySelectorAll('.copy-btn, .script-copy-btn').forEach(btn => { btn.addEventListener('click', () => { const cmd = btn.getAttribute('data-cmd'); if (!cmd) return; navigator.clipboard.writeText(cmd).then(() => { const orig = btn.textContent; btn.textContent = 'Copied!'; setTimeout(() => btn.textContent = orig, 1500); }).catch(() => {}); }); }); </script><!--$--><!--/$--></main><footer style="background:#0a0a1a;border-top:1px solid #1a1a2e;margin-top:60px"><div style="border-top:1px solid #111;max-width:1200px;margin:0 auto;padding:24px 20px"><div style="display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-bottom:24px"><div><div style="font-weight:700;color:#ccc;margin-bottom:8px">BytesAgain</div><div style="color:#555;font-size:.82em;max-width:200px">Discover the best AI agent skills for your workflow.</div></div><div><div style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px">Explore</div><div style="margin-bottom:6px"><a href="/skills" style="color:#666;text-decoration:none;font-size:.85em">Skills</a></div><div style="margin-bottom:6px"><a href="/articles" style="color:#666;text-decoration:none;font-size:.85em">Articles</a></div><div style="margin-bottom:6px"><a href="/use-case" style="color:#666;text-decoration:none;font-size:.85em">Cases</a></div></div><div><div style="color:#888;font-size:.75em;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px">Company</div><div style="margin-bottom:6px"><a href="/about" style="color:#666;text-decoration:none;font-size:.85em">About</a></div><div style="margin-bottom:6px"><a href="/contact" style="color:#666;text-decoration:none;font-size:.85em">Contact</a></div><div style="margin-bottom:6px"><a href="/privacy-policy" style="color:#666;text-decoration:none;font-size:.85em">Privacy Policy</a></div><div style="margin-bottom:6px"><a href="/terms" style="color:#666;text-decoration:none;font-size:.85em">Terms</a></div><div style="margin-bottom:6px"><a href="/feedback" style="color:#666;text-decoration:none;font-size:.85em">Feedback</a></div></div></div><div style="border-top:1px solid #111;padding-top:16px"><div style="color:#444;font-size:.8em;margin-bottom:8px">Β© <!-- -->2026<!-- --> BytesAgain. All rights reserved.</div><div style="color:#333;font-size:.75em;line-height:1.6;max-width:720px">BytesAgain is an independent skill directory. We index and link to third-party content (ClawHub, GitHub, LobeHub, Dify, etc.) for informational purposes only. All trademarks, skill names, and content are the property of their respective owners. BytesAgain does not claim ownership of any indexed content.</div></div></div></footer><button style="position:fixed;bottom:28px;right:28px;z-index:1000;width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;background:linear-gradient(135deg,#667eea,#00d4ff);color:#fff;font-size:1.3em;box-shadow:0 4px 20px #667eea66;display:flex;align-items:center;justify-content:center;transition:transform .2s">πŸ’¬</button><script src="/_next/static/chunks/0ze4gu236oq96.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[62894,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"LangProvider\"]\n3:I[16988,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"default\"]\nd:I[68027,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"default\",1]\n:HL[\"/_next/static/chunks/07v-rkwetoheo.css?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"style\"]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.woff2?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n4:Td5e,"])</script><script>self.__next_f.push([1,"[{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"BytesAgain\",\"url\":\"https://bytesagain.com\",\"description\":\"Search 60,000+ verified AI agent skills via MCP API or REST. Supports 7 languages. Free, no auth required.\",\"inLanguage\":[\"en\",\"zh\",\"es\",\"fr\",\"de\",\"ja\",\"ko\"],\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https://bytesagain.com/skills?q={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}},{\"@context\":\"https://schema.org\",\"@type\":\"Organization\",\"name\":\"BytesAgain\",\"url\":\"https://bytesagain.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://bytesagain.com/og-image.png\"},\"description\":\"AI agent skill directory. Search 60,000+ skills, 1,000+ use cases, and community requests.\",\"foundingDate\":\"2026\",\"foundingLocation\":{\"@type\":\"Place\",\"name\":\"Global\"},\"sameAs\":[\"https://x.com/bytesagain\",\"https://github.com/bytesagain/ai-skills\",\"https://clawhub.ai/profile/bytesagain\"],\"contactPoint\":{\"@type\":\"ContactPoint\",\"email\":\"hello@bytesagain.com\",\"contactType\":\"customer support\"},\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"value\":1}},{\"@context\":\"https://schema.org\",\"@type\":\"WebApplication\",\"name\":\"BytesAgain AI Skills Search\",\"url\":\"https://bytesagain.com\",\"applicationCategory\":\"DeveloperApplication\",\"operatingSystem\":\"Web\",\"description\":\"Search engine and MCP API for 60,000+ AI agent skills. Semantic search, role recommendations, and use case packs.\",\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\"},\"featureList\":[\"Search 60,000+ AI agent skills\",\"Role-based recommendations for developers, creators, and traders\",\"1,000+ curated use case packs\",\"Free MCP API and REST API\",\"Multi-language search (EN, ZH, ES, FR, DE, JA, KO)\"],\"potentialAction\":{\"@type\":\"SearchAction\",\"target\":\"https://bytesagain.com/skills?q={search_term_string}\",\"query-input\":\"required name=search_term_string\"},\"dateModified\":\"2026-06-01\"},{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is BytesAgain?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"BytesAgain is a curated directory of 60,000+ AI agent skills from ClawHub, GitHub, LobeHub, and Dify. Search skills by keyword in 7 languages, browse by role (developer, creator, trader, marketer) or by use case.\"}},{\"@type\":\"Question\",\"name\":\"How do I find AI skills on BytesAgain?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Use the search bar on BytesAgain.com to search by keyword in 7 languages. You can also browse by role (developer, creator, trader, marketer) or by use case. Each skill shows install instructions for Claude, Cursor, OpenClaw, Continue, and more.\"}},{\"@type\":\"Question\",\"name\":\"Is BytesAgain free?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, BytesAgain is completely free. No registration required for searching skills. The MCP API is also free with rate limits.\"}},{\"@type\":\"Question\",\"name\":\"Does BytesAgain have an API for AI agents?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes! BytesAgain provides a free MCP SSE endpoint at /api/mcp/sse for AI agents, plus a REST API at /api/mcp?action=search\u0026q=\u003cquery\u003e. No authentication needed.\"}},{\"@type\":\"Question\",\"name\":\"Can I request a new AI skill on BytesAgain?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes! Visit the Requests page on BytesAgain.com to submit a skill request. Your request will be visible to the community and notified to the site admin.\"}}]}]"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"skill\",\"html-easy-deploy\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"skill\",{\"children\":[[\"slug\",\"html-easy-deploy\",\"d\",null],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/07v-rkwetoheo.css?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"llms\",\"href\":\"/llms.txt\"}],[\"$\",\"link\",null,{\"rel\":\"llms-full\",\"href\":\"/llms-full.txt\"}],[\"$\",\"script\",null,{\"async\":true,\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-3C1MM9FWYF\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n gtag('config', 'G-3C1MM9FWYF');\\n \"}}]]}],[\"$\",\"body\",null,{\"className\":\"geist_9e050971-module__05dp7a__className\",\"style\":{\"background\":\"#0a0a1a\",\"color\":\"#e0e0e0\",\"margin\":0},\"children\":[\"$\",\"$L2\",null,{\"children\":[[\"$\",\"div\",null,{\"style\":{\"width\":\"100%\",\"background\":\"linear-gradient(90deg,#13103a,#0d0d1f,#13103a)\",\"borderBottom\":\"1px solid #2a2a5a\",\"padding\":\"8px 20px\",\"textAlign\":\"center\",\"fontSize\":\".82em\",\"color\":\"#818cf8\"},\"children\":[\"🎁 \",[\"$\",\"strong\",null,{\"style\":{\"color\":\"#e2e8f0\"},\"children\":\"Get the FREE AI Skills Starter Guide\"}],\" β€” \",[\"$\",\"a\",null,{\"href\":\"/register\",\"style\":{\"color\":\"#00d4ff\",\"textDecoration\":\"underline\"},\"children\":\"Subscribe β†’\"}]]}],[\"$\",\"$L3\",null,{}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$4\"}}],\"$L5\",\"$L6\",\"$L7\"]}]}]]}]]}],{\"children\":[\"$L8\",{\"children\":[\"$L9\",{\"children\":[\"$La\",{},null,false,null]},null,false,\"$@b\"]},null,false,\"$@b\"]},null,false,null],\"$Lc\",false]],\"m\":\"$undefined\",\"G\":[\"$d\",[\"$Le\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"f:I[39756,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"default\"]\n10:I[37457,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"default\"]\n11:I[22016,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0ka051yepewro.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"\"]\n12:I[90940,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"default\"]\n13:I[16397,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"default\"]\n15:I[97367,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"OutletBoundary\"]\n16:\"$Sreact.suspense\"\n19:I[97367,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"ViewportBoundary\"]\n1b:I[97367,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"MetadataBoundary\"]\n"])</script><script>self.__next_f.push([1,"5:[\"$\",\"main\",null,{\"children\":[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L10\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"main\",null,{\"style\":{\"minHeight\":\"100vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"background\":\"#050611\",\"color\":\"#e5e7eb\"},\"children\":[[\"$\",\"style\",null,{\"children\":\"\\n .nf-box { text-align: center; padding: 60px 32px; }\\n .nf-code { font-size: 6rem; font-weight: 900; color: #22d3ee; line-height: 1; margin: 0; }\\n .nf-title { font-size: 1.8rem; font-weight: 800; margin: 12px 0 8px; }\\n .nf-desc { color: #64748b; font-size: 1rem; margin-bottom: 32px; max-width: 440px; }\\n .nf-link { display: inline-block; padding: 12px 28px; background: linear-gradient(135deg,#34d399,#22d3ee); color: #000; font-weight: 900; border-radius: 12px; text-decoration: none; }\\n \"}],[\"$\",\"div\",null,{\"className\":\"nf-box\",\"children\":[[\"$\",\"p\",null,{\"className\":\"nf-code\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"nf-title\",\"children\":\"Page Not Found\"}],[\"$\",\"p\",null,{\"className\":\"nf-desc\",\"children\":\"The skill or page you're looking for doesn't exist or has been moved.\"}],[\"$\",\"$L11\",null,{\"className\":\"nf-link\",\"href\":\"/\",\"children\":\"Back to BytesAgain\"}]]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"$L12\",null,{}]\n7:[\"$\",\"$L13\",null,{}]\n8:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L10\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n9:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L10\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\na:[\"$\",\"$1\",\"c\",{\"children\":[\"$L14\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0~t057~scpf-f.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L15\",null,{\"children\":[\"$\",\"$16\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@17\"}]}]]}]\n18:[]\nb:\"$W18\"\nc:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L19\",null,{\"children\":\"$L1a\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1b\",null,{\"children\":[\"$\",\"$16\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1c\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\ne:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/07v-rkwetoheo.css?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"1a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"1d:I[27201,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"IconMark\"]\n17:null\n"])</script><script>self.__next_f.push([1,"1c:[[\"$\",\"title\",\"0\",{\"children\":\"html-easy-deploy β€” AI Agent Skill | BytesAgain | BytesAgain\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Instantly deploy a single self-contained HTML page to htmlcode.fun for quick live URLs. Alias of html-deploy, with versioned updates, description-required de...\"}],[\"$\",\"meta\",\"2\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"3\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"4\",{\"name\":\"llms-txt\",\"content\":\"https://bytesagain.com/llms.txt\"}],[\"$\",\"meta\",\"5\",{\"name\":\"llms-full-txt\",\"content\":\"https://bytesagain.com/llms-full.txt\"}],[\"$\",\"link\",\"6\",{\"rel\":\"canonical\",\"href\":\"https://bytesagain.com/skill/html-easy-deploy\"}],[\"$\",\"meta\",\"7\",{\"name\":\"baidu-site-verification\",\"content\":\"codeva-0evUqX1TFs\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:title\",\"content\":\"html-easy-deploy β€” AI Agent Skill | BytesAgain\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:description\",\"content\":\"Instantly deploy a single self-contained HTML page to htmlcode.fun for quick live URLs. Alias of html-deploy, with versioned updates, description-required de...\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:url\",\"content\":\"https://bytesagain.com/skill/html-easy-deploy\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:site_name\",\"content\":\"BytesAgain\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image\",\"content\":\"https://bytesagain.com/social-preview.png\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:title\",\"content\":\"html-easy-deploy β€” AI Agent Skill | BytesAgain\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:description\",\"content\":\"Instantly deploy a single self-contained HTML page to htmlcode.fun for quick live URLs. Alias of html-deploy, with versioned updates, description-required de...\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image\",\"content\":\"https://bytesagain.com/social-preview.png\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"22\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0x3dzn~oxb6tn.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L1d\",\"23\",{}]]\n"])</script><script>self.__next_f.push([1,"1e:T1463,"])</script><script>self.__next_f.push([1,"\n .skill-page { max-width: 1100px; margin: 0 auto; padding: 32px 20px 80px; }\n .two-col { display: flex; gap: 32px; align-items: flex-start; }\n .two-col-main { flex: 1; min-width: 0; }\n .two-col-side { width: 300px; flex-shrink: 0; }\n @media (max-width: 860px) {\n .two-col { flex-direction: column; }\n .two-col-side { width: 100%; }\n }\n .breadcrumb { font-size: .82em; color: #4b5563; margin-bottom: 28px; }\n .breadcrumb a { color: #818cf8; text-decoration: none; }\n .breadcrumb a:hover { text-decoration: underline; }\n .skill-card { background: #0d0d1f; border: 1px solid #1e1e3f; border-radius: 20px; padding: 28px; margin-bottom: 24px; }\n .skill-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }\n .skill-badges { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }\n .skill-top-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }\n .badge { display: inline-flex; align-items: center; gap: 5px; font-size: .75em; font-weight: 600; padding: 4px 12px; border-radius: 999px; border: 1px solid transparent; }\n .skill-title { font-size: 1.6em; font-weight: 800; color: #f1f5f9; margin: 0 0 4px; line-height: 1.2; }\n .skill-owner { font-size: .82em; color: #4b5563; margin: 0 0 14px; }\n .skill-owner span { color: #818cf8; }\n .skill-desc { font-size: .92em; color: #94a3b8; line-height: 1.65; margin: 0 0 16px; }\n .skill-meta { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid #1e1e3f; }\n .meta-item { display: flex; flex-direction: column; gap: 2px; }\n .meta-label { font-size: .7em; color: #374151; text-transform: uppercase; letter-spacing: 1px; font-weight: 600; }\n .meta-value { font-size: .92em; color: #94a3b8; font-weight: 600; }\n .tags-row { display: flex; gap: 6px; flex-wrap: wrap; }\n .tag { font-size: .75em; color: #6366f1; background: #6366f115; border: 1px solid #6366f130; border-radius: 6px; padding: 3px 10px; text-decoration: none; }\n .tag:hover { background: #6366f125; }\n .install-box { background: #070714; border: 1px solid #1e1e3f; border-radius: 12px; overflow: hidden; margin-bottom: 24px; }\n .install-header { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; border-bottom: 1px solid #1e1e3f; }\n .install-dots { display: flex; gap: 6px; }\n .dot { width: 10px; height: 10px; border-radius: 50%; }\n .install-label { font-size: .72em; color: #374151; font-family: monospace; letter-spacing: 1px; }\n .install-body { padding: 16px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }\n .install-cmd { font-family: 'Courier New', monospace; font-size: 1em; color: #a5f3fc; }\n .copy-btn { font-size: .75em; color: #6366f1; background: #6366f115; border: 1px solid #6366f130; border-radius: 6px; padding: 5px 12px; cursor: pointer; white-space: nowrap; transition: all .15s; }\n .copy-btn:hover { background: #6366f125; }\n .btn-secondary { display: inline-flex; align-items: center; gap: 8px; padding: 13px 24px; background: transparent; border: 1px solid #1e1e3f; border-radius: 10px; color: #6b7280; text-decoration: none; font-weight: 600; font-size: .95em; transition: all .15s; }\n .btn-secondary:hover { border-color: #818cf8; color: #818cf8; }\n .ours-badge { display: inline-flex; align-items: center; gap: 6px; font-size: .72em; font-weight: 700; color: #22d3ee; background: #22d3ee10; border: 1px solid #22d3ee30; border-radius: 999px; padding: 4px 14px; }\n .section-card { background: #0d0d1f; border: 1px solid #1e1e3f; border-radius: 16px; padding: 22px 24px; margin-bottom: 20px; }\n .section-title { color: #f8fafc; font-size: 1.08em; font-weight: 800; margin: 0 0 12px; display: flex; align-items: center; gap: 8px; }\n /* Script box */\n .script-header { display: flex; align-items: center; justify-content: space-between; padding: 8px 14px; background: #0a0a1c; border-bottom: 1px solid #1e1e3f; }\n .script-filename { font-size: .72em; color: #4b5563; font-family: 'Courier New', monospace; }\n .script-copy-btn { font-size: .72em; color: #6366f1; background: none; border: 1px solid #6366f130; border-radius: 4px; padding: 2px 10px; cursor: pointer; }\n .script-copy-btn:hover { background: #6366f115; }\n .script-body { padding: 14px 16px; font-family: 'Courier New', monospace; font-size: .82em; line-height: 1.6; color: #a5f3fc; overflow-x: auto; max-height: 420px; overflow-y: auto; white-space: pre; }\n /* Articles */\n .article-card { display: block; background: #0f0f23; border: 1px solid #1a1a3e; border-radius: 10px; padding: 14px 16px; text-decoration: none; transition: border-color .15s; }\n .article-card:hover { border-color: #6366f1; }\n @media (max-width: 600px) {\n .skill-card { padding: 20px; }\n .skill-title { font-size: 1.5em; }\n }\n "])</script><script>self.__next_f.push([1,"14:[[\"$\",\"style\",null,{\"children\":\"$1e\"}],\"$L1f\",\"$L20\"]\n"])</script><script>self.__next_f.push([1,"21:I[78297,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0~t057~scpf-f.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"default\"]\n22:T2e75,"])</script><script>self.__next_f.push([1,"\u003cp style=\"margin:8px 0\"\u003e\u003chr style=\"border:none;border-top:1px solid #1e1e3f;margin:12px 0\"\u003e\nname: html-easy-deploy\ndescription: Instantly publish a single self-contained HTML page to htmlcode.fun without GitHub, Vercel, or Netlify. Use when an agent needs the fastest path from HTML to a live URL for landing pages, demo pages, temporary microsites, QR share pages, and AI-generated single-file frontends. Supports stable short codes for overwrite-style updates and includes a ready-to-run Python deployment script. Live example and visual guide: https://www.htmlcode.fun/s/htmlcode-fun-guide\n\u003chr style=\"border:none;border-top:1px solid #1e1e3f;margin:12px 0\"\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch2 style=\"color:#f3f4f6;margin:20px 0 10px;font-size:1.15em\"\u003ehtml-easy-deploy\u003c/h2\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eOverview\u003c/h3\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eUse htmlcode.fun when the output can be delivered as one standalone HTML document and speed matters more than full project-hosting features. This skill is designed for agents that need the shortest path from HTML content to a live shareable URL.\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eLive example and walkthrough:\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003ehttps://www.htmlcode.fun/s/htmlcode-fun-guide\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eBundled script:\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003e\u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003escripts/htmlcode_deploy.py\u003c/code\u003e for deploy, update, and fetch operations\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eDecision rule\u003c/h3\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eUse this skill when all of the following are true:\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eThe deliverable is a single HTML page.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eThe page can be self-contained or nearly self-contained.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eFast sharing matters more than custom domains, CI/CD, or multi-file assets.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eDo not use this skill when any of the following are true:\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eThe project is a React, Vue, Next, or multi-file frontend app.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eThe site needs build steps, environment variables, or asset pipelines.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eThe user specifically needs their own domain bound to the host.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eThe page is likely to exceed the service limit of about 1 MB HTML payload.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eCore workflow\u003c/h3\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e1. Produce one complete HTML document.\n2. Inline CSS and JS when practical.\n3. Add quality metadata before deploy:\n - \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e\u003ctitle\u003e\u003c/code\u003e\n - \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e\u003cmeta name=\"description\"\u003e\u003c/code\u003e\n - \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\u003c/code\u003e\n - Open Graph tags when the page will be shared\n4. Decide whether the page needs a stable short code.\n - For one-off pages, deploy without custom code.\n - For pages that will be updated in place, set \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eenableCustomCode=true\u003c/code\u003e and choose \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003ecustomCode\u003c/code\u003e on first deploy.\n5. Deploy with JSON to \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003ePOST https://www.htmlcode.fun/api/deploy\u003c/code\u003e.\n6. Save the returned \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003ecode\u003c/code\u003e, \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eurl\u003c/code\u003e, and \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eqrCode\u003c/code\u003e.\n7. For later edits, update with \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003ePATCH https://www.htmlcode.fun/api/deploy/content\u003c/code\u003e using the same code.\n8. If the API returns \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e429\u003c/code\u003e, wait for \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eretryAfterSeconds\u003c/code\u003e before retrying.\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eFastest path\u003c/h3\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003ePrefer the bundled script when working from local files.\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eDeploy a new page:\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003cpre style=\"background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0\"\u003e\u003ccode style=\"color:#a5f3fc;background:none;padding:0;font-size:1em\"\u003epython scripts/htmlcode_deploy.py deploy page.html --title \"launch-page\" --code launch-page\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eUpdate an existing short code in place:\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003cpre style=\"background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0\"\u003e\u003ccode style=\"color:#a5f3fc;background:none;padding:0;font-size:1em\"\u003epython scripts/htmlcode_deploy.py update launch-page page.html --title \"launch-page-v2\"\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eFetch deployed content:\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003cpre style=\"background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0\"\u003e\u003ccode style=\"color:#a5f3fc;background:none;padding:0;font-size:1em\"\u003epython scripts/htmlcode_deploy.py get launch-page --output launch-page.html\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eUse raw API calls only when the agent already has HTML content in memory and does not need a file-based workflow.\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eRequest format\u003c/h3\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eAlways send JSON.\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eRequired fields:\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003e\u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003efilename\u003c/code\u003e\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003e\u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003econtent\u003c/code\u003e\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eUseful optional fields:\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003e\u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003etitle\u003c/code\u003e\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003e\u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eenableCustomCode\u003c/code\u003e\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003e\u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003ecustomCode\u003c/code\u003e\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eExample deploy payload:\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003cpre style=\"background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0\"\u003e\u003ccode style=\"color:#a5f3fc;background:none;padding:0;font-size:1em\"\u003e{\n \"filename\": \"index.html\",\n \"title\": \"launch-page\",\n \"content\": \"\u003c!doctype html\u003e\u003chtml\u003e...\u003c/html\u003e\",\n \"enableCustomCode\": true,\n \"customCode\": \"launch-page\"\n}\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eExample update payload:\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003cpre style=\"background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0\"\u003e\u003ccode style=\"color:#a5f3fc;background:none;padding:0;font-size:1em\"\u003e{\n \"code\": \"launch-page\",\n \"content\": \"\u003c!doctype html\u003e\u003chtml\u003e...updated...\u003c/html\u003e\",\n \"title\": \"launch-page-v2\",\n \"filename\": \"index.html\"\n}\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eBest practices for agents\u003c/h3\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003ePrefer one larger deploy over many tiny edits because the service enforces a 10 second cooldown after success.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eDo not use multipart upload or \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e-F file\u003c/code\u003e. Read files into memory and send them as JSON \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003econtent\u003c/code\u003e.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eKeep the page self-contained. Inline CSS, inline lightweight JS, and avoid many external dependencies.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eKeep images small. Large base64 assets can quickly hit the payload limit.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eIf the page will be revised repeatedly, reserve a meaningful \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003ecustomCode\u003c/code\u003e at the first deploy.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eSave returned \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003ecode\u003c/code\u003e, \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eurl\u003c/code\u003e, and \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eqrCode\u003c/code\u003e immediately after deployment.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eWhen receiving \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003e429\u003c/code\u003e, respect \u003ccode style=\"background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em\"\u003eretryAfterSeconds\u003c/code\u003e instead of retrying aggressively.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eTreat htmlcode.fun as a fast publication channel, not a full static hosting platform.\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eTell the user clearly when the page is better suited for Vercel or Netlify instead.\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eWhat this host is good at\u003c/h3\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eTemporary landing pages\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eDemo pages\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eShareable documentation pages\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eQR-linked event or campaign pages\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eAI-generated single-file frontends\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eStable short-link pages that need quick overwrite updates\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eWhat this host is not good at\u003c/h3\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eMulti-page sites with shared assets\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eFramework builds\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eLarge production frontends\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eTeam workflows with preview environments and rollback\u003c/li\u003e\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003eConfirmed custom-domain hosting workflows\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003e\u003ch3 style=\"color:#e5e7eb;margin:18px 0 8px;font-size:1.05em\"\u003eExample live page\u003c/h3\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eReference example:\n\u003cli style=\"color:#94a3b8;margin:3px 0\"\u003ehttps://www.htmlcode.fun/s/htmlcode-fun-guide\u003c/li\u003e\u003c/p\u003e\u003cp style=\"margin:8px 0\"\u003eUse that page as a model for how to explain advantages, limitations, and deployment guidance in one self-contained HTML document.\n\u003c/p\u003e"])</script><script>self.__next_f.push([1,"1f:[\"$\",\"div\",null,{\"className\":\"skill-page\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"SoftwareApplication\\\",\\\"name\\\":\\\"html-easy-deploy\\\",\\\"description\\\":\\\"Instantly deploy a single self-contained HTML page to htmlcode.fun for quick live URLs. Alias of html-deploy, with versioned updates, description-required de...\\\",\\\"url\\\":\\\"https://bytesagain.com/skill/html-easy-deploy\\\",\\\"applicationCategory\\\":\\\"clawhub\\\",\\\"operatingSystem\\\":\\\"Any\\\",\\\"offers\\\":{\\\"@type\\\":\\\"Offer\\\",\\\"price\\\":\\\"0\\\",\\\"priceCurrency\\\":\\\"USD\\\"},\\\"publisher\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"BytesAgain\\\",\\\"url\\\":\\\"https://bytesagain.com\\\"}}\"}}],[\"$\",\"div\",null,{\"className\":\"breadcrumb\",\"children\":[[\"$\",\"a\",null,{\"href\":\"/\",\"children\":\"BytesAgain\"}],\" β€Ί \",[\"$\",\"a\",null,{\"href\":\"/skills\",\"children\":\"Skills\"}],\" β€Ί \",\"html-easy-deploy\"]}],[\"$\",\"div\",null,{\"className\":\"two-col\",\"children\":[[\"$\",\"div\",null,{\"className\":\"two-col-main\",\"children\":[[\"$\",\"div\",null,{\"className\":\"skill-card\",\"children\":[[\"$\",\"div\",null,{\"className\":\"skill-header\",\"children\":[[\"$\",\"div\",null,{\"className\":\"skill-badges\",\"children\":[[\"$\",\"span\",null,{\"className\":\"badge\",\"style\":{\"color\":\"#818cf8\",\"background\":\"#818cf822\",\"borderColor\":\"#818cf844\"},\"children\":[\"πŸ¦€\",\" \",\"ClawHub\"]}],false]}],[\"$\",\"div\",null,{\"className\":\"skill-top-actions\",\"children\":[\"$\",\"$L21\",null,{\"slug\":\"html-easy-deploy\"}]}]]}],[\"$\",\"h1\",null,{\"className\":\"skill-title\",\"children\":\"html-easy-deploy\"}],[\"$\",\"p\",null,{\"className\":\"skill-owner\",\"children\":[\"by \",[\"$\",\"span\",null,{\"children\":[\"@\",\"520xiaomumu\"]}]]}],[\"$\",\"p\",null,{\"className\":\"skill-desc\",\"children\":\"Instantly deploy a single self-contained HTML page to htmlcode.fun for quick live URLs. Alias of html-deploy, with versioned updates, description-required de...\"}],[\"$\",\"div\",null,{\"className\":\"skill-meta\",\"children\":[[\"$\",\"div\",null,{\"className\":\"meta-item\",\"children\":[[\"$\",\"span\",null,{\"className\":\"meta-label\",\"children\":\"Version\"}],[\"$\",\"span\",null,{\"className\":\"meta-value\",\"children\":[\"v\",\"1.3.0\"]}]]}],[\"$\",\"div\",null,{\"className\":\"meta-item\",\"children\":[[\"$\",\"span\",null,{\"className\":\"meta-label\",\"children\":\"Downloads\"}],[\"$\",\"span\",null,{\"className\":\"meta-value\",\"children\":\"365\"}]]}],false,[\"$\",\"div\",null,{\"className\":\"meta-item\",\"children\":[[\"$\",\"span\",null,{\"className\":\"meta-label\",\"children\":\"Stars\"}],[\"$\",\"span\",null,{\"className\":\"meta-value\",\"children\":[\"⭐ \",\"2\"]}]]}],false,[\"$\",\"div\",null,{\"className\":\"meta-item\",\"style\":{\"flexDirection\":\"row\",\"gap\":6,\"alignItems\":\"center\"},\"children\":[[\"$\",\"a\",\"devops\",{\"href\":\"/?q=devops\",\"className\":\"tag\",\"children\":[\"#\",\"devops\"]}],[\"$\",\"a\",\"writing\",{\"href\":\"/?q=writing\",\"className\":\"tag\",\"children\":[\"#\",\"writing\"]}],[\"$\",\"a\",\"legal\",{\"href\":\"/?q=legal\",\"className\":\"tag\",\"children\":[\"#\",\"legal\"]}]]}]]}],[\"$\",\"div\",null,{\"style\":{\"marginTop\":6},\"children\":[\"$\",\"a\",null,{\"href\":\"https://clawhub.ai/520xiaomumu/html-easy-deploy\",\"target\":\"_blank\",\"rel\":\"noopener\",\"className\":\"btn-secondary\",\"style\":{\"padding\":\"6px 12px\",\"fontSize\":\".82em\",\"borderRadius\":8,\"background\":\"transparent\",\"border\":\"1px solid #1e1e3f\",\"color\":\"#6b7280\",\"textDecoration\":\"none\",\"whiteSpace\":\"nowrap\"},\"children\":[\"View on \",\"ClawHub\",\" β†’\"]}]}]]}],[\"$\",\"div\",null,{\"className\":\"install-box\",\"children\":[[\"$\",\"div\",null,{\"className\":\"install-header\",\"children\":[[\"$\",\"div\",null,{\"className\":\"install-dots\",\"children\":[[\"$\",\"div\",null,{\"className\":\"dot\",\"style\":{\"background\":\"#ef4444\"}}],[\"$\",\"div\",null,{\"className\":\"dot\",\"style\":{\"background\":\"#eab308\"}}],[\"$\",\"div\",null,{\"className\":\"dot\",\"style\":{\"background\":\"#22c55e\"}}]]}],[\"$\",\"span\",null,{\"className\":\"install-label\",\"children\":\"TERMINAL\"}]]}],[\"$\",\"div\",null,{\"className\":\"install-body\",\"style\":{\"flexWrap\":\"wrap\"},\"children\":[[\"$\",\"code\",null,{\"className\":\"install-cmd\",\"children\":\"clawhub install html-easy-deploy\"}],[\"$\",\"button\",null,{\"className\":\"copy-btn\",\"data-cmd\":\"clawhub install html-easy-deploy\",\"style\":{\"fontWeight\":700},\"children\":\"Copy\"}]]}]]}],[\"$\",\"section\",null,{\"className\":\"skill-card\",\"style\":{\"marginBottom\":20},\"children\":[[\"$\",\"h2\",null,{\"style\":{\"color\":\"#f8fafc\",\"fontSize\":\"1.2em\",\"fontWeight\":800,\"margin\":\"0 0 16px\",\"display\":\"flex\",\"alignItems\":\"center\",\"gap\":8},\"children\":\"πŸ“– About This Skill\"}],[\"$\",\"div\",null,{\"style\":{\"fontSize\":\".92em\",\"color\":\"#94a3b8\",\"lineHeight\":1.75},\"dangerouslySetInnerHTML\":{\"__html\":\"$22\"}}]]}],null,null,null,null,null,null,null,false,false]}],\"$L23\"]}]]}]\n"])</script><script>self.__next_f.push([1,"20:[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n document.querySelectorAll('.copy-btn, .script-copy-btn').forEach(btn =\u003e {\\n btn.addEventListener('click', () =\u003e {\\n const cmd = btn.getAttribute('data-cmd');\\n if (!cmd) return;\\n navigator.clipboard.writeText(cmd).then(() =\u003e {\\n const orig = btn.textContent;\\n btn.textContent = 'Copied!';\\n setTimeout(() =\u003e btn.textContent = orig, 1500);\\n }).catch(() =\u003e {});\\n });\\n });\\n \"}}]\n"])</script><script>self.__next_f.push([1,"24:I[71521,[\"/_next/static/chunks/0j7976nc1zlv1.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0i_x3w546rsb3.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/06ig5gym-0n-u.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\",\"/_next/static/chunks/0~t057~scpf-f.js?dpl=dpl_8BavFdE5zgaEzeDDeRJuHgbHFqSc\"],\"default\"]\n23:[\"$\",\"div\",null,{\"className\":\"two-col-side\",\"children\":[\"$\",\"$L24\",null,{\"category\":\"clawhub\",\"currentSlug\":\"html-easy-deploy\",\"name\":\"html-easy-deploy\",\"tags\":[\"devops\",\"writing\",\"legal\"]}]}]\n"])</script></body></html>