Brewpage

Brewpage publishes text, markdown, JSON, or files to brewpage.app and returns a public URL instantly. No sign-up, no configuration — just content in, link out.

brewpage.app

Free instant hosting for HTML pages, JSON documents, files, and KV stores. Visit brewpage.app to browse the public gallery.

/brewdoc:publish "Hello, world!"
/brewdoc:publish report.md
/brewdoc:publish '{"status": "ok", "count": 42}'
/brewdoc:publish screenshot.png --ttl 1

How it works

  1. Receive content

    The skill receives user input: inline text, a file path, or a JSON literal.

  2. Detect content type

    Content is classified as HTML (text/markdown), JSON (object or array), or File (local path). The type determines which API endpoint will be used.

  3. Ask namespace

    An interactive prompt asks for a namespace — a short slug that becomes part of the URL (e.g. brewpage.app/my-ns/abc123).

  4. Ask password

    Optionally set a password. Visitors will need to enter it before viewing the page. Leave empty for public access.

  5. Render content

    For text/markdown, the content is converted to HTML. JSON is formatted for display. Files are prepared for upload as-is.

  6. Call API

    The skill sends a request to the appropriate brewpage.app endpoint: POST /api/html, POST /api/json, or POST /api/files.

  7. Return URL

    The API responds with a public URL. The skill displays it immediately.

  8. Save owner token

    The owner token, namespace, page ID, and URL are appended to .claude/brewpage-history.md for future reference and deletion.

Content type detection

InputDetected typeEndpoint
Plain text or markdown stringHTMLPOST /api/html
Valid JSON object or arrayJSONPOST /api/json
Path to an existing local fileFilePOST /api/files

Namespace selection

The namespace is a short identifier that forms part of the published URL. It is prompted interactively during each publish.

  • Must contain only lowercase letters, numbers, and hyphens
  • Becomes the first path segment: brewpage.app/{namespace}/{id}
  • Reusing a namespace groups pages under the same prefix

Password protection

When prompted, you can set a password to restrict access. Visitors must enter the correct password before the page content is displayed. Leave the prompt empty for unrestricted public access.

Owner token and history

Every successful publish appends a row to .claude/brewpage-history.md:

| Namespace | ID | URL | Token | Created |
|-----------|-----|-----|-------|---------|
| my-ns | abc123 | https://brewpage.app/my-ns/abc123 | tok_... | 2026-03-31 |

To delete a published page, use the saved owner token:

curl -X DELETE "https://brewpage.app/api/{ns}/{id}" -H "X-Owner-Token: {token}"

TTL

Default time-to-live is 5 days. Override with —ttl N where N is the number of days. Example: /brewdoc:publish report.md —ttl 30 keeps the page for 30 days.