freo.cloud

Guide · HTML & dashboards

How to host an HTML file or dashboard from your AI agent

Your agent built a self-contained HTML page or an interactive dashboard. It's sitting in a folder on your machine. Here's how to turn it into a real URL someone can open — interactive, private, and with no build pipeline to set up.

The short version: freo.cloud lets your AI coding agent — Claude Code, Codex, Cursor, Windsurf and more — publish an HTML file or a whole multi-file site straight to a shareable link, without you touching a hosting provider. You connect the agent once, then just say "publish this and give me the link." The page renders in a locked-down sandbox, so its JavaScript and CSS keep working — charts stay interactive, filters still filter. No repo, no bucket, no deploy step.

On a chat app like Claude.ai or ChatGPT instead of a coding agent? Connect the MCP server with one-click OAuth (no token) — then the same "just ask it to publish" flow applies.

By Petr Cervenka See a real published doc →

The problem: a great page with nowhere to put it

Agents are excellent at generating a self-contained .html page, but everything after "done" is awkward: emailing the file is friction and a security smell, a screenshot throws away the interactivity, and standing up GitHub Pages or an S3 bucket is real work for one page you'll share once. A public repo or bucket is also the wrong default for numbers you'd rather not see indexed on Google.

What you actually want is boring: a URL, scoped to the people who should see it, that you can paste into Slack or an email — produced by the agent that already has the file open.

The fast way: connect once, then just ask

You wire up freo.cloud a single time. After that your agent can publish on its own, in plain English, whenever you ask.

  1. 01

    Sign in with your email

    No passwords — a magic link drops you into your own @handle space, where everything you publish lives.

  2. 02

    Copy your setup prompt

    From your Connect page — it's one-time and expires. Your publishing key never appears in any URL.

  3. 03

    Paste it into your agent

    Your agent claims a scoped publishing key and saves the publishing skill for itself. macOS, Linux and Windows.

  4. 04

    Ask it to publish the page

    No flags to remember — the skill lives on the agent now, not in your head.

What you'd say to your agent

"Publish dashboard.html to freo and give me a private link — only people I email should be able to open it."

The agent uploads the file to your space, sets the access level you described, and hands back a URL. You paste it wherever it needs to go.

One file, or a whole site

A single self-contained .html file is the simplest case — its inline CSS and JavaScript just work. But agents often produce a small bundle: an index.html plus separate .css, .js, fonts and images. You can publish the whole folder in one go — the agent uploads each file with its relative path and points the entry at index.html, so links between your assets resolve exactly as they do locally. Up to 200 files, 10 MB each.

Either way the page renders inside a sandboxed, null-origin iframe — so a charting library, a bit of vanilla JS, or a small framework build all run normally. Interactivity is the whole point; it survives.

Controlling who can open it

You pick one of four access levels when you publish — unique link, email-protected, allowlist, or public — and can change it later without changing the link. The access-control guide covers when to use each.

A link nobody opens for about a month quietly goes private on its own, and you can set a hard expiry — useful for a dashboard that shouldn't outlive the conversation it was built for.

The alternatives, fairly

freo isn't the only way to put an HTML page online, and for some jobs it isn't the right one:

Is it safe to host agent-generated HTML?

It's worth asking — agent output is code you didn't hand-write. Published pages run in a sandboxed, null-origin iframe, walled off from your account and ours, and are served with noindex and no-referrer headers so they can't leak into search or analytics. Uploads are scanned for malware and for leaked API keys before a viewer can open them, and image metadata (EXIF/GPS) is stripped on ingest. You get the URL; the blast radius stays small.

Questions

Will my charts and interactivity still work?

Yes. The page runs in a sandboxed iframe with its own JavaScript and CSS, so charting libraries, filters and small framework builds behave exactly as they do locally. What's blocked is reaching back into your freo account — not the page's own code.

Can I update the page without changing the link?

Yes — re-publish the same document's content and the URL stays put. Ask the agent to "update that page with the new file" and whoever has the link sees the new version.

Is it free?

Free during early access.

Give your agent's pages a home

Sign in with your email and connect your agent in one prompt — then just ask it to publish.

Get your space →