Deploy an HTML page from a Claude or ChatGPT chat to thin.host

Take an HTML page that Claude or ChatGPT wrote in a chat and get a live, shareable URL for it. thin.host serves the static files and gives you a live URL right away. Your agent can do every step for you through the thin.host MCP server, or you can run one curl command.

At a glance

Stepan HTML page from a Claude or ChatGPT chat
Folder to deploythe folder that holds index.html
Deploycurl -F file=@index.html -H "Authorization: Bearer $THINHOST_API_KEY" https://thin.host/v1/websites/archive
Live URLhttps://thin.host/s/my-site/, or your own domain

Before you start

Check your links

Until a domain points at it, a thin.host site lives under a sub-path: https://thin.host/s/<slug>/. Chat-generated pages are usually a single self-contained file. Save it as index.html; if it loads images or scripts from relative paths, put those files next to it.


<!-- paste the full HTML from the chat here -->

Deploy from your agent (MCP)

Connect thin.host to Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Codex or ChatGPT once (setup for each client), then ask:

Save this page as index.html and publish it to thin.host with the slug my-site.

With the local server (uvx thinhost-mcp) the agent writes the file and calls publish_website with its path. Ask for changes in the same conversation and it pushes them with update_website.

The hosted connector (https://thin.host/mcp, used by claude.ai and ChatGPT) cannot read your disk. From a coding agent it uploads with the REST call below; otherwise it publishes from a public link to a zip or HTML file with publish_website_from_url.

Deploy with curl

curl -F file=@index.html -F title="My page" -F slug=my-site \
  -H "Authorization: Bearer $THINHOST_API_KEY" \
  https://thin.host/v1/websites/archive

The JSON response includes url, the live address (https://thin.host/s/my-site/). To redeploy, upload the new file to the site's archive endpoint; pages and assets missing from it are removed:

curl -F file=@index.html \
  -H "Authorization: Bearer $THINHOST_API_KEY" \
  https://thin.host/v1/websites/my-site/archive

A single upload can be up to 30 MB. See the REST API reference for every field.

Add a custom domain

  1. Open the site in the dashboard and add your hostname under Custom Domains, for example www.example.com. A <name>.thin.host subdomain is free and works immediately.
  2. Create the DNS record the dashboard shows: a CNAME pointing at cname.thin.host. TLS is issued automatically once DNS resolves.

Pages on a custom domain get a canonical tag, a generated robots.txt and a sitemap.xml.

An HTML page from a Claude or ChatGPT chat notes

FAQ

Can Claude publish the page straight from claude.ai?

The hosted thin.host connector publishes from a URL (publish_website_from_url), so the page needs to be reachable at a public link first. Otherwise save it as index.html and upload it with the dashboard or curl.

Will the page keep working after the chat ends?

Yes. The site stays live until you delete it, and you can edit the copy in place from the dashboard.

How large can a site be?

A single archive upload can be up to 30 MB. The local MCP server (uvx thinhost-mcp) reads the build folder directly and splits large sites across requests, up to 150 MB.

Other frameworks: all deploy guides. Coming from another host? Compare thin.host.