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 receptron/mulmoterminal --skill actions-cloudflaregit clone --depth 1 https://github.com/receptron/mulmoterminalWrote 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/receptron/mulmoterminal/actions-cloudflare)<a href="https://agentmods.dev/skills/receptron/mulmoterminal/actions-cloudflare"><img src="https://agentmods.dev/badge/skills/receptron/mulmoterminal/actions-cloudflare/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/receptron/mulmoterminal/actions-cloudflare"><img src="https://agentmods.dev/badge/skills/receptron/mulmoterminal/actions-cloudflare.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.00034 | $0.01090 |
| Opus 5.5 | $0.00014 | $0.00436 |
| Sonnet 5.5 | $0.00007 | $0.00218 |
| Haiku 4.5 | $0.00003 | $0.00109 |
Grade A, and why
blueprint-from-collection-actions scanned grade A with 0 findings 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 19d ago.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 55 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Actions and ingests, as features
Read .blueprint/actions.json (written with the spec, and agreed when the spec was approved). If it does not exist, the
source had no actions or ingests: stop. Each entry names an action (books.actions.tidy) or an ingest (books.ingest),
what it was (kind) and what was decided (decision). The original instructions are in
.blueprint/source/collections/<slug>/templates/.
For every feature, build it as below, unless an earlier step already built it because a must-have needed it: then
check it against its entry and give it its test here instead of building it a second time.
- mutate — an API operation in the Worker and a button on the record's screen. Its
requireis checked at the API's entry; itssetis the change it makes; itsparamsare the inputs the button asks for. - chat / agent — read the template: it says what the agent was asked to do. Build that as the app's own logic.
Where a step genuinely needs a language model (summarising, classifying, drafting text), call the Claude API from the
Worker (
@anthropic-ai/sdkruns there), with the model id in avarsentry ofwrangler.jsoncand the key as the secretANTHROPIC_API_KEY: locally in.dev.vars, in production set by the person withyarn wrangler secret put ANTHROPIC_API_KEY. Before anything goes in.dev.vars, make sure.gitignorehas a line.dev.vars— add it if not; the check fails otherwise. Never write the key's value yourself: tell the person, in the README, where to put their own key. Everything that does not need a model stays plain code. The screen shows the result and any failure in words. - ingest (rss / atom / http-json) — a job that fetches the source, maps each item as the ingest's
mapsays, and inserts or updates records by theidFromit names, never duplicating. Run it from a Cron Trigger ("triggers": { "crons": [...] }inwrangler.jsonc, and ascheduledhandler in the Worker) on the schedule the ingest declares; say in the README how to run it once by hand (yarn wrangler dev --test-scheduled, then open/__scheduled). An ingest of kindagentis built like an agent action.
Tests in test/actions.test.ts, one per feature, each with the entry's name in the title of its it(…) / test(…)
(it("books.actions.tidy: summarises", …)) — with it / test imported from vitest in that file (import { it } from "vitest"); the check reads titles only from
calls to those imports, so a global it, a helper of the same name, a comment or a title built at run time does not count, and neither does a describe(…) name (it("tidy") inside
describe("books.actions") is not titled books.actions.tidy: write the whole name in every test's own title):
walk the real flow through the Worker on the test D1 and read back what changed. Never call the network in a test: a
model call goes through a client the test replaces with a stand-in, and an ingest job takes the fetch it uses as an
argument, so the test hands it a fixture instead. The tests must pass with no API key set.
For every manual: a section in README.md whose heading names the entry (## books.actions.tidy) and which says,
step by step, what a person does instead. For every drop: nothing to build; the spec already says why.
Done when the check passes: .blueprint/actions.json matches the source, every feature has a test titled with its
name, every manual has a README heading naming it, a .dev.vars (if any) is ignored, and yarn build and
yarn test succeed.
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.
- 19d ago Changed · +2 lines 9f9ee8d2e1f8
- 20d ago Changed · +1 lines 04029323c5f3
- 21d ago First seen · 52 lines · 34 tokens per session scan A 420675486bad
blueprint-from-collection-actions is a skill published in the GitHub repository receptron/mulmoterminal (243 stars, last pushed today), licensed MIT. It adds 34 tokens to every session and 1,090 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-30.
Other skills, from other repositories
creo-ai-generation
LLM generation pipeline expertise covering prompt engineering, structured output validation, queue-based async processing, SSE real-time progress, and multi-mode generation strategies. Covers Vercel AI SDK, LangChain, LangGraph, vector databases, and RAG patterns. Trigger keywords: AI generation, LLM pipeline, prompt…
gemini-api-dev
Use this skill when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, video generation, speech generation (TTS), voice design, voice replication, streaming responses, background research tasks, function calling, structured output, or migrating from…
cloudflare-workers-ai
Cloudflare Workers AI for serverless GPU inference. Use for LLMs, text/image generation, embeddings, or encountering AIERROR, rate limits, token exceeded errors.
openrouter-ai-models-guide
Guide to OpenRouter — the unified API for 200+ AI models from OpenAI, Anthropic, Google, Meta, Mistral, and more. Covers model selection, pricing, routing strategies, fallback chains, and integration with SperaxOS for optimal model usage per task.
anthropic-claude-development
Expert guidance for Anthropic Claude API development including Messages API, tool use, prompt engineering, and building production applications with Claude models.
loom-prompt-engineering
Designs and optimizes LLM prompts: system prompts, agent signals, few-shot examples. Not for: a shell/CLI prompt.