# Are Claude artifacts private? How to share one without making it public · Stacktree

Source: https://stacktr.ee/share-claude-artifacts

[Skip to content](#main)   [stacktr.ee](/)  [Examples](/#proof) [How it works](/#how) [Pricing](/pricing) [Security](/security) [Log in](https://app.stacktr.ee) [Publish one](https://app.stacktr.ee/?join=1)     By [Steve Smith](/about) · Founder, Stacktree Last updated August 29, 2026          use case

#  Share Claude artifacts on your own private URL.

   Claude's Publish button covers one case: a public link on claude.ai. Anthropic's own help doc defines the edges: no password, no expiry, no custom domain, unpublishing is permanent, and Team and Enterprise artifacts cannot be published publicly at all. Stacktree hosts the same HTML with all of those filled in.

  [ Get started free ](https://app.stacktr.ee/?join=1&from=seo_share_claude_artifacts)   install https://api.stacktr.ee/mcp
Copy
   [ Start with Solo, $19 ](https://app.stacktr.ee/billing?plan=solo&from=landing_tier&join=1)  Paste into claude.ai → Settings → Connectors · CLI users: npx stacktree-install

To share a Claude artifact privately, export its HTML and publish it to a private-by-default
      host such as Stacktree, which returns an unguessable link you can gate with a password or an
      email-domain check. Claude's own Publish button creates a public link only: per Anthropic's
      help center, anyone with the link can view it, there is no password or expiry option, and once
      you unpublish an artifact you cannot publish that same artifact again. A dedicated host adds
      the gates, the expiry, and your own domain.

   Paste HTMLDrop a fileno account · 24 h linkHTML to publishAdd a passwordPublish private link
Paste the artifact's HTML and get a private link. Nothing to install.

##  How do you share a Claude artifact privately?

Use Stacktree. The quickest route is the Claude.ai connector: paste `https://api.stacktr.ee/mcp` into Settings → Connectors and Claude publishes the artifact itself, straight from the chat. Stacktree returns an unguessable URL on its own domain (or yours, on the paid plans), and the viewer doesn't need a Claude account, or a Stacktree account, to open it.

## How to share Claude artifacts privately

The short version: don't rely on Claude's Publish button if the link needs to stay private.
      Export the artifact's HTML, publish it to a private-by-default host, and send the unguessable
      link. With Stacktree that is one step in the dashboard, one `curl`, or one
`publish_html` call from Claude Code. The viewer opens it with no Claude account and
      no Stacktree account, and you can layer a password, an email-domain gate, or an expiry on top.

## Questions people search mid-publish

Three questions that tend to get googled while Claude's own publish dialog is still open,
      answered plainly.

### Why is Claude telling me to upload a file to claude.ai?

Because you asked it to publish or share the artifact. The dialog wording, publishing
      "uploads the file below from this task to claude.ai", is a permission step: the page Claude
      built exists only inside your task, and uploading the HTML to claude.ai is how it becomes a
      link. Nothing is uploaded until you approve, and once you do, anyone who has the link can
      view it. If that file should not sit on a public link, publish it to Stacktree instead:
      Claude uploads the same HTML to a private, unguessable URL, with a passcode on top if you
      want one.

The private route is one connector away: on claude.ai, open Settings → Connectors →
Add custom connector and paste `https://api.stacktr.ee/mcp`. From then
      on, "publish this to Stacktree" in any chat returns a private link. In Claude Code,
`npx stacktree-install` wires up the same `publish_html` tool.

### Are Claude artifacts public?

Artifacts are private to your conversation until you publish them, and public afterwards.
      Anthropic's help center says publishing "makes your artifact publicly available" and "anyone
      with the link can view and interact with it"; there is no password, expiry, or private
      setting on a published link. If the page needs to stay restricted after it is shared,
      publish the same HTML through Stacktree, where the link is unguessable by default and can
      require a passcode or a verified company email address before it renders.

The distinction that matters is public-by-link versus gated. A claude.ai link is not listed
      anywhere, but it is a bearer credential with no lock: whoever holds it gets in, and it can
      be forwarded without you knowing. A gate turns "hopefully only the client has this" into
      "only the client can open this".

### Is there a list of public Claude artifacts?

No. Published Claude artifacts are not collected in any public directory, and there is no
      browsable index at claude.ai/public/artifacts; the artifacts space on claude.ai shows your
      own work, not everyone's published pages. A published artifact is unlisted, reachable only
      by its exact URL. Unlisted is not the same as private, though: the link can be reshared
      freely, which is the gap Stacktree closes with passcodes and email-domain gates on top of an
      unguessable URL.

## Why move artifacts off Claude.ai

Claude's built-in publish flow is genuinely good at its one job: a public link anyone can open, no account needed. The gaps are everything around that link, and Anthropic's own help doc is candid about them. You outgrow the Publish button the moment one of these is true:

  - The page must not be public. Publish has one mode, and per Anthropic "anyone with the link can view and interact with it."
 - You want a password or a company email gate in front of it.
 - You want the URL on yourco.com, not claude.ai.
 - You need it to expire after the engagement, or burn after one view.
 - You might want to take it down and put it back later: unpublishing on claude.ai is permanent, and the same artifact can never be published again.
 - You are on a Team or Enterprise plan, where artifacts "cannot be published publicly" at all: they stay inside the org, behind org authentication.

## The 30-second workflow

  - Once: on claude.ai, open Settings → Connectors → Add custom connector and paste https://api.stacktr.ee/mcp.
 - In the chat with the artifact, ask Claude to publish it to Stacktree. Claude uploads the HTML itself with publish_html.
 - Claude replies with stacktr.ee/p/<token>. Send it.
 - Optional: set a password, an email-domain gate, or an expiry.

No connector? Click the artifact menu → "Copy HTML" and paste into the Stacktree dashboard,
      or `curl -F file=@artifact.html https://api.stacktr.ee/sites`. In Claude Code,
      run `npx stacktree-install` once and `publish_html({ file: "artifact.html" })`
works there too.

## Can I put a Claude artifact on my own domain?

No, not through Claude: published artifacts live on claude.ai, and the only domain control in
      Anthropic's help doc is an allowlist of sites permitted to embed the artifact. If the page is a
      deliverable, the domain is part of the deliverable, and `claude.ai/artifacts/...`
says "generated in a chat" where `report.yourco.com` says "this is our work."
      Stacktree serves the same HTML on a [custom domain](/custom-domains): add a CNAME
      and a TXT verification record, SSL is provisioned automatically, and the domain can be
      re-pointed at any of your sites as projects change. Solo includes one domain, Studio ten. Revisions still
      land in place: the agent calls `update_site` and the URL you sent keeps showing the
      latest version, which is also true of Claude's published links; the domain and the gates are
      what the claude.ai link cannot carry.

## What about sensitive artifacts?

Agent-generated HTML often embeds real data: API responses, customer rows, prompt context. Stacktree treats this as the default case, not an edge case:

  - Unguessable URL. The token is the credential. No directory listing, no search indexing, no robots crawl.
 - Optional shared password. A second factor on top of the unguessable URL.
 - Email-domain gate. Magic-link verification against @yourco.com (or any domain).
 - End-to-end encryption. AES-GCM in the browser; the key lives in the URL fragment; Stacktree only sees ciphertext.
 - CSP defaults. Sensible Content-Security-Policy so a careless <script src> can't exfiltrate session data.

## Do published Claude artifacts get indexed by Google?

They can be. Claude's Publish creates a public claude.ai link with no password, and any public
      URL can end up in a search index once it is posted or linked somewhere crawlable. Anthropic's
      help doc offers no visibility setting beyond unpublishing, and unpublishing is a one-way door.
      A Stacktree link is the opposite: the token is unguessable, there is no directory or listing,
      and the host serves the headers needed to keep crawlers out, so a private artifact stays out of
      the index.

## Can I password protect a Claude artifact?

Not with Claude's built-in Publish, which offers no password and no access list. Publishing
      through Stacktree instead lets you toggle a shared password per link, or require viewers to
      verify a `@yourco.com` email via magic link before the artifact renders. Either gate
      sits on top of the already-unguessable URL, and the viewer still needs no Claude or Stacktree
      account.

## Do Claude artifacts expire?

No. Published artifact links stay up on claude.ai until you unpublish them, and there is no
      expiry setting to change that. The one removal mechanism is manual and permanent: per
      Anthropic's help doc, once you unpublish an artifact you cannot publish that same artifact
      again, and if the artifact used persistent storage, unpublishing deletes that data too. A
      Stacktree link supports a real expiry from minutes to years, burn-after-read for one-time
      viewing, and `delete_site` to revoke the URL the moment you are done, with nothing
      stopping you from publishing again later.

## How to make a shared Claude artifact private again

On Claude.ai you make a shared artifact private by unpublishing it, and you should treat that
      as final: the same artifact cannot be published again afterwards. There is no way to pause a
      link and restore it. If you publish through Stacktree instead, you keep direct control in both
      directions: call `delete_site(slug)` to revoke the link now, republish whenever you
      like, or set an expiry up front so it goes private on its own.

##  Claude's built-in publishing vs. Stacktree

     Criterion Claude built-in publish Stacktree     Works inside Claude app  Yes, primary use case.   Via MCP: one-click connector on claude.ai, or from Claude Code.   Public link, no viewer account  Yes, on Free, Pro, and Max.   Optional; private is the default.   Stable URL across revisions  Yes, published links update in place.   Yes, update_site keeps the URL.   Private or gated link  No. Public is the only mode.   Private by default; password or email-domain gate on top.   Custom domain  No, claude.ai only.   Yes: CNAME plus TXT verify, auto SSL. 1 on Solo, 10 on Studio.   Expiry control  No expiry option.   Expiry scheduling and burn-after-read on every plan.   Take it down, put it back  Unpublish is permanent; the same artifact can never be republished.   Delete and republish freely.   Team / Enterprise external sharing  Not available; org-only, org sign-in required.   Any plan, no seats involved.   E2E encryption  No.   Yes, AES-GCM client-side, free.
FAQ

## Frequent questions

     Why is Claude telling me to upload a file to claude.ai? +  Because you asked it to publish or share an artifact. The dialog wording, publishing "uploads the file below from this task to claude.ai", is Claude's permission step: the page it built exists only inside your task, so uploading the HTML to claude.ai is how it becomes a shareable link, and anyone who has that link can then view it. Nothing is uploaded until you approve. If the file should not sit on a public link, publish it to Stacktree instead: add the connector URL https://api.stacktr.ee/mcp under Settings → Connectors on claude.ai, ask Claude to publish to Stacktree, and the same HTML lands on a private, unguessable URL you can passcode.   Do Claude artifacts expire? +  No. Published claude.ai artifact links stay up until you unpublish them, and there is no expiry setting to change that. The only removal is manual unpublishing, which is permanent: Anthropic's help center states that once you unpublish an artifact, you cannot publish that same artifact again. Hosting the artifact's HTML on Stacktree gives you the timer explicitly: set an expiry, use burn-after-read for one-time viewing, or delete the link whenever you choose.   Can I password protect a Claude artifact? +  Not with Claude's built-in Publish, which has no password option; the published link is open to anyone who has it. Publish the artifact's HTML through Stacktree instead and you can toggle a shared password per link, or require viewers to verify a company email domain by magic link before the artifact loads. The gate sits on top of an already-unguessable URL.   Can I put a Claude artifact on my own domain? +  No. Published artifacts live on claude.ai, and the only domain setting in Anthropic's help center is which sites are allowed to embed the artifact. Publish the same HTML to Stacktree and you can serve it on a [domain you own](/custom-domains): add a CNAME and a TXT record, SSL is automatic, and the domain can be re-pointed at any of your sites. Solo includes one domain, Studio ten.   Are Claude artifacts public? +  They are private to your conversation until you publish, and public afterwards. Anthropic's help center states that publishing "makes your artifact publicly available" and "anyone with the link can view and interact with it"; a published link has no password, no expiry, and no private setting. If the page needs to stay restricted once shared, publish the same HTML through Stacktree: the link is unguessable by default and can require a passcode or a verified company email address before it renders.   Is there a list of public Claude artifacts? +  No. Published Claude artifacts are not collected in any public directory, and there is no browsable index at claude.ai/public/artifacts; the artifacts space on claude.ai shows only your own work. A published link is unlisted, reachable only by its exact URL, but it is not gated: anyone who obtains it can open it and pass it on. Hosting the artifact on Stacktree keeps it unlisted and adds a real gate, a passcode or an email-domain check, on top of an unguessable URL.   Can I publish a Claude artifact privately instead of publicly? +  Claude's Publish is public-or-nothing. Anthropic's help center describes it plainly: publishing "makes your artifact publicly available" and "anyone with the link can view and interact with it." There is no private mode, password, or access list. For a private version, take the artifact's HTML and publish it to Stacktree: unguessable URL by default, plus optional password or email-domain gates. Nothing is public unless you choose it.   What happens when I unpublish a Claude artifact? +  It is permanent. Per Anthropic: "Once you unpublish an artifact, you cannot publish that same artifact again," and unpublishing "also permanently deletes all associated storage data" if the artifact used persistent storage. You would need to create a new artifact to publish again. A Stacktree link is reversible in both directions: delete it now, republish later, or set an expiry so it retires itself.   How do I share a Claude artifact with a client without a login? +  Publish the artifact's HTML to Stacktree and send the link; the URL itself is the credential, so the client opens it with no account of any kind. If you need proof it stayed with the client, add an email-domain gate: the viewer confirms an @yourclient.com address via a one-time magic link, and still creates no account. Claude's public link also opens without a login, but it cannot be gated, expired, or kept off claude.ai's domain.   Why can't I publish my Claude artifact on a Team or Enterprise plan? +  Anthropic restricts it: artifacts created on Team or Enterprise accounts "can only be shared within your organization" and "cannot be published publicly," with viewers required to authenticate under the org account. So the plans most likely to produce client work are the ones that cannot hand a link outside the org. The workaround is the artifact's HTML: export it and publish it to a host like Stacktree, where the link opens for anyone you send it to, gated if you want it gated.   How do I share large HTML files from Claude? +  "How do I share large HTML files" is one of the most common questions in r/ClaudeAI, because the obvious routes fail: pasting into chat mangles the markup, and attaching the file makes recipients download-and-open it. Publish the file instead: drag it onto the Stacktree dashboard, POST it to the API, or let Claude publish it over MCP in one tool call. You get a live private link that renders in the browser like any other page.   How do I share a Claude artifact privately? +  Copy the artifact's HTML out of Claude (or have Claude Code write it directly to a file) and upload it to Stacktree. The dashboard, the API, or the MCP server all work. You get an unguessable URL that you can optionally lock by password or @company.com email domain. The viewer needs no Claude account and no Stacktree account to open it.   Do published Claude artifacts get indexed by Google? +  They can be. A published artifact is a public, password-less claude.ai page, and any public URL can end up indexed once it is posted or linked somewhere crawlable. Anthropic's help center offers no visibility control beyond unpublishing, which is permanent. A Stacktree link is unguessable, appears in no listing, and is served with crawler-blocking headers, so a private artifact stays out of the index.   Why not just use Claude's built-in publish button? +  For a public demo it is genuinely fine: one click, a stable link, and viewers need no account. You outgrow it the moment the page must not be public (client work, internal data), needs a password or expiry, should carry your domain rather than claude.ai, or was created on a Team or Enterprise plan, where public publishing is not available at all.   Can I keep the same URL when Claude revises the artifact? +  Yes. `update_site` replaces the content behind the same link, so a bookmark stays valid across every revision. Claude's published links also update in place, so this is parity, not a difference; the difference is what else the URL carries, such as the gate, the expiry, and your own domain.   What about images and inline assets? +  Inline (base64, data URIs) works out of the box. For sites with external assets, upload as a zip and Stacktree serves the bundle.   Does the viewer need a Stacktree account? +  No. The URL is the credential by default. If you add a password or email-domain gate, the viewer authenticates against that, and they never need a Stacktree account.   Are Claude artifacts safe to host publicly? +  Not by default. They often embed prompt context, API responses, or test data. Stacktree's private-by-default URL plus optional CSP defaults are designed for this risk surface.
Keep reading

## Related guides

   -  [ Move a Claude artifact to a private link that will not expire A published Claude artifact is a public link; unpublishing kills it for good. ](/workflows/rescue-claude-artifact)
-  [ The Claude.ai connector One URL in Settings → Connectors; Claude publishes private links from any chat. ](/claude-ai-connector)
-  [ See how it lands Reactions, opens, and an attention heatmap on the artifact you share. ](/page-engagement)
-  [ Share Claude Designs The same gap in Claude Design (beta): workspace or public artifact, nothing between. ](/share-claude-designs)
-  [ Private HTML hosting What makes a host actually private: unguessable URLs, gates, no public index. ](/private-html-hosting)
-  [ Publish from Claude Code Skip the copy/paste; agent publishes directly. ](/claude-code)
-  [ The MCP publish tool Every verb the server exposes, end to end. ](/mcp-publish-html)
-  [ Agent-loop hosting Why same-URL-replace is the right contract. ](/agent-loop-hosting)
-  [ Tiiny Host alternative How agent-shaped publishing differs from human-shaped. ](/tiiny-host-alternative)
-  [ Stacktree Skills Drop-in skills that teach Claude to publish and gate artifacts. ](/skills)
-  [ Pricing Passcodes on every plan; permanence and your own domain from $19. ](/pricing)
-  [ Stacktree vs ShareDuo ShareDuo is a fast way to paste a Claude artifact and get a shareable link with optional password, expiry. ](/compare/stacktree-vs-shareduo)
-  [ ShareDuo alternative ShareDuo hosts a Claude artifact on a noindex public link with password, expiry, and versioning. ](/shareduo-alternative)

References

## Sources and further reading

   -  [ Anthropic: Claude artifacts ↗ Anthropic's announcement of the built-in artifact feature this page contrasts with. ](https://www.anthropic.com/news/artifacts)
-  [ Claude Help Center: Publish and share artifacts ↗ The official source this page quotes: public links, permanent unpublishing, and the Team/Enterprise org-only restriction. ](https://support.claude.com/en/articles/9547008-publish-and-share-artifacts)
-  [ Anthropic: Claude Code overview ↗ The CLI that lets Claude write artifacts directly to disk for Stacktree to publish. ](https://docs.anthropic.com/en/docs/claude-code/overview)
-  [ MDN: Content-Security-Policy ↗ The header Stacktree applies to sandboxed artifact rendering. ](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy)
-  [ OWASP: secure HTML upload guidance ↗ Defensive baseline for any host accepting user-generated HTML. ](https://cheatsheetseries.owasp.org/cheatsheets/File_Upload_Cheat_Sheet.html)

##  Get your Claude artifact off claude.ai.

 Paste one URL into claude.ai's Settings → Connectors and Claude hands you private links from any chat; npx stacktree-install does the same for Claude Code. Free first publish; permanent, gated pages from $19 a month.

 [ Sign up free → ](https://app.stacktr.ee/?join=1&from=cta_share_claude_artifacts)   install https://api.stacktr.ee/mcp
Copy
         stacktr.ee  [Page video](/page-video) [Ask this page](/ask-this-page) [Client feedback](/client-feedback-loop) [Client spaces](/client-spaces) [Templates](/templates) [Use cases](/use-cases) [Integrations](/agents) [Alternatives](/alternatives) [About](/about) [Blog](/blog) [Changelog](/changelog) [Pricing](/pricing) [Security](/security) [FAQ](/faq) [Made with Stacktree](/made-with)  Building with AI agents? See the [developer docs &rarr;](/developers)

---
Full markdown summary of the Stacktree marketing surface: https://stacktr.ee/llms-full.txt
