operations / skill

PDF Toolkit

Inspect and transform local PDFs with bounded inputs and approval-gated output files.

At a glance

Purpose
Inspect and transform local PDFs with bounded inputs and approval-gated output files.
Runs in
Local agent with shell
Operating systems
macOS, Linux
Needs
Runtime: Python 3.10+ and pypdf 6.19.0; Needs internet: No; Needs accounts or API keys beyond your agent: No
Files and data
Reads files: Yes; Writes files: Yes; Sends data to other services: No
Tool type
Skill
Delivery
Download from Skills Outpost
Version
0.1.1
Access
Download from Skills Outpost
Compatibility
Requires macOS or Linux, Python 3.10 or newer, pypdf==6.19.0 (BSD-3-Clause), and an Agent Skills compatible harness that can run local command-line tools. Windows is not supported. No network access is required.
External costs
The tool makes no paid service calls, and pypdf has no license fee. Any cost of running your agent harness and computer depends on your own setup.
Permissions
Reads only caller-selected local PDF files through physical paths, within adjustable size and page limits. Creates new PDF files, readable by their owner only, only at caller-selected paths (split writes page-N.pdf files inside the selected folder), after a dry run and a matching approval digest that also binds the output folder and its parent; existing files and symlinks are refused. Reads no configuration or credential environment variables. Uses no credentials, network access or proxy settings.
Usage terms
Zero Width Lab Commercial License 1.0, included as LICENSE.txt. The purchaser receives a non-exclusive, non-transferable, perpetual license to install and use the purchased version on devices they own or control, for their own purposes, including in agent harnesses they operate. Redistribution, resale, sublicensing and publication are not allowed, and the attribution line must stay. Modifications for the purchaser's own use are allowed. The license covers the purchased version only. By Zero Width Lab (zerowidthlab.com)

Sold on Skills Outpost

Version 0.1.1 costs CA$2.00.

New purchases are paused.

What it does

PDF Toolkit is a local command-line Agent Skill for inspecting and transforming PDF files on macOS and Linux. An agent harness is software that can install the skill and run its Python commands for you. It needs Python 3.10 or newer and pypdf 6.19.0. Version 0.1.1 costs CA$2.00 in total and comes with the Zero Width Lab Commercial License 1.0. This listing delivers the complete package with its scripts and tests.

The commands report page counts and metadata, split and merge files, rotate selected pages, extract text, strip document metadata and draw opaque boxes. Approval-gated means that every command that creates a file first runs as a dry run that shows the exact paths and an approval digest, and the real write runs only with that matching digest. The digest covers the input contents and the output folder, so a changed input or a swapped folder stops the write. Outputs are always new files; existing files and symlinked paths are refused. Each input has adjustable size and page limits.

Masking hides content visually but does NOT remove the text or objects underneath, so it is NOT secure redaction; use a purpose-built redaction tool for sensitive information. Text extraction does not rebuild tables or read scanned images. Every command refuses damaged files; info reports whether a file is encrypted, and the other commands refuse encrypted files. The tool never uses the network.

Who it is for

People on macOS or Linux who want an agent harness to inspect and transform their own local PDF files, with explicit approval before any new file is created.

Example tasks

Show the page count and document metadata.
Split pages 1 and 3-5 into separate new PDFs.
Merge selected PDFs in order.
Rotate selected pages and save the result as a new file.
Extract text as plain text or JSON.
Write a new copy without the document information and XMP metadata.
Draw a black box on a page after reading the warning and the dry run.

Getting started

After purchase, download the complete package from this listing and keep its files together. Install pypdf==6.19.0 in an isolated Python environment. From the package root, run python scripts/pdf_toolkit.py --help. Supply exact physical input and output paths. For each write, run --dry-run, review every CREATE path and the approval digest, then rerun with --approve DIGEST. From the package root, run python -m unittest discover -s tests -v to check the package.

Limitations

Runs on macOS and Linux only; Windows is not supported. Text extraction does not rebuild tables or read scanned images (no OCR). Masking hides content visually but does NOT remove the text or objects underneath, so it is NOT secure redaction. Mask refuses rotated or shifted pages, pages whose crop box differs from the media box, and pages with a non-default user unit. strip-metadata writes no document information and removes document-level and page-level XMP, page piece data and page modification dates; the other commands add pypdf's producer entry and keep page-level entries; no command removes thumbnails, annotations, or metadata inside images or fonts. Every command refuses damaged files that need repair; info reports an encrypted file without decrypting it, and the other commands refuse encrypted files. Paths must be physical: a symlink anywhere in a path is refused (on macOS, use /private/tmp rather than /tmp). Each input is limited to 50 MiB and 500 pages by default, and merge also refuses a combined result over the page limit. Existing output files are refused. A failed write may leave a partial file for inspection. A purchase covers version 0.1.1 only and includes no updates or support; any later version would be offered separately.

Data practices

All processing is local. The tool reads only caller-selected PDF files and writes only new PDF files at caller-selected paths. It hashes the input bytes and records the output folder's identity to bind the dry run to the real write. No content, telemetry or credentials are sent anywhere. Your agent harness can capture or forward standard output. strip-metadata writes no document information and removes XMP metadata; the other commands leave out the source's document information and document-level XMP but add pypdf's producer entry and keep page-level metadata.
Report a listing concern

What did you see, and where? Please don't include passwords or keys.

We'll only use it to ask you about this report.