Borrowing it
Nothing to install: this file belongs to pandulapeter/campfire. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/pandulapeter/campfire/master/.claude/skills/website-screenshots/SKILL.mdgit clone --depth 1 https://github.com/pandulapeter/campfireWrote 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/pandulapeter/campfire/website-screenshots)<a href="https://agentmods.dev/skills/pandulapeter/campfire/website-screenshots"><img src="https://agentmods.dev/badge/skills/pandulapeter/campfire/website-screenshots/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/pandulapeter/campfire/website-screenshots"><img src="https://agentmods.dev/badge/skills/pandulapeter/campfire/website-screenshots.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.00176 | $0.01579 |
| Opus 5.5 | $0.00070 | $0.00632 |
| Sonnet 5.5 | $0.00035 | $0.00316 |
| Haiku 4.5 | $0.00018 | $0.00158 |
Grade A, and why
website-screenshots 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 4d 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 — 83 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Campfire website and README images
Made like the store images (the store-screenshots skill): the desktop build drawn offscreen as each platform by
tools/screenshots (see its CLAUDE.md). The website's screenshots go to the site as rendered; its link preview and
the README banners are composed from the same tool's renders (Compositions.kt).
What a run needs
- The library, in
tools/screenshots/library/(gitignored, never committed): a Campfire data folder'slibrary/,covers/, andpreferences/preferences.json, stripped to what the images show. If it is missing, stop and ask. Never write into the user's real data folder. - Nothing else building in the clone while a render runs.
- Pillow for the scripts (
python3 -m pip install Pillowwhereimport PILfails).
Where everything goes
| What | Made from | Ends up in |
|---|---|---|
| Website screenshots | Website.kt |
../CampfireWebsite/assets/screenshots/*.webp (or ../campfire-website/) at each file's own size, the other languages in assets/screenshots/<language>/ |
| Website link preview | Compositions.kt |
../CampfireWebsite/assets/og-image.jpg, 1200×630 |
| README banners | Compositions.kt |
documentation/screenshots/01–06.webp, 1200×900 |
Nothing is committed, in either repository, unless the user asks.
Steps
- Render.
./gradlew :tools:screenshots:run --args="--only website,readme-banners" > <scratchpad>/render.log 2>&1in the background, and beside it, under Monitor (30 minutes, re-armed while the render runs),tools/screenshots/progress.sh <scratchpad>/render.log: it prints the shots done and the time left every two minutes, relayed to the user as they come, and stops once the build ends. - Check every image: a contact sheet per folder (PIL), then anything that looks off at full size — the theme, nothing loading, no stray dialog or snackbar, the rules below, text fitting. Fix the shot or the tool and render again rather than using a bad image.
- Compose the banners and the link preview:
./gradlew :tools:screenshots:run --args="--frame readme"writes the README'sdocumentation/screenshots/01–06.webpand the link preview intotools/screenshots/renders/link-preview.png. Look at each. - The website:
python3 -I .claude/skills/website-screenshots/scripts/website_screenshots.py tools/screenshots/renders/Website --link-preview tools/screenshots/renders/link-preview.pngwrites every website screenshot at the size the site draws its device at (the script'sSIZES), as WebP, and the link preview asog-image.jpg. The-beat-<n>renders of a playing metronome become one<name>-beats-<theme>.webpinstead, the lit beats on a transparent strip the page fades in. Each language's renders (renders/Website/<language>/) go toassets/screenshots/<language>/, where the site's pages in that language pick them up; one identical to the English render is left out, so those pages fall back to the English file. It finds the website's repository as a sibling folder namedCampfireWebsite(the owner's) orcampfire-website(a plain clone), or where--website <path>says; where there is none it stops and asks for--website. - Report what was written where and anything that looked off.
What ships with it
1 file 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.
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.
- 4d ago First seen · 83 lines · 176 tokens per session scan A 7bdf28244eb7
website-screenshots is a skill published in the GitHub repository pandulapeter/campfire (119 stars, last pushed yesterday), licensed MPL-2.0. It adds 176 tokens to every session and 1,579 once invoked, about $0.0007 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-11-02.
website-screenshots compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| website-screenshotspandulapeter/campfire | Skill | 119 | yesterday | MPL-2.0 | A | 176 | Claude Code |
| webgl-holographic-foilnexu-io/open-design | Skill | 106k | yesterday | Apache-2.0 | A | 41 | Claude Code, Codex |
| html-ppt-hermes-cyber-terminalnexu-io/open-design | Skill | 106k | yesterday | Apache-2.0 | A | 53 | Claude Code, Codex |
| html-ppt-taste-brutalistnexu-io/open-design | Skill | 106k | yesterday | Apache-2.0 | A | 78 | Claude Code, Codex |
| visual-ralphYeachan-Heo/oh-my-codex | Skill | 34k | 3d ago | MIT | A | 52 | Codex |
| glance-canonical-layoutsandroid/skills | Skill | 10k | yesterday | Apache-2.0 | A | 56 | Claude Code |
| accessibilitymicrosoft/hve-core | Skill | 1.6k | yesterday | MIT | A | 47 | Claude Code |