Claude Code happily produces a polished report.html — a data dashboard, a prototype, a one-off analysis. Getting a stakeholder to look at it is the hard part. Attaching the file loses interactivity; screenshotting loses the detail; and Claude Code's own Artifacts sharing is limited to Team and Enterprise plans and stays locked inside your organization — you can't hand a public link to a client or PM.
pagepin closes that gap. It is an open-source static host built for exactly this: your agent deploys the page, you get a shareable link, reviewers pin comments right on the page, and the agent reads those comments back as structured JSON to fix and redeploy. Below are two ways to do it — the skill path (you talk to your agent in plain language) and the curl path (the underlying HTTP calls, if you'd rather script it).
In any shell-capable agent (Claude Code, Cursor, Codex CLI, Gemini CLI, Windsurf, OpenCode), install the skill globally:
No local skill directory? Paste this line into the agent's chat instead — it fetches the same instructions over HTTP:
The first deploy triggers a one-time browser login (OAuth 2.0 device flow) — no token is ever pasted into chat. On app.pagepin.ai (free during Beta) the account is ready in seconds; you can also self-host and point the skill at your own instance.
Just say it in plain language — the skill maps this to the deploy API and hands you a link:
Under the hood that is one multipart call. Here is the equivalent curl path — files is the file content, paths its in-site path; re-deploying the same slug appends a new atomic version:
A single HTML file is safest deployed as paths=index.html. The page is private by default — the next step makes it shareable.
A share link lets guests view the private page and pin comments without an account — the friendly way to send it over chat, IM, or email. By default the link never expires; revocation is the control.
In the skill path you'd simply say “give me a public share link for q1-report labelled for the client review.” Pass hours if you want a self-expiring link (server-capped, default cap 720h). Prefer a fully public page instead? PATCH /api/sites/q1-report with {"visibility":"public","public_hours":72} opens it for a bounded window that auto-reverts.
Anyone opening the share link sees the report with a lightweight comment overlay. They click an element and leave a thread, tagged as copy, style, question, or bug. Guests can comment and reply; resolving stays with you and other logged-in members. (You can turn guest commenting off per site if you want view-only sharing.)
This is the payoff. Open threads come back as structured JSON — selector, kind, resolved and stale flags, plus a deep link. Your agent reads them, edits the file by selector, redeploys the same slug, then replies and resolves:
On redeploy, pins re-anchor automatically; a thread raised against an older version is flagged stale rather than lost. For a question the agent can't judge, it relays it to you instead of resolving. The full endpoint list is on the Agent API page.
Claude Code's built-in Artifacts sharing is available on Team and Enterprise plans and keeps pages inside your organization — you can't send a public link to an outside client, and there's no pin-point comment channel a coding agent can read back. pagepin is the open, shareable version of that idea: a real URL you can hand to anyone, review comments that return as JSON, and Apache-2.0 source you can run yourself for data residency. Same convenience, none of the walls.