
Brewpage Publish
Ship a demo page, doc snippet, JSON payload, or small static site to a public brewpage.app URL from your agent without setting up hosting or accounts.
Install
npx skills add https://github.com/kochetkov-ma/claude-brewcode --skill brewpage-publishWhat is this skill?
- Publish plain text, markdown, JSON, individual files, or full multi-file static sites to brewpage.app
- Returns an instant public URL with no brewpage sign-up required
- Invoked as the /brewpage-publish slash command after installing via npx skills add kochetkov-ma/claude-brewcode
- Fits quick shares of reports, landing copy, API samples, and doc bundles from Claude Code workflows
Adoption & trust: 563 installs on skills.sh; 27 GitHub stars; 1/3 security scanners passed (skills.sh audits).
Recommended Skills
Journey fit
The skill’s outcome is a live, shareable URL—core launch work for distribution, not local authoring or production ops. distribution is the canonical shelf because brewpage-publish exists to put builder output on the public web instantly for stakeholders, testers, or search/social links.
Common Questions / FAQ
Is Brewpage Publish safe to install?
skills.sh reports 1 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Brewpage Publish
MIT License Copyright (c) 2025-2026 Maxim Kochetkov (kochetkov-ma) https://github.com/kochetkov-ma/claude-brewcode Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # Brewpage Publish Publish text, markdown, JSON, files, or whole multi-file sites to [brewpage.app](https://brewpage.app) — get a public URL instantly. No sign-up. ## Quick Start 1. Install: ```bash npx skills add kochetkov-ma/claude-brewcode ``` 2. Use via slash command: ``` /brewpage-publish "Hello, world!" /brewpage-publish report.md /brewpage-publish '{"status": "ok"}' /brewpage-publish screenshot.png --ttl 1 /brewpage-publish ./my-site --entry index.html /brewpage-publish site.zip ``` Or via natural language: ``` Publish this to brewpage Upload report.md to brewpage.app Deploy this directory as a site ``` Claude detects the content type, asks for a namespace and password interactively, calls the brewpage.app API, and returns a public URL. The owner token is saved to `.claude/brewpage-history.md` for later deletion. ## What It Does 1. **Detects content type** — directory/ZIP becomes a multi-file site, single file becomes a file upload, objects/arrays become JSON, everything else becomes HTML (markdown rendered) 2. **Asks namespace** — interactive prompt for a short, human-readable namespace (URL slug) 3. **Asks password** — optional password protection (hides the page from the gallery) 4. **Calls API** — sends content to brewpage.app 5. **Returns URL** — public link ready to share 6. **Saves token** — owner token written to `.claude/brewpage-history.md` ## API Coverage | Content | Type | Endpoint | |---------|------|----------| | Text / markdown | HTML | `POST /api/html?format=markdown` | | JSON object/array | JSON | `POST /api/json` | | Local file | File | `POST /api/files` | | Directory | Site | `POST /api/sites` (zipped on the fly) | | `.zip` archive | Site | `POST /api/sites` | ## Sites `POST /api/sites` accepts **only a `.zip` archive** — there is no raw-folder upload. - **Directory (primary):** point at a **built** static directory; the skill auto-zips it and uploads. Archive sealing keeps relative paths intact. - **Pre-built `.zip` (alternative):** uploaded as-is. The auto-zip **excludes** `.git/`, `.env`/`.env.*`, `node_modules/`, `.DS_Store`, `Thumbs.db`, `.idea/`, `.vscode/`, `.cache/`, `*.map` and `*.log` — only real built assets ship; secrets and VCS data never leak into the public archive. **Built-static guard:** publish build output, not sources. No `.html` in the directory → the skill fails and tells you to build first. A source tree (`package.json` + `src/`, no top-level `.html`) → the skill asks you to point at the build output (`dist/`, `build/`, `out/`, `_site/`, `public/`). Entry file: `--entry` override > `index.html` > first `.html` alphabetically. **No trailing slash.** The API returns `https://brewpage.app/public/<id>` without a trailing `/`. Appending `/` routes to brewpage.app's landing page and breaks the lin