By · Founder, Stacktree · Last updated
workflow

Move a Claude artifact to a private link that will not expire.

The artifact is good enough to keep, which is exactly when its public claude.ai URL stops being good enough. Move the HTML to a page you control: unguessable, never indexed, behind a passcode or your own domain, updated in place when you revise it. On paid plans it stays until you delete it.

Get started free

No card · 3 pages free · about a minute

How do you move a Claude artifact to a private link?

Copy the artifact's HTML out of Claude, publish it to Stacktree, and send that link instead. The URL is unguessable, never indexed, and can sit behind a passcode or your own domain. On Solo and up the page stays until you delete it; the free plan gives 7 days.

What is wrong with the artifact link

Nothing, if the audience is the internet. Claude's publish button mints a public URL built for sharing onward, and Anthropic's own help notes it can be indexed by search engines. The problems start when the artifact is client work:

  • It is public. Anyone with the link, and potentially anyone searching, can open it. There is no passcode, no email gate, no way to scope it to one client.
  • Unpublish is forever. Taking an artifact down kills that URL permanently; republishing mints a different link, so every place you pasted the old one now 404s.
  • It is Claude's address, not yours. No custom domain, no your-branding, and on Team and Enterprise plans sharing is scoped to your org, so an outside client cannot open it at all.

The rescue is mechanical: the artifact is already HTML, and HTML is the one thing a private host can take as-is. Here is a live rescued artifact, an implementation plan of exactly the kind Claude produces, served as a private Stacktree page.

Typical flow

  1. In Claude, open the artifact and download it (or copy the HTML). Skip this step entirely if Claude has the Stacktree connector: just say "publish this artifact to Stacktree with a passcode".
  2. Publish the file: drag it onto app.stacktr.ee, let Claude call publish_html, or curl it (below). Back comes an unguessable URL that is never listed and opted out of crawlers.
  3. Gate it to fit the audience: a passcode on any plan, the client's email domain from Solo, or nothing extra if the unguessable link is enough.
  4. Send the new link, and retire the public one if the artifact was already published.
  5. Next revision: update the same page with update_site. The URL you sent keeps working, which the claude.ai link cannot promise across an unpublish.

What ports cleanly, and what does not

Worth saying plainly: an artifact that is self-contained HTML, which is most of them, renders identically on Stacktree, interactivity included. An artifact that calls Claude's runtime from inside the page, using window.claude to prompt the model or Claude's artifact storage to persist data, depends on claude.ai and will not run anywhere else. If yours is one of those, ask Claude to export a static version with the data inlined, then publish that.

Run it now

1. Paste one line into Claude (or any agent)

Fetch and follow https://stacktr.ee/prompt.md, then publish this artifact as a private link with a passcode.

Works in any agent that can fetch a URL. The instructions are plain Markdown you can read first.

2. Install once

npx stacktree-install

Configures Claude Code, Cursor, Codex CLI, OpenCode, or Amp. On Claude.ai, add the connector URL https://api.stacktr.ee/mcp; one-click setup.

3. No signup: curl the downloaded file

curl -X POST https://api.stacktr.ee/sites -F file=@artifact.html

Publishes anonymously: a private URL that lives 24 hours, no account and no key. The response includes a claim token, so if the rescue sticks you can adopt the page and keep it for good.

FAQ

Frequent questions

Are published Claude artifact links public? +
Yes. Publishing an artifact mints a link designed to be shared onward, and Anthropic's help pages note it can be indexed by search engines. Unpublishing is also permanent for that version: the link dies for everyone and republishing mints a different URL. A Stacktree page is the opposite on both counts: unguessable, never indexed, and updatable in place under the same URL.
Will the page really never expire? +
On Solo and up, yes: pages stay until you delete them. Being honest about the lower rungs: an anonymous publish lives 24 hours, and free-account pages live 7 days each, 3 pages in total. If the artifact matters enough to rescue, permanence is $19 a month, or a one-time $5 over x402 if an agent is paying per page.
Does the artifact stay interactive after the move? +
A self-contained artifact (HTML, inline styles and script, a React build compiled to static assets) renders exactly as it did. What does not carry over is anything that calls Claude's own runtime: an artifact using window.claude to prompt the model, or Claude's artifact storage, depends on claude.ai and will not run elsewhere. Most artifacts worth sending to a client are the self-contained kind.
Can Claude do the whole move itself? +
Yes. Add the Stacktree connector at api.stacktr.ee/mcp and say "publish this artifact to Stacktree with a passcode". Claude calls publish_html and returns the private link in the same conversation, and later revisions go to the same URL with update_site.
Keep reading

Related guides

References

Sources and further reading

Keep the artifact. Lose the public URL.

Publish it anonymously right now, no account, and claim it if it should live longer than 24 hours.

Sign up free →