Skip to content
Back to anew

Card snapshot

setup.anew.page · 2026-08-26 14:07:08 UTC · 8ce89f3592b2ec28289caf60b7b8abbb3eccf287836ca5423575b6e4452c93cc

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "anew",
  "description": "Encode a self-contained HTML page into a shareable anew.page URL, or recover the exact HTML from an existing URL.",
  "version": "1.0.0",
  "supportedInterfaces": [
    {
      "url": "https://anew.page/a2a/v1",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "anew",
    "url": "https://anew.page"
  },
  "documentationUrl": "https://anew.page/llms.txt",
  "iconUrl": "https://anew.page/anew.png",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "defaultInputModes": [
    "text/plain",
    "text/html"
  ],
  "defaultOutputModes": [
    "text/plain"
  ],
  "skills": [
    {
      "id": "write",
      "name": "Write a page",
      "description": "Encode a self-contained HTML document (or fragment, or plain text) into an anew.page URL and return that URL. Each encoding path is deterministic: the same input through the same path always produces the same URL. Different paths use different Brotli encoders, though, so the same HTML may mint different \u2014 equally valid \u2014 URLs; compare pages by their decoded HTML, never by slug. Inline all CSS, JS, and images (data: URIs, inline SVG, CSS gradients, or emoji) \u2014 the page should render alone forever, and each external reference gambles it on someone else's host staying up. One accepted exception: a webfont is far too large to inline, so a font may load from a durable CDN with a system-stack fallback; do not fight a user who asks for one. The HTML must be \u2264 160000 UTF-8 bytes and the encoded URL must be \u2264 4000 bytes. Brotli slugs (the endpoint, or a local brotli mint) put a typical page in a few hundred URL bytes, and the endpoint returns an actionable over-limit error (code url_over_budget or content_too_large); raw base64 fits only ~2900 HTML bytes \u2014 know which budget you are drafting to, and never cut page content to fit before checking the brotli path. Returns the URL as plain text \u2014 return it to the user verbatim. To revise an existing anew page, its URL is its source: read it, edit that HTML, write it again. The new URL is a separate page and the original keeps working. Read the existing HTML back first by sending its URL as a `url` DataPart, then send the edited document here.",
      "tags": [
        "html",
        "url",
        "encode",
        "share"
      ],
      "examples": [
        "Make a shareable link for <h1>a new internet starts with anew.page</h1>",
        "Turn this landing-page HTML into an anew.page URL"
      ],
      "inputModes": [
        "text/plain",
        "text/html"
      ],
      "outputModes": [
        "text/plain"
      ]
    },
    {
      "id": "read",
      "name": "Read a page",
      "description": "Pass an anew.page URL, get back the HTML document encoded in it, plus its canonical URL and byte size. To revise an existing anew page, its URL is its source: read it, edit that HTML, write it again. The new URL is a separate page and the original keeps working. Read returns the author's exact bytes \u2014 no anew-injected tags, no proxied image srcs \u2014 so it re-encodes byte-for-byte. Never re-author from a rendered page, a scraped DOM, or a screenshot: each loses the author's markup, and none is faster than reading the slug. Decoding is local and exact, so any anew URL reads \u2014 the page needs no prior visit and no fetch. Selected when the message carries a `url` DataPart and no `html` DataPart, or when its whole text is one bare anew.page URL; any other message writes.",
      "tags": [
        "html",
        "url",
        "decode",
        "source"
      ],
      "examples": [
        "https://anew.page/SLUG",
        "{\"url\": \"https://anew.page/SLUG\"}"
      ],
      "inputModes": [
        "text/plain"
      ],
      "outputModes": [
        "text/plain"
      ]
    }
  ]
}