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 agentmods add skills/generous-corp/pulp/pulp-web-demonpx skills add Generous-Corp/pulp --skill pulp-web-demogit clone --depth 1 https://github.com/Generous-Corp/pulpWrote 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/generous-corp/pulp/pulp-web-demo)<a href="https://agentmods.dev/skills/generous-corp/pulp/pulp-web-demo"><img src="https://agentmods.dev/badge/skills/generous-corp/pulp/pulp-web-demo.svg" alt="Measured on agentmods" 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 | $0.00189 | $0.03778 |
| Opus 5 | $0.00095 | $0.01889 |
| Sonnet 5 | $0.00038 | $0.00756 |
| Haiku 4.5 | $0.00019 | $0.00378 |
Grade A, and why
pulp-web-demo 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 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.
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 — 226 lines — stays where its author put it; the contents beside it link to each section on GitHub.
pulp-web-demo — generative web-demo skill
The way Pulp plugin web demos are built so the two web ABIs behave identically: WAM (Emscripten → AudioWorklet, single-thread, plain static hosting) and WCLAP (threaded CLAP-compiled-to-wasm hosted by a worklet-resident CLAP host, needs cross-origin isolation). Apply by default when creating/updating a demo, adding a plugin to a gallery, or touching hosting.
The one rule
Both ABIs mount the SAME shared player. Every UX behavior — no-autoplay overlay,
iOS/mobile touch hygiene, keyboard/polyphony, scope/meter/safety-limiter, PLST state
round-trip, token theming — lives in @danielraffel/web-player (npm, pinned). The
generated pages import that pinned player; they never vendor a copy (vendoring is the
historical drift hazard). Fix any UX behavior once, in the player; both ABIs inherit it.
How it works
Customization is declarative data + at most two executable seams. The smarts are in the player; this skill is only the wiring + publish pipeline. Everything runs from the skill dir:
- Config —
<repo-root>/.pulp-web-demo/config.json, validated against the bundledconfig.schema.json(schemaVersion: 1, unknown keys rejected). Declares: the pinned player, theme token/font hrefs, per-ABI deploy profiles, the plugin catalog, gallery nav/cross-links, and OG/metadata policy. Seeexamples/example.config.jsonandREADME.md. - Generate —
node generate.mjs --config <cfg> --out <siteDir>. Deterministic (no network, no clock/random): identical config ⇒ byte-identical output. Stamps versioned templates into a WAM+WCLAP site and writes a.pulp-web-demo.manifest.jsonof owned files (with hashes) for upgrade safety. Use--checkfor a dry run. - Validate (blocking) —
node validate.mjs --config <cfg> --site <siteDir> --check-isolation --check-metadata --check-ownership. Fails CI on: schema/invariant violations, cross-origin-isolation not covering the deployed base path, missing OG tags, or locally-modified owned files.
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.
- config.schema.json 11 KB
- examples/example.config.json 1.3 KB
- generate.mjs 11 KB runs code
- README.md 5.0 KB
- templates/ci/pages.yml.tmpl 1.4 KB
- templates/gallery.index.html.tmpl 1.3 KB
- templates/hosting/cloudflare/_headers.tmpl 693 B
- templates/hosting/cloudflare/wrangler.toml.tmpl 361 B
- templates/hosting/coi/coi-register.snippet.html 391 B
- templates/hosting/coi/coi-serviceworker.js 3.9 KB runs code
- templates/wam.index.html.tmpl 1.6 KB
- templates/wclap.index.html.tmpl 2.0 KB
- validate.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 First seen · 226 lines · 189 tokens per session scan A 778075de7424
pulp-web-demo is a skill published in the GitHub repository Generous-Corp/pulp (16 stars, last pushed today), licensed MIT. It adds 189 tokens to every session and 3,778 once invoked, about $0.0009 per session on Opus 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-04.
Other skills, from other repositories
figma-to-webui
Recreate Figma design frames as production-ready Chromium WebUI code following Chrome's Lit-element architecture and styling guidelines. Use when asked to create WebUI code from a Figma frame URL.
generate-token-map
Maps all Figma design tokens from figma-variables.md to their equivalent C++ (Views) identifiers, CSS (WebUI) variables, and Clank (Android) resource attributes/macros/methods in Chromium, and saves the formatted mapping table to the assets directory of the Chrome Design System project. Use this skill when asked to…
agent-canvas
Interactive element picker for web pages. Opens a browser with click-to-select UI overlay. Use when you need to let users visually select DOM elements, identify element selectors, or get detailed element information interactively. Triggers on "select an element", "pick element", "let me choose", "which element", or…
clone-website
Reverse-engineer and clone a website in one shot — extracts assets, CSS, and content section-by-section and proactively dispatches parallel builder agents in worktrees as it goes. Use this whenever the user wants to clone, replicate, rebuild, reverse-engineer, or copy any website. Also triggers on phrases like "make a…
responsiveness-check
Test website responsiveness across viewport widths using browser automation. Resizes a single session through breakpoints, screenshots each width, and detects layout transitions (column changes, nav switches, overflow). Produces comparison reports showing exactly where layouts break. Trigger with 'responsiveness…
html-craft
Create and verify single-file interactive HTML pages in the sandbox: build or edit the file, then prove the result with headless-Chromium screenshots, in-page DOM/geometry assertions, and JS-error capture (Playwright). No GPU, no service, no network. Use when the user wants an HTML page, animation, demo, dashboard, or…