URL to PDF
PassAudited by ClawScan on May 1, 2026.
Overview
This skill appears to do what it claims: open a provided URL in Playwright, save it as a mobile-sized PDF, and send the resulting file to the user.
This looks safe for its stated purpose. Before installing, be aware that it uses uv and Playwright/Chromium, opens the URL you provide in a browser context, writes a PDF locally by default under Documents, and then sends that generated PDF back to you.
Findings (3)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Installing or first using the skill may download Playwright-related packages and a Chromium browser component.
The skill depends on uv-managed package/browser installation. This is expected for Playwright-based PDF generation, but it means installation pulls external components.
playwright itself will be installed by uv automatically, while it also needs browser to be installed: uvx playwright install chromium
Install only if you are comfortable with uv/Playwright dependencies, and prefer a trusted network/package environment.
Using the skill runs a local script that launches Chromium through Playwright to visit the requested page and generate a PDF.
The skill’s normal operation is to run a local Python script with the provided URL. This local execution is central to the stated purpose and not hidden.
uv run --script ${baseDir}/url2pdf.py "${url}"Use it for URLs you intend to render as PDFs; avoid passing sensitive or untrusted local file URLs unless you deliberately want them converted.
The skill will create or overwrite a PDF path derived from the URL in the configured output location.
The script navigates to the supplied URL and writes a PDF file to a local output path, defaulting under Documents. This matches the skill’s purpose but is still local file and network/browser activity.
OUT_DIR = os.getenv("PDF_OUT_DIR", "~/Documents") ... return path / f"{slug}.pdf" ... page.goto(url, wait_until="domcontentloaded", timeout=30000) ... device.save_as_pdf(page, pdf_path)Check the output location if file naming conflicts matter, and set PDF_OUT_DIR or an explicit output path if you want PDFs saved somewhere specific.
