Docs / Artifacts/ Sharing Artifacts

Sharing Artifacts

Share CRHQ artifacts publicly via stable links — with rich link previews, in-place updates, password protection, and lifetime visit tracking.

HTML, React, and image artifacts can be shared publicly via a unique URL. This is useful for sharing dashboards, reports, visualizations, and generated content with people who don't have CRHQ access.

  1. Open the artifact in the panel
  2. Click the Share button in the toolbar
  3. A unique public URL is generated and copied
  4. Send the link

Share URL Format

Shared artifacts are accessible at:

https://your-instance.crhq.ai/artifact/{shareHash}

The shared page renders the artifact standalone — no CRHQ chrome, just the content.

Stable URLs across edits

The same artifact always uses the same share URL — even after the agent edits it, even after you restore an older version, even after multiple updates over the course of a session. Re-sharing the same artifact is idempotent: it returns the existing URL rather than minting a new one.

This means you can paste a share link into Slack on Monday, the agent updates the artifact on Tuesday, and the same link continues to work and reflects the latest content.

When you paste a share URL into WhatsApp, Slack, iMessage, Discord, Twitter, LinkedIn, or any other platform that unfurls links, the preview now shows the artifact's real title and a plain-text snippet of the content — populated server-side from the artifact data. No more "Shared Artifact" placeholder.

Description extraction is type-aware:

TypeDescription source
HTMLPlain text after stripping tags + <style> + <script> (~180 chars, cut at word boundary)
MarkdownFirst non-empty paragraph with markdown markers stripped
React appString literals pulled from the JSX, joined with ·
Image"Shared image — <title>"

For password-protected shares, only the generic title is exposed in the link preview — never the artifact's real title or content (until the password is entered).

Password Protection

Add a password to protect shared artifacts:

  1. Toggle Password Protection when creating or editing the share
  2. Set a password
  3. Viewers must enter the password before the content is loaded

Until they enter the correct password, the page returns no artifact data — just the generic share landing.

Lifetime visit tracking

Each share displays a lifetime visit count that persists across revoke + recreate cycles. If you revoke a share and create a new one for the same artifact later, the visit count picks up where it left off — it's an aggregate across all share rows ever attached to that artifact.

The Share modal also shows the timestamp of the last visit so you know when the link was last opened.

Live updates for active viewers

When the agent edits an artifact while someone else has the share URL open, the public viewer auto-refreshes. There's also a manual Refresh now button visible on the public page in case the auto-poll is delayed.

Revoking a share

You can revoke a share at any time from the Share modal. Revoking:

  • Soft-archives the share row (used for the lifetime visit aggregate above)
  • Returns 410 Gone to anyone who tries to load the URL afterward
  • Re-sharing the same artifact creates a fresh share with a new URL — but the lifetime count still includes the old one

What Can Be Shared

TypeShareable?
HTML
React app
Image
Markdown / documentnot yet (use session sharing instead)
Code / file contentnot yet
Diffnot yet

Use Cases

  • Client reporting — Share a weekly analytics dashboard whose URL stays the same week over week as the agent updates it
  • Team updates — Share an interactive React status board
  • Presentations — Share a generated dashboard from a Slack channel; the rich preview tells colleagues what's inside before they click
  • Prototypes — Share a UI mockup; iterate; the same link reflects the latest revision