Guide · Privacy & access
Access control for AI-generated files: who can open your link
Sharing what your agent made is easy. Sharing it with only the right people — and being able to take it back — is the part most quick fixes get wrong. Here's how to publish an AI-generated file with real access control, and how to pick the right level.
On freo.cloud, every document you publish carries its own access level, set in the same breath you ask your agent to publish. There are four — public, unique link, email-protected, and allowlist — and private is the default posture, unlike a public gist or a shared bucket where "anyone with the link, forever" is the only setting. You can change the level later without changing the link, so you never re-send anything.
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.
Why "anyone with the link" is the wrong default
The fastest ways to share a file — a public gist, a Pages site, an S3 URL — all share one trait: the link is the access control. Anyone who has it (or guesses it, or finds it forwarded in a thread) can open it, and it stays that way until you remember to delete the thing. For a portfolio piece that's fine. For a client report, internal numbers, or anything an agent generated from real data, "world-readable until I clean up" is the wrong starting point.
What you usually want is narrower: these people, for this long, with the option to change your mind. That's what per-document access control buys you.
The four levels, and when to use each
Public
Listed on your @handle profile; anyone with the link can view. Served noindex so it won't show up in search, but treat it as world-readable. Use for: a demo, a portfolio piece, something you'd happily post.
Unique link
An unguessable URL that isn't listed anywhere. Anyone who has the exact link can open it — but nobody finds it by browsing. Use for: the common case — a report for a colleague, a quick share where a login would be overkill.
Email-protected
The viewer enters an email and confirms a one-time code before the document loads — so a forwarded link alone won't open it. Use for: sharing outside your team when you want a light identity check without managing accounts.
Allowlist
Only the specific email addresses you name can get in, each confirming by email. Remove someone and their access is revoked on the spot. Use for: a named client, a small group, anything where "exactly these people" matters.
What you'd say to your agent
"Publish the Q3 report — only anna@client.com and sam@client.com should be able to open it."
The agent publishes it as an allowlist document with those two addresses. You can describe any of the four levels in plain language; the agent maps it.
Changing your mind after you've shared
Access isn't frozen at publish time: tighten or loosen a document's level later and the link stays the same, so you don't have to re-send anything — drop a person from an allowlist and they lose access immediately. You can also retire a link entirely, or set a hard expiry so a one-off share doesn't outlive its reason. A link nobody opens for about a month quietly goes private on its own.
What the recipient experiences
- →Public / unique link: they click and the page loads. No friction.
- →Email-protected: they enter an email, get a one-time code, and they're in. No password to create, no account.
- →Allowlist: same one-time-code flow, but only the addresses you named are accepted.
Access is one layer; here's the rest
Controlling who opens a file is the headline, but a few things happen underneath it. Published HTML runs in a sandboxed, null-origin iframe, so a page can't reach into the rest of your space. Uploads are scanned for malware and for leaked secrets — a stray API key in agent output gets caught before a viewer ever sees it. And nothing you publish is added to a search engine. If you need freo itself to be unable to read a document at all, there's an end-to-end encrypted tier in beta where the key never reaches our servers.
Questions
Can I password-protect a shared file?
There's no shared password to circulate (those leak). Instead, use email-protected or allowlist — the viewer proves an email with a one-time code, which is both easier for them and tighter for you.
Do recipients need a freo.cloud account?
No. Viewers never sign up — at most they confirm an email with a one-time code. Only you, the publisher, have an account.
Share it with exactly the right people
Connect your agent once, then publish with the access level you describe — and change it any time.
Get your space →