From Local-Web-Capture
Capture a list of URLs in one job. Saves each article individually with a timestamp, then produces a summary report across the batch (markdown always; PDF optional via Typst). Supports two report modes: human-summary (readable prose + per-item cards) and agent-summary (JSON optimised for LLM consumption). Use when the user supplies multiple URLs — pasted, in a file, or from clipboard — and wants both the individual captures and a synthesised overview.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin Local-Web-CaptureThis skill uses the workspace's default tool permissions.
One command, many URLs, individual captures + a batch-level report.
Prevents silent decimal mismatch bugs in EVM ERC-20 tokens via runtime decimals lookup, chain-aware caching, bridged-token handling, and normalization. For DeFi bots, dashboards using Python/Web3, TypeScript/ethers, Solidity.
Share bugs, ideas, or general feedback.
One command, many URLs, individual captures + a batch-level report.
Accept any of:
--urls-file <path>).Ignore blanks and comments (lines starting with #).
Deduplicate by normalised URL (strip utm_*, fbclid, gclid params).
reference/save-location.md (project-local preferred; global fallback).YYYY-MM-DD-HHMM--<6char-hash> where the hash is short SHA of the joined URL list.<root>/batches/<batch-id>/ with subdirs articles/.For each URL:
scrape-article semantics — Rung 1 webclaw → … → Rung 4 bb-browser only if flagged as auth-required).<root>/batches/<batch-id>/articles/NN--<slug>--<shorthash>.md where NN is zero-padded sequence (preserves input order in listings). Include standard frontmatter.ok / thin / failed), error message if any, capture file path, captured_at ISO timestamp.Keep going on individual failures — the report captures the gaps. Stop only if a systemic issue emerges (e.g. all Rung-1 calls fail — suggests a webclaw problem, surface it and ask).
Always write both reports to the batch directory:
# Batch capture — <batch-id>
**Run:** <ISO timestamp, Israel TZ>
**URLs submitted:** N
**Captured successfully:** M
**Failed / thin:** N-M
**Languages:** he (12), en (3), …
## Summary
<2–4 paragraph synthesis across the captured articles: dominant themes, noteworthy outliers, timeline if dates cluster, contradictions or convergences between sources. Write this as useful prose — not a bullet-dump. Cite items as [#01], [#02] so the reader can jump to the card below.>
## Items
### [#01] <title>
- Source: <domain> · <published_at if known>
- Language: <he/en/...>
- Words: <n> · Rung: <1-4>
- URL: <original>
- File: articles/01--<slug>--<hash>.md
<3–5 sentence summary of this article specifically. If translated, summarise in English regardless of source language.>
### [#02] …
## Failures
| # | URL | Reason |
|---|-----|--------|
| … | … | … |
Optimised for agent consumption — strict schema, no prose decoration:
{
"batch_id": "2026-04-23-1530--a1b2c3",
"generated_at": "2026-04-23T15:35:12+03:00",
"capture_root": "<absolute path>",
"counts": {"submitted": 15, "captured": 13, "failed": 2, "thin": 0},
"themes": ["…", "…"],
"items": [
{
"n": 1,
"url": "…",
"final_url": "…",
"domain": "ynet.co.il",
"title": "…",
"language": "he",
"word_count": 812,
"extractor": "webclaw",
"rung": 1,
"captured_at": "…",
"file": "articles/01--…--abc123.md",
"summary": "2–4 sentence factual summary in English.",
"key_claims": ["…", "…"],
"entities": {"people": ["…"], "orgs": ["…"], "places": ["…"]},
"dates_mentioned": ["2026-04-22"]
}
],
"failures": [{"n": 14, "url": "…", "reason": "timeout at rung 2"}]
}
Keep summary + key_claims tight and factual — this file is consumed by other agents, not humans.
If the user asks for a PDF or passes --pdf, use the typst-document-generator plugin (or plain Typst) to render report.md via a simple template. Save to <batch-id>/report.pdf. Do not block the skill on PDF generation — produce the markdown first, then the PDF as a bonus step.
--urls-file <path> — read URLs from file.--pdf — also render the human report as PDF.--agent-only — skip the human report; just write report.agent.json.--human-only — skip the agent JSON.--out <path> — override save root (see save-location reference).--translate <target-lang> — run capture-translate semantics per item and report in the target language.--concurrency <N> — default 3. Do not hammer a single domain.