The two-option problem
An artifact you made in a conversation is visible to you. Publishing it makes it visible to anyone with the link, permanently and without gates. There is no show this to one client for a week setting, which is the setting most people actually want.
What Anthropic's publishing does and does not do
- It gives you a public URL that anyone can open.
- Unpublishing stops future access, but cannot recall a copy someone already took.
- There is no password, no expiry and no work-email gate.
- The page lives on their domain, not yours.
None of that is a criticism — it is a share feature, not a hosting product. It just does not cover private delivery.
Publishing the artifact here instead
Copy the artifact's HTML and publish it:
curl -X POST https://read.botook.ai/v1/publish -F file=@index.htmlOr, with the connector installed, ask Claude to do it and skip the copy entirely:
publish_html({
content: "<!doctype html>…", // the artifact
expires_in_hours: 168,
password: "optional"
})What you get that the public link does not have
| Capability | Public artifact | Here |
|---|---|---|
| Unguessable URL | Public link | 22-character random token, never indexed |
| Password | No | Yes |
| Work-email gate | No | Yes |
| Expiry | No | Hours, or never |
| Burn after read | No | Yes |
| Your own domain | No | Yes |
| Revoke | Unpublish going forward | Hard delete, record and object |
| Reader account | None | None |
Set the gate
set_password({ site_id: "…", password: "hunter2" })
set_email_gate({ site_id: "…", allowed_email_domain: "client.com" })
set_expiry({ site_id: "…", expires_in_hours: 168 })Keep it forever, or not at all
expires_in_hours: "never" makes an artifact permanent — genuinely permanent, not
until a plan changes. The opposite is also available: 24 hours, then deletion.
An artifact that keeps changing
Ask for a revision in the same conversation, then replace in place. The link you sent stays correct:
update_site({ site_id: "…", content: "<!doctype html>…" })An artifact that pulls in a library
Artifacts often reference a CDN. The viewer's content policy refuses third-party scripts, so inline what the page needs before publishing — ask Claude for a self-contained document and it will produce one.
Unpublishing an artifact you already made public
Unpublish it on Anthropic's side to stop future access, then re-publish the same HTML here behind whatever gate it should have had. You cannot recall what was already copied — nobody can — but everything from here on is governed. More on making an artifact private.
Sharing with a team rather than a person
A work-email gate is usually right: anyone at the company can open it, nobody else can, and you did not have to collect a list of addresses.
Sharing with a client
Put it on your own hostname and add a passcode — custom domains and passwords.
Collecting reactions
Turn the toolbar on and the people you sent it to can react or comment in place, with no account:
set_agentation({ site_id: "…", agentation: true })Knowing whether it was opened
curl https://read.botook.ai/sites/SITE_ID -H "Authorization: Bearer otr_live_YOUR_KEY" \
| jq '{view_count, unique_viewers, last_viewed_at}'Doing it in bulk
Several artifacts from one conversation? Ask Claude to publish each and report the links, or zip them and publish the archive as one site with an index.
Getting the markup out of the artifact
Publishing needs the document, and there are three ways to get it depending on where you are standing. The last one is the only one that scales:
- Copy it out of the artifact panel and paste it into the box at the bottom of the home page.
- Save it to a file and send the file:
curl -X POST https://read.botook.ai/sites -F file=@artifact.html. - Skip the copy entirely — connect the agent once and ask it to publish, so the markup never passes through your clipboard at all.
curl -X POST https://read.botook.ai/v1/publish -F file=@index.htmlWhen the artifact is a tool, not a document
Plenty of artifacts are small applications: a calculator, a converter, a form that scores something. Those work here, with one boundary worth knowing. A single-file tool that runs entirely in the browser is exactly what this hosts. A tool that expects a server — an API key it calls out with, a database, a login — does not become one by being published, because there is no server side here to run it on. State that lives in the reader's own browser is fine; state that needs to be shared between readers is not.
How it looks when you paste the link
Dropped into a chat app or an email, the link unfurls into a card built from a real screenshot of the current version of the page — so colleagues see what it is before deciding to open it. Put a password or an email gate on it and the card becomes a deliberate placeholder instead, because a preview image of a gated page would quietly undo the gate. Take the gate off later and the real screenshot is regenerated without you asking.
What this does not change
The artifact is still whatever Claude wrote. Publishing it privately is a hosting decision, not a review — read it before you send it, exactly as you would anything else.
Questions
Is the copy still in my conversation?
Yes. Publishing here does not move or remove anything.
Can I publish straight from Claude.ai?
With the connector, yes — one tool call, no copy-paste.
Does the viewer need an account?
No.