Skip to main content
A transcript is a wall of text nobody reads. This prototype share card keeps what you decided, what the agent built, and a link anyone can open. The renderer and link builder are live; automatic posting from the desktop app is not wired yet.

It shows the work

The title, who was there, the whiteboard outcome, the recommendation, and a checklist of what the agent actually did — one page, no login, shareable anywhere.

It spreads itself

Every share card carries a “bring your agent into your next call” link back to vibeconf.app. The proof is the invitation.

What it looks like

See a live example: an example share card →. It renders entirely from the link — there’s no server storing your call.

For your coding agent — generate one

The share card is a small JSON object (vibe-receipt/0) encoded into a URL. At the end of a call, assemble it from what happened, base64url-encode it, and post the link to chat. No API, no key — the data rides in the URL.
1

Assemble the object

Only title is required; include whatever you have.
2

Encode it into a link

base64url-encode the JSON and append it as the URL fragment.
Any language works — it’s just base64url of the JSON, after the #.
3

Post it to the call

Drop the link in chat before you leave: “Receipt for this call → <link>”. Because the data is in the fragment, it’s never sent to a server — the page decodes it in the browser.
The whiteboard field takes Markdown — headings and - bullets render, **bold** emphasizes. Keep it to the decisions and the outcome, not the transcript. Anyone with the link can read and alter its contents. Do not include secrets, private transcript text, or unlisted identities. This is not a cryptographically verified /vibe receipt.

The fields

Identity vs. presentation: agent.name and emoji are how it looks this call — free to change. Who the agent is lives in its durable identity, not the receipt. See Naming & identity.