← Back to Skills Marketplace
225
Downloads
0
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install webpage-to-pdf
Description
Convert a web page to PDF, especially web-based slide decks and presentations (reveal.js, impress.js, custom JS slideshows, scroll-based decks). Use when the...
Usage Guidance
This skill appears to do what it claims, but review and consider the following before installing:
- Source trust: the package has no homepage and an opaque owner ID. If you don't trust the author, review the included scripts manually (you already have them) before running npm/pip installs.
- Installer behavior: `npm install` (Playwright) will download code and Chromium binaries from external registries. Do this only on a machine you control; prefer an isolated environment (container/VM) if possible.
- Untrusted URLs: the skill loads arbitrary URLs with a headless browser. Treat this like opening a webpage in a browser — it can run JS, fingerprint, or attempt attacks. Do not run it on systems with sensitive network access unless you sandbox it.
- Command invocation risk: the script uses execSync with a composed shell command. If you or an automated agent supplies an output path that contains shell metacharacters (e.g., command substitution), that could be executed. Use safe, simple output filenames or run the script with a hardened wrapper (or patch the code to use spawn/spawnSync with argument arrays) to remove shell interpolation.
- Operational prerequisites: Node.js (18+), Python3, and Pillow must be installed; Playwright will install Chromium. Ensure you have disk space and network access for these downloads.
If you plan to use this skill frequently, consider auditing/patching the execSync call to use a safe spawn variant, and run the skill in a sandboxed environment (container or dedicated VM). If you are unsure about the author given the missing homepage/metadata, prefer to run only the reviewed code locally rather than allowing automatic installs in a shared environment.
Capability Analysis
Type: OpenClaw Skill
Name: webpage-to-pdf
Version: 1.0.0
The skill contains a shell injection vulnerability in `scripts/capture.mjs` within the `assemblePDF` function. It dynamically generates a Python script and executes it via `execSync`, passing the user-controlled output path directly into the shell command string without sanitization. While the skill's logic aligns with its stated purpose of converting web pages to PDF, this implementation flaw allows for arbitrary command execution if the agent is provided with a malicious filename.
Capability Assessment
Purpose & Capability
Name/description match the provided code and SKILL.md. The Playwright-based capture script + Python (Pillow) assembly is appropriate for converting web slides/pages into multi-page PDFs. Required dependencies (playwright, chromium, Pillow) are coherent with the stated task.
Instruction Scope
Runtime instructions are narrowly scoped to fetching a user-provided URL, taking screenshots, and assembling them into a PDF. They do require installing npm packages and Pillow. The agent will load arbitrary URLs (expected) — which can expose the runner to remote content, potentially including pages that attempt to fingerprint or exploit the runtime. The script writes and executes a temporary Python script and runs a shell command to invoke it (see security note below).
Install Mechanism
There is no packaged install spec; SKILL.md instructs running `npm install` and `npx playwright install chromium` and `pip install Pillow`. Pulling Playwright and Chromium from npm is normal for this task but will download large binaries and third-party packages from public registries. This is expected but you should be aware these installers run code from upstream registries.
Credentials
The skill requests no environment variables, credentials, or config paths. That is proportional: converting pages to PDF does not require secrets or external credentials.
Persistence & Privilege
The skill does not request always:true and is user-invocable only. It does not modify other skills or system-wide configs. Its persistence and privileges are minimal.
How to Use
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install webpage-to-pdf - After installation, invoke the skill by name or use
/webpage-to-pdf - Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of the web-to-pdf skill.
- Convert web pages and web-based slide decks (reveal.js, impress.js, custom JS slideshows, articles) to multi-page PDF.
- Automatically detects and handles different slide/navigation models: reveal.js, vertical scroll decks, keyboard navigation decks, and single-page web articles.
- Uses a headless browser (Playwright) to capture slides as images, then assembles them into a PDF.
- Provides configurable options for viewport size, wait time, and slide limits.
- Troubleshooting guidance included for common capture issues.
Metadata
Frequently Asked Questions
What is Web to PDF?
Convert a web page to PDF, especially web-based slide decks and presentations (reveal.js, impress.js, custom JS slideshows, scroll-based decks). Use when the... It is an AI Agent Skill for Claude Code / OpenClaw, with 225 downloads so far.
How do I install Web to PDF?
Run "/install webpage-to-pdf" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Web to PDF free?
Yes, Web to PDF is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Web to PDF support?
Web to PDF is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Web to PDF?
It is built and maintained by pearyj (@pearyj); the current version is v1.0.0.
More Skills