display.dev · News
Product update

Publish first, sign up later: claimable URLs are live

Point an agent at display.dev, get a working link back, and decide afterwards whether to keep it. No account needed to start.

A short one from Carl and me. We shipped something that takes the most annoying step out of sharing an agent-generated page, which is the signup that happens before you have anything worth saving.

Today, display.dev can publish without an account. We call them claimable URLs. You (or your agent) send an HTML or Markdown file to display.dev and get a working, shareable link straight back. No login, no API key, no organisation to set up first. If the result is worth keeping, you sign in afterwards to make it yours. If it isn't, it expires on its own and you never had to create anything.

The friction was always sitting in the wrong place. You ask Claude for a report, it produces a clean HTML page, and the first thing the old flow wanted was an account. So we moved the account to the end, where the decision actually belongs.

What a claimable URL actually is

When you publish anonymously, display.dev hands back two links:

The preview stays live for 30 days. Visit the claim link, sign in with Google, Microsoft, or an email code, and the page becomes a real artifact in your account at your own <your-org>.dsp.so address. If you have never used display.dev before, the claim step lets you name a new organisation on the spot, so a first-time visitor goes from a generated file to an owned, gateable page in one sitting.

Worth knowing: the claim link works once. It is the key to the artifact, so treat it like one. Share the preview URL freely; keep the claim URL to yourself until you are ready to sign in.

How to set it up

Three ways in, same result. Pick whichever fits where you already are.

Point your agent at display.dev

This is how we expect most people to use it. Add the display.dev skill to your assistant in one line:

npx skills add display-dev/skill --skill display-dev

It works across Claude Code, Cursor, Codex, OpenCode, Hermes, and Pi. With no credentials set, the skill takes the anonymous path automatically, so a prompt like this just works:

# in Claude Code, with the display.dev skill installed
"Turn this analysis into an HTML page and publish it to
 display.dev so I can send it to the team."

The agent writes the file, publishes it, and replies with the preview and claim links for you to pass along. Already wired up the display.dev MCP server instead? It works the same way.

From the command line

Prefer to drive it yourself? If you have the CLI installed and no API key set, publish takes the anonymous path automatically:

npx @displaydev/cli publish ./report.html

You get back something like this:

# Published anonymously. Claim it to make it yours.
  Preview: https://public.dsp.so/Ab3kP9xQ
  Claim:   https://app.display.dev/claim?code=7f2a...
  Expires: 11 July 2026

The machine-readable JSON goes to stdout, so a script can grab the preview link directly:

npx @displaydev/cli publish ./report.html | jq -r .previewUrl

With curl

No CLI, no problem. One POST, no auth header:

curl -X POST https://api.display.dev/v1/public/artifacts \
  -F file=@report.html \
  -F name="Q3 e2e report"

A few things it is good for

Anywhere a link needs to exist before an account does:

The details

The boring but useful specifics:

What happens if you never claim it

So there is no mess to clean up. Keep what is worth keeping, ignore the rest.

Try it with a file you already have

One command, no account, a link in seconds.

Publish something →

Carl and I have been publishing this way daily while building it, and the small change in order, account last instead of account first, turned out to matter more than we expected. Give it a go and tell us where it should go next.