deploy β
Deploy a site to a live URL. Supports single HTML files and multi-file sites. The deploy goes live immediately β no preview step, no confirmation required.
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}.invoker.page. Generated if omitted. |
title | string | No | Page title for SEO and browser tab |
description | string | No | Meta description for SEO and social sharing |
favicon | string | No | Favicon emoji (e.g. π). Defaults to β‘. |
is_spa | boolean | No | Set true for single-page apps with client-side routing. Enables 404βindex.html fallback. |
*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.invoker.page
ID: dep_abc123
Slug: my-siteFor anonymous deploys (not logged in):
Deployed successfully!
URL: https://my-site.invoker.page
ID: dep_abc123
Slug: my-site
Expires: 2026-03-02T12:00:00Z (anonymous β share claim_url to make permanent)
Claim URL: https://invoker.page/claim/abc123?token=tok_xyzSingle-file Example β
User prompt:
"Deploy a landing page for my app called Acme at acme-launch"
What Claude does:
- Calls
list_stylesoruse_templateto get a starting point (or generates custom HTML). - Customizes the HTML with "Acme" branding.
- Calls
deploywith the HTML andslug: "acme-launch". - Returns: "Your page is live at https://acme-launch.invoker.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.
Anonymous Deploy β
If you're not logged in, deploy still works. The response includes:
expires_atβ the deploy expires after 24 hoursclaim_urlβ visit this URL after signing in to make the deploy permanent
Notes β
- No preview step. Deploys go live immediately.
- 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.).