deploy β
Deploy a site to a live URL. Supports single HTML files and multi-file sites. The deploy goes live immediately.
Annotations β
| Annotation | Value |
|---|---|
readOnlyHint | false |
destructiveHint | false |
openWorldHint | true |
Parameters β
| Name | Type | Required | Description |
|---|---|---|---|
html | string | No* | Full HTML content for single-file deploys |
files | array | No* | Files for multi-file deploys (see below) |
slug | string | No | URL slug (lowercase, hyphens only). Becomes {slug}.based.page. Generated if omitted. |
title | string | No | Page title - used for the browser tab, search results, and the auto-generated social sharing preview image. Always provide this. |
description | string | No | Meta description - shown in search results and on the social sharing preview image. Always provide this. |
favicon | string | No | Favicon emoji (e.g. π). Shown in the browser tab and as a watermark on the social sharing preview image. Defaults to β‘. For multi-file deploys, include a favicon.ico file instead. |
og_image | string | No | Custom Open Graph image URL for social media previews. For multi-file deploys, include an og-image.png file instead. If omitted, a branded preview is generated. |
is_spa | boolean | No | Set true for single-page apps with client-side routing. Enables 404βindex.html fallback. |
protect | boolean | No | Make the page private. Returns a share_url for sharing access. |
password | string | No | Optional password for a typed-password gate in addition to the share link. |
*Either html or files is required.
files array format β
Each file entry:
| Field | Type | Required | Description |
|---|---|---|---|
path | string | Yes | File path relative to site root (e.g. index.html, css/style.css) |
content | string | Yes | File content (UTF-8 text or base64 for binary files) |
contentType | string | Yes | MIME type (e.g. text/html, text/css, image/png) |
encoding | "utf-8" | "base64" | No | Use "base64" for binary files. Defaults to "utf-8". |
Return format β
Deployed successfully!
URL: https://my-site.based.page
ID: abc123
Slug: my-siteSingle-file Example β
User prompt:
"Deploy a landing page for my app called Acme at acme-launch"
What Claude does:
- Generates custom HTML for the page.
- Customizes the HTML with "Acme" branding.
- Calls
deploywith the HTML,slug: "acme-launch",title: "Acme", and a short description. - Returns: "Your page is live at https://acme-launch.based.page"
Multi-file Example β
User prompt:
"Deploy a site with index.html, about.html, and a shared stylesheet."
What Claude does:
- Generates the HTML files and CSS.
- Calls
deploywith afilesarray containing all three files. - Returns the live URL.
React / SPA Example β
User prompt:
"Deploy a React app with client-side routing."
What Claude does:
- Generates an HTML file with esm.sh React imports.
- Calls
deploywithis_spa: true. - All 404 requests fall back to
index.html, enabling React Router.
Password-Protected Page Example β
User prompt:
"Deploy a private investor update page - only my team should be able to access it."
What Claude does:
- Generates the HTML content.
- Calls
deploywithprotect: trueand optionally apassword. - Returns the live URL and the private
share_url. - Shares the
share_urlwith the user - recipients who click it get in automatically.
Response includes:
Deployed successfully!
URL: https://investor-update-q1.based.page
Share URL: https://investor-update-q1.based.page/?_token=xxxSend the Share URL to your team. Anyone with it gets automatic access. Visitors who navigate directly to the URL see a password gate (if a password was set) or a 403.
Well-known files β
For multi-file deploys, these filenames are detected automatically:
| File | Effect |
|---|---|
og-image.png | Used as the og:image for social media previews (Twitter, Discord, Slack, etc.) |
favicon.ico | Used as the site favicon instead of the emoji default |
Include them in the files array and they will be picked up - no need to set the og_image or favicon parameters separately.
Notes β
- Metadata is injected automatically.
title,description,favicon, and OG tags (includingog:image) are injected into the HTML at deploy time. Always pass these fields. - No build step. HTML is served as-is. Use CDN links (Tailwind, Alpine, esm.sh) for frameworks.
- Slug rules. Slugs must be lowercase and may contain hyphens. If the slug is taken, the deploy fails with a conflict error.
htmlandfilesare mutually exclusive. Use one or the other per deploy call.is_spais only needed for apps with client-side routing (React Router, Vue Router, etc.).