Publishing dashboard
- Published
- 104 +18%
- Views
- 812 +18%
- Agents
- 5
Open Artifacts is free and open source. It keeps the pages, docs, code and PDFs from any AI agent (Claude Code, Codex, Cursor, OpenCode) on your own Cloudflare account, so usage follows your Workers plan.
Tell your agent:
install open-artifacts.com/llms.txt

Ask any AI agent to publish. It calls publish_artifact and hands you a private link to the real thing, ready to click and use. Try each example.
Claude Code
publish this as an artifact
publish_artifact ✓
Address: artifacts.example.com/a/7Hq3kP
Six artifacts that agents published, and every one works. Use them here, or open one to see its link, its versions and who it's shared with.
What slowed us down this sprint?
17 votes · saved for the team
Status: In review · Owner: Platform
Keep build logs for 30 days instead of forever. Older logs move to cold storage, and a pinned build keeps its logs for good.
| Option | Monthly cost | Reads |
|---|---|---|
| Keep everything | $1,840 | Fast |
| 30 days, then cold | $410 | Slow after 30d |
| 30 days, then delete | $290 | Gone |
Recommendation: 30 days, then cold storage. Pinning stays free.
pin_build flag.4 of 7 done · ships Thursday
Saved for the team · Sam checked one 4m ago
Python · 23 lines
"""Backfill artifact sizes for rows made before v0.9."""import osfrom db import connectBATCH = 500def backfill(dry_run: bool = False) -> int: db = connect(os.environ["D1_URL"]) fixed = 0 while rows := db.query( "SELECT id, r2_key FROM artifacts WHERE size IS NULL LIMIT ?", BATCH ): for row in rows: size = db.r2.head(row.r2_key).size if not dry_run: db.run("UPDATE artifacts SET size = ? WHERE id = ?", size, row.id) fixed += 1 return fixedif __name__ == "__main__": print(f"fixed {backfill()} rows")Everyone who opens a live page works on the same data. When Sam checks an item, Ana's window shows it right away, with Sam's name on it. Try it in either window.
artifacts.example.com/a/Tq7mW4Signed in as Ana
Offsite prep 2 of 5 done
artifacts.example.com/a/Tq7mW4Signed in as Sam
Offsite prep 2 of 5 done
Your agent reads llms.txt, checks the prerequisites, clones the latest release, and runs pnpm install.
One step needs you: npx wrangler login. Setup then creates D1, R2 and KV and the Access sign-in app, deploys to both domains, and adds the MCP server to your agent.
Your agent publishes a Welcome artifact and gives you the link. Later, ask it to write up the Q4 data migration plan and share it with a teammate.
Versions, sharing and access control, in one dashboard.
Whatever any AI agent publishes lands in your Library, labeled with the agent that made it. Search across all of it.
Each publish is a new version that records who and which agent made it. Open an older one and restore it in one click.
New artifacts are visible only to you. Share with people by email as viewer or editor, with your team, or by a public link that search engines skip.
It runs on your own account and domain, behind Cloudflare Access sign-in. Workers Free fits one person; Workers Paid fits a team.
Interactive pages, rendered docs, highlighted code and PDFs, viewed in a web dashboard with search.
Each publish is a new version that records which agent made it. View or restore any of them.
Share with people by email as viewer or editor, or make a public link that search engines don't index.
An HTML artifact can save and read shared data, so polls, trackers and checklists just work.
Claude Code, Codex CLI, Cursor, OpenCode, ChatGPT, or anything else that speaks MCP.
MIT-licensed, on your own Cloudflare account and domain. Nothing passes through us.
Open Artifacts runs on either. Pick the one that fits who uses it.
For you
$0
Publish, version and share everything your agents make. Sized for one person.
For your team
$5 a month
Invite emails for teammates, and more CPU for large publishes. Sized for a team.


Agent-written HTML runs in a sandboxed frame on a separate, cookieless origin. It can't read your session, call the API as you, or reach the dashboard.
Read the code, file an issue, or run it yourself.
View on GitHub