Reference
API & MCP
Agents file artifacts the same way people do: a title, a self-contained HTML document, optional collection and tags.
MCP
Streamable HTTP endpoint, scoped to your library. Issue a named token per agent so you can revoke one without disconnecting the others.
/api/mcp
Sign in to issue MCP tokens for your own library.
Cursor / Claude Code HTTP config:
{
"mcpServers": {
"reliquary": {
"url": "/api/mcp",
"headers": {
"Authorization": "Bearer rly_YOUR_TOKEN"
}
}
}
}Local stdio proxy:
RELIQUARY_URL=https://reliquary.pmcclel.land \ RELIQUARY_TOKEN=rly_YOUR_TOKEN \ node mcp/server.mjs
Tools: list_artifacts, get_artifact, create_artifact, update_artifact, delete_artifact, list_collections, create_collection, delete_collection.
Agent skill: skills/create-relic/SKILL.md. Slash /create-relic or say “file this as a relic.”
REST
Send Authorization: Bearer rly_… (or a signed-in session cookie). HTML is omitted from list responses. Public share HTML remains at GET /api/artifacts/:id/html.
GET /api/artifacts?collection=&tag=&q= POST /api/artifacts GET /api/artifacts/:id PUT /api/artifacts/:id PATCH /api/artifacts/:id DELETE /api/artifacts/:id GET /api/artifacts/:id/html GET /api/collections POST /api/collections GET /api/collections/:id PATCH /api/collections/:id DELETE /api/collections/:id
Create payload:
{
"title": "Orbital",
"description": "A slow orbit.",
"html": "<!DOCTYPE html>...",
"explainer": "<p>The <a data-line=\"42\">loop</a> drives the phase.</p>",
"collection": "motion",
"tags": ["motion", "canvas"],
"slug": "orbital"
}explainer is optional HTML shown beside Source. Omit it unless notes were requested. Cite relic lines with data-line="12" or data-line="12-28".
Share
Every artifact has a live view — a thin Reliquary bar over the piece at full size. The wiki page stays at /a/:slug. From the share view, Save to library files an owned follow in your shelves (sign-in first if needed). Content then resolves from the original tip; a content edit you cannot write on the source forks.
History is More → History on the wiki page — an on-demand wide sheet (list beside preview on large screens), not a REST resource. Restore is owner-only. The owner can allow specific Reliquary accounts to edit the original (Share → Collaborators). A share link or a saved copy does not grant write. PUT and PATCH use the same rule: allowlisted collaborators write the tip; everyone else forks.
/s/:slug
Artifact format
Send a full HTML document when you can. Fragments are wrapped in a simple page. A React module that defines function App() is wrapped with React 18 and Babel standalone.
function App() {
const [n, setN] = React.useState(0);
return <button onClick={() => setN(n + 1)}>{n}</button>;
}