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
- Receive content
The skill receives user input: inline text, a file path, or a JSON literal.
- 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.
- 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). - Ask password
Optionally set a password. Visitors will need to enter it before viewing the page. Leave empty for public access.
- Render content
For text/markdown, the content is converted to HTML. JSON is formatted for display. Files are prepared for upload as-is.
- Call API
The skill sends a request to the appropriate brewpage.app endpoint:
POST /api/html,POST /api/json, orPOST /api/files. - Return URL
The API responds with a public URL. The skill displays it immediately.
- Save owner token
The owner token, namespace, page ID, and URL are appended to
.claude/brewpage-history.mdfor future reference and deletion.
Content type detection
| Input | Detected type | Endpoint |
|---|---|---|
| Plain text or markdown string | HTML | POST /api/html |
| Valid JSON object or array | JSON | POST /api/json |
| Path to an existing local file | File | POST /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.