ht-ml.app

How to deploy an HTML site in one command

You have an .html file. You want a public link. Here's the shortest path — free, no account.

Most hosts want a repo, a build, a dashboard, and a signup before they'll give you a URL. For a single HTML file that's overkill. ht-ml.app takes one HTTP request and hands back a live URL.

One command

Send the file's contents as JSON. jq handles the escaping:

curl -X POST https://api.ht-ml.app/v1/sites \
  -H "Content-Type: application/json" \
  -d "{\"html_content\": $(jq -Rs . < index.html)}"

The response gives you everything you need:

{
  "site_id": "a1b2c3d4",
  "url": "https://a1b2c3d4.ht-ml.app/",
  "update_key": "…",
  "status": "active"
}

Open the url — it's already live. Each site gets its own subdomain, so relative paths like <img src="logo.png"> resolve correctly. Keep the update_key secret; it's how you edit the site later.

From an AI agent

If you're working in Claude Code, Codex, or another agent, you don't need the curl at all. There's an installable skill — say:

deploy index.html with ht-ml.app and give me a link

The agent posts the file and returns the URL. Install the skill once:

npx skills add nsmith/html

Update it later

Replace the HTML with a PUT and your update_key. The live page refreshes; the URL stays the same.

curl -X PUT https://api.ht-ml.app/v1/sites/a1b2c3d4 \
  -H "Authorization: Bearer YOUR_UPDATE_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"html_content\": $(jq -Rs . < index.html)}"

Keep it private

Pass a password when you create the site and only people with it can view the page. It's a shared secret — generate a unique one, don't reuse a personal password.

Try it

Deploy your first page now

Paste the command above, or open the homepage for the full walkthrough. Free, no signup, live in seconds.

Open the quickstart →

Everything published is public unless you set a password — see the terms. Need something to deploy? Try the single-file kanban board.