Create zero-retention agent-render.com links for markdown, code, diffs, CSV, or JSON artifacts. Use when an agent needs to share a nicely rendered artifact i...
Create browser links for artifacts rendered by agent-render.com.
Agent Render is:
agent-render.comSource repository:
https://github.com/baanish/agent-renderKeep the artifact content in the URL fragment, not in normal query params.
Use this fragment shape:
#agent-render=v1.<codec>.<payload>
Supported codecs:
plain: base64url-encoded JSON envelopelz: lz-string compressed JSON encoded for URL-safe transportPrefer:
plain when the payload is small and simplicity matterslz when it materially shortens the linkUse this JSON envelope:
{
"v": 1,
"codec": "plain",
"title": "Artifact bundle title",
"activeArtifactId": "artifact-1",
"artifacts": [
{
"id": "artifact-1",
"kind": "markdown",
"title": "Weekly report",
"filename": "weekly-report.md",
"content": "# Report"
}
]
}
{
"id": "report",
"kind": "markdown",
"title": "Weekly report",
"filename": "weekly-report.md",
"content": "# Report\n\n- Item one"
}
{
"id": "code",
"kind": "code",
"title": "viewer-shell.tsx",
"filename": "viewer-shell.tsx",
"language": "tsx",
"content": "export function ViewerShell() {\n return <main />;\n}"
}
Prefer a real unified git patch in patch.
{
"id": "patch",
"kind": "diff",
"title": "viewer-shell.tsx diff",
"filename": "viewer-shell.patch",
"patch": "diff --git a/viewer-shell.tsx b/viewer-shell.tsx\n--- a/viewer-shell.tsx\n+++ b/viewer-shell.tsx\n@@ -1 +1 @@\n-old\n+new\n",
"view": "split"
}
Use view: "unified" or view: "split".
A single patch string may contain multiple diff --git sections.
{
"id": "metrics",
"kind": "csv",
"title": "Metrics snapshot",
"filename": "metrics.csv",
"content": "name,value\nrequests,42"
}
{
"id": "manifest",
"kind": "json",
"title": "Manifest",
"filename": "manifest.json",
"content": "{\n \"ready\": true\n}"
}
Use multiple artifacts when the user should switch between related views.
Example cases:
Set activeArtifactId to the artifact that should open first.
Construct the final URL as:
https://agent-render.com/#agent-render=v1.<codec>.<payload>
For plain:
v1.plain.For lz:
lz-string URL-safe encodingv1.lz.Respect these limits:
If a link is getting too large:
plain to lzUse platform-specific link text only on surfaces that support it cleanly.
Prefer standard Markdown links:
[Short summary](https://agent-render.com/#agent-render=...)
Examples:
[Weekly report](https://agent-render.com/#agent-render=...)[Config diff](https://agent-render.com/#agent-render=...)[CSV snapshot](https://agent-render.com/#agent-render=...)Prefer HTML links because OpenClaw Telegram outbound text uses parse_mode: "HTML".
<a href="https://agent-render.com/#agent-render=...">Short summary</a>
Prefer Slack mrkdwn link syntax:
<https://agent-render.com/#agent-render=...|Short summary>
For WhatsApp, Signal, iMessage, Google Chat, IRC, LINE, and any other surface without reliable inline link-text formatting, do not force Markdown-style links.
Use:
If a provider later exposes a reliable native linked-text format, use that provider-specific syntax instead of generic Markdown.
When sharing a link:
patch for diffslz only when it clearly helps link sizeZIP package — ready to use