Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add kochetkov-ma/claude-brewcode --skill publishgit clone --depth 1 https://github.com/kochetkov-ma/claude-brewcodeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kochetkov-ma/claude-brewcode/publish)<a href="https://agentmods.dev/skills/kochetkov-ma/claude-brewcode/publish"><img src="https://agentmods.dev/badge/skills/kochetkov-ma/claude-brewcode/publish/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kochetkov-ma/claude-brewcode/publish"><img src="https://agentmods.dev/badge/skills/kochetkov-ma/claude-brewcode/publish.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00061 | $0.04450 |
| Opus 5.5 | $0.00024 | $0.01780 |
| Sonnet 5.5 | $0.00012 | $0.00890 |
| Haiku 4.5 | $0.00006 | $0.00445 |
Grade A, and why
publish scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
path: the script moves the bytes via private header files (never shell literals or curl argv) and rejects How it starts
The opening of the file, as written. The whole thing — 264 lines — stays where its author put it; the contents beside it link to each section on GitHub.
brewdoc:publish
Publishes HTML/Markdown, JSON, files and multi-file sites to brewpage.app (free, no sign-up) and returns the URL.
Prompt contract
$ARGUMENTS is one free-form RU/EN prompt; the content (text, file/dir/zip path) and the flags --ttl N,
--entry <filename>, --delivery-mode path|subdomain may sit anywhere in it.
- Mode: the content type of what is published — detected in Step 2, scored by the keyword table there.
- Scope: a sentence naming a file/dir resolves to that file/dir (e.g. "publish my report.md" ->
content_arg = report.md, resolved against cwd). Never guess, never silently fall back to an empty HTML page. Fired by Claude mid-task (Skilltool), itsargsis the prompt: the path, or the exact text to publish, never a summary of it. - Ask: a sentence with no path and no inline text/JSON has nothing to publish -> ONE
AskUserQuestionasking what to publish. Namespace and password -> the two dedicatedAskUserQuestioncalls in Steps 4-5; nothing else asks. Headless or unanswered -> the Step 4-5 defaults; nothing blocks.
Print once, before the first tool action, including filesystem probes and questions (labels literal,
values in the conversation language). Use unresolved for type/namespace/password until determined;
report resolved stats in Step 3.
PLAN — brewdoc:publish
INPUT: <arguments verbatim, or "(empty)">
MODE: <detected type — SITE|MARKDOWN|FILE|JSON|HTML> — <matched extension/shape | prose-resolved path>
SCOPE: namespace=<ns>; ttl=<days>; password=<set|none>; delivery-mode=<server-default|path|subdomain>
DO: <2-5 imperative bullets>
RESULT: <published URL>
Running commands
Every shell step is ONE command of the exact shape in the fences below: the single allowed-tools
rule pre-approves exactly that shape, so the skill never prompts, headless included.
- Fill each
'{…}'slot with the raw value and write every'inside it as'\''; nothing else is escaped. Never wrap a value in double quotes. An empty slot stays''(= omitted). - Never quote the script path, prefix or chain the command (
cd,VAR=…,;,&&,|,$(…)): any other shape falls back to the normal permission prompt. - Keep every command under 8,000 characters (longer ones are always refused); longer text goes
through
stage(Step 6). - The script prints one decisive line:
OK {url}orOK {url} | Files: N(then anyNOTICE: …lines: what the server skipped or adjusted),CONFIRM: …(exit 2, nothing uploaded) orFAILED: …(server reasonHTTP <status>: <message>). It removes its private run directory on every exit.
What ships with it
13 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- LICENSE 1.1 KB
- README.md 3.1 KB
- scripts/brewpage-lib.sh 11 KB runs code
- scripts/brewpage-run.sh 8.8 KB runs code
- scripts/publish.mjs 9.9 KB runs code
- tests/run.sh 2.1 KB runs code
- tests/suite-archive.mjs 18 KB runs code
- tests/suite-inspect.mjs 8.2 KB runs code
- tests/suite-isolation.mjs 29 KB runs code
- tests/suite-skill.mjs 21 KB runs code
- tests/suite-standalone-archive.mjs 14 KB runs code
- tests/suite-standalone.mjs 22 KB runs code
- tests/suite-zsh.mjs 8.5 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +2 lines 92a094f087dc
- 3d ago Changed · +23 lines 6d461e3bd0c5
- 9d ago Changed · +1 lines 04a921b382d0
- 12d ago Changed · -46 lines · +29 tokens per session fef2e11750dd
- 13d ago Changed · -28 lines 7e1b9876feff
- 14d ago Changed · +3 lines 1146e7abb7b1
- 20d ago Changed · +9 lines d863d9f77ea0
- 25d ago Changed · +11 lines ae60d89ae33c
- 1mo ago First seen · 289 lines · 32 tokens per session scan A 97ed0ac2875e
publish is a skill published in the GitHub repository kochetkov-ma/claude-brewcode (38 stars, last pushed today), licensed MIT. It adds 61 tokens to every session and 4,450 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
doc-digest
Turn a long document, PDF, transcript, spreadsheet or log into a compact working digest the conversation can continue from. Use when the user shares or pastes something long (several pages or more) and wants to discuss, analyze, compare or use it over more than one message, or asks to summarize a document so they can…
fresh-start
Continue in a new chat without losing anything — writes a compact handoff to paste into a fresh conversation. Use whenever the user wants to move to a new chat or conversation, hits usage limits, says replies got slow or Claude forgets earlier details, or the conversation has grown long.
token-check
Estimate how many tokens a pasted text, an attached file or the conversation so far takes, what it means for the context window and usage limits, and how to cut it. Use when the user asks how big something is in tokens, why they keep hitting limits, or whether a file is too large to send.
sharpen-prompt
Rewrite a vague request into a precise prompt — goal, context, scope, constraints, what done looks like, output format. Use when the user asks to improve, rewrite, sharpen or check a prompt.
skill-creator-plus
Create, test, evaluate, and improve Claude skills — and answer questions about how skills work. Use for "create a skill", "make a skill for", "write a SKILL.md", "turn this into a skill", "run evals", "test/benchmark my skill", "optimize my skill description", "improve triggering", "A/B test my skill", "blind…
deep-research
Deep Research (/deep-research or /dr) — exhaustive, evidence-based investigation of any topic. Use when the user invokes /deep-research, /dr, asks for deep research, says 'research this thoroughly', wants expert-level analysis on any subject (technical, business, scientific, regulatory, financial, medical, legal…