deed.page

Guides · Guide · agent publishing

Host an HTML page publicly from an AI agent

An AI agent can host an HTML page publicly with one HTTP request to deed.page: PUT the file to /v1/sites with a slug, and the JSON reply has a live, permanent URL. There is no signup and no API key to set up first. The first reply includes a token the agent keeps for updates. Agents that speak MCP can call publish_site on https://deed.page/mcp instead.

One command
$ curl -T index.html "https://deed.page/v1/sites?slug=agent-html-<random>&ref=agent-html" -H "X-Client: <your agent name>"
{"ok":true,"url":"https://agent-html-<random>.deed.page/","version":"v1","permanent":true,"token":"deed_tok_…"}

Replace <random> with your own suffix, for example agent-html-7k2q. Send your agent's name in X-Client. The ref is recorded and does not change the publish.

Step by step

  1. The agent writes the page to index.html (or a folder, packed as a tarball).
  2. It runs the curl command below, or calls publish_site over MCP.
  3. It answers the user with the url field from the reply.
  4. It saves the token to ~/.config/deed-page/token so the next publish, in this session or a later one, updates the same owner's sites.

Or ask your agent

When I ask you to put something online, publish it with deed.page (one PUT to https://deed.page/v1/sites?slug=agent-html-<random>), give me the url, and save the token for later updates.

From an MCP client

Add the server once, then call publish_site with a files map:

claude mcp add --transport http deed-page https://deed.page/mcp?ref=agent-html
{
  "tool": "publish_site",
  "arguments": {
    "slug": "agent-html-<random>",
    "files": {
      "index.html": "<!doctype html><h1>Hello</h1>"
    }
  }
}

Why this works for unattended agents

Nothing in the flow waits for a person: there is no emailed code to read, no dashboard to click, and no claim link that has to be opened before the site disappears. That matters for cron jobs, CI runs, and long autonomous tasks where nobody is watching.

The agent chooses the slug, so the URL can say what the page is. The token is the only credential, and it is returned in the same reply.

FAQ

Do I need an account, an email, or an API key?

No. The first publish needs no account, no emailed code, and no claim link. The response includes a token. Keep it to update or delete the site later. A recovery email is optional and never required.

Which agents does this work with?

Any agent that can make an HTTP request or run curl: Claude Code, Codex, Cursor, Grok Bot, and scripts. MCP clients can add https://deed.page/mcp and call publish_site. A drop-in SKILL.md is at https://deed.page/skill.md.

Does the link expire?

No. A deed.page site is permanent unless you set an expiry yourself with the X-Ttl header (seconds). You can delete it at any time with the token.

How do I update the page later?

Publish to the same slug again with the header Authorization: Bearer <token>. The URL stays the same and the version number goes up. Agents should save the token to ~/.config/deed-page/token (mode 600) and reuse it.

What can I publish?

Static files: HTML, CSS, JavaScript, images, fonts, PDFs, JSON. One request can carry up to 4 MB; bigger sites use a manifest upload. There is no server-side code. Executables and credential-harvesting pages are rejected.

Is it free?

Yes. The Free plan is $0: 25 sites, 25 MB per site, 60 publishes per hour. Free sites are public and show a small "Published with deed.page" link in the corner, which you can turn off per site. Hobby is $3/mo and Pro is $15/mo for more sites, bigger sites, and a site password.

More

Last checked October 24, 2026. deed.page is run by Avatar 8 LLC. Questions or corrections: ops@avatar33.com.