document-processor-api skill
scriptsProcess, convert, and manipulate documents using OCR, redaction, signing, and compliance-focused PDF generation.
- GitHub stars
- 18
- Files
- 29
- Last commit
- Nov 3, 2026
- License
- MIT
- Allowed tools
- —
What does the document-processor-api skill do?
document-processor-api is an agent skill. Process, convert, and manipulate documents using OCR, redaction, signing, and compliance-focused PDF generation.
Summary generated from the skill's SKILL.md.
About the document-processor-api skill
Managing complex document lifecycles through automated workflows is what this skill enables for developers and AI agents. It provides a suite of tools to handle high-fidelity document tasks such as converting HTML or URLs into PDFs, transforming Office documents, and performing OCR on scanned images to extract text, tables, or key-value pairs. It is designed for users who require strict compliance standards, offering specialized outputs like PDF/A and PDF/UA.
An agent should load this skill when a task requires more than simple local file inspection, specifically when output fidelity or legal compliance is necessary. The skill utilizes various Python scripts to execute single operations like merging, splitting, rotating, or watermarking files. For multi-step processes, it uses a custom workflow template to sequence actions such as redacting PII, signing a document, and finally optimizing or linearizing the file for web delivery. It relies on the Nutrient DWS API and requires a valid API key to function.
What an agent can do with it
- 1Convert web content to PDFTransform a remote URL or HTML template into a high-quality PDF document.
- 2Extract data from scansPerform OCR on scanned documents to pull out structured tables and text.
- 3Secure sensitive informationIdentify and redact personally identifiable information using AI-powered detection.
- 4Ensure document complianceProduce specialized PDF formats that meet specific archival or accessibility standards.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the document-processor-api skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the document-processor-api skill in Plugin
/plugin marketplace add PSPDFKit-labs/nutrient-skills /plugin install nutrient-dws@nutrient-skills
Install the document-processor-api skill in Claude Code
~/.claude/skills/document-processor-api/SKILL.md
$ npx degit PSPDFKit-labs/nutrient-skills/plugins/nutrient-dws/skills/document-processor-api ~/.claude/skills/document-processor-apiInstall the document-processor-api skill in Claude Code (project)
.claude/skills/document-processor-api/SKILL.md
$ npx degit PSPDFKit-labs/nutrient-skills/plugins/nutrient-dws/skills/document-processor-api .claude/skills/document-processor-apiInstall the document-processor-api skill in Codex
~/.agents/skills/document-processor-api/SKILL.md
$ npx degit PSPDFKit-labs/nutrient-skills/plugins/nutrient-dws/skills/document-processor-api ~/.agents/skills/document-processor-apiInstall the document-processor-api skill in Gemini CLI
~/.gemini/skills/document-processor-api/SKILL.md
$ npx degit PSPDFKit-labs/nutrient-skills/plugins/nutrient-dws/skills/document-processor-api ~/.gemini/skills/document-processor-apiInstall the document-processor-api skill in Claude.ai
npx degit PSPDFKit-labs/nutrient-skills/plugins/nutrient-dws/skills/document-processor-api document-processor-api && zip -r document-processor-api.zip document-processor-api # claude.ai → Customize → Skills → + → Create skill → Upload a skill → document-processor-api.zip
Automated checks
Ran Nov 14, 2026Full report →Not verified yet. A skill needs a score of 80, no serious finding, and enough data for us to check. How checks work · What to fix for more points
- Source repository linked and reachablepspdfkit-labs/nutrient-skills/plugins/nutrient-dws/skills/document-processor-api is public and reachablegithub.com/pspdfkit-labs/nutrient-skills/tree/HEAD/plugins/n ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit 2026-11-03github.com/pspdfkit-labs/nutrient-skills/commits ↗Pass
- No download-and-run or credential theft in scripts5 of 17 scripts read; none of them downloads and runs code, the rest were not readFinding
- No hidden instructions in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/pspdfkit-labs/nutrient-skills/blob/HEAD/plugins/n ↗Pass
- Pre-approved tools are scopedNo pre-approved tools; the agent asks before using onegithub.com/pspdfkit-labs/nutrient-skills/blob/HEAD/plugins/n ↗Pass
- SKILL.md follows the Agent Skills formatValid name and description; says when to use it; 131 linesgithub.com/pspdfkit-labs/nutrient-skills/blob/HEAD/plugins/n ↗Pass
SKILL.md
View on GitHubNutrient Document Processing
Use Nutrient DWS for managed document workflows where fidelity, compliance, or multi-step processing matters more than local-tool convenience.
Setup
- Get a Nutrient DWS API key at https://dashboard.nutrient.io/sign_up/?product=processor.
- Direct API calls use
Authorization: Bearer $NUTRIENT_API_KEY.export NUTRIENT_API_KEY="nutr_sk_..." - MCP setups commonly use
@nutrient-sdk/dws-mcp-serverwithNUTRIENT_DWS_API_KEY. - Scripts live in
scripts/relative to this SKILL.md. Use the directory containing this SKILL.md as the working directory:cd <directory containing this SKILL.md> && uv run scripts/<script>.py --help - Page ranges use
start:endwith 0-based indexes and end-exclusive semantics. Negative indexes count from the end.
When to use
- Generate PDFs from HTML templates, uploaded assets, or remote URLs.
- Convert Office, HTML, image, and PDF files between supported formats.
- OCR scans and extract text, tables, or key-value pairs.
- Redact PII, watermark, sign, fill forms, merge, split, rotate, flatten, or encrypt PDFs.
- Produce delivery targets like PDF/A, PDF/UA, optimized PDFs, or linearized PDFs.
- Check credits before large, batch, or AI-heavy runs.
Tool preference
- Prefer
scripts/*.pyfor covered single-operation workflows. - Use
assets/templates/custom-workflow-template.pyfor multi-step jobs that should still run through the Python client. - Use the modular
references/docs and direct API payloads for capabilities that do not yet have a dedicated helper script, especially HTML/URL generation and compliance tuning. - Use local PDF utilities only for lightweight inspection. Use Nutrient when output fidelity or compliance matters.
Single-operation scripts
convert.py-> convert betweenpdf,pdfa,pdfua,docx,xlsx,pptx,png,jpeg,webp,html, andmarkdownmerge.py-> merge multiple files into one PDFsplit.py-> split one PDF into multiple PDFs by page rangesadd-pages.py-> append blank pagesdelete-pages.py-> remove specific pagesduplicate-pages.py-> reorder or duplicate pages into a new PDFrotate.py-> rotate selected pagesocr.py-> OCR scanned PDFs or imagesextract-text.py-> extract text to JSONextract-table.py-> extract tablesextract-key-value-pairs.py-> extract key-value pairswatermark-text.py-> apply a text watermarkredact-ai.py-> detect and apply AI-powered redactionssign.py-> digitally sign a local PDFpassword-protect.py-> write encrypted output PDFsoptimize.py-> apply optimization and linearization-style options via JSON
Multi-Step Workflow Rule
Do not add new committed pipeline scripts under scripts/.
When the user asks for multiple operations in one run:
- Copy
assets/templates/custom-workflow-template.pyto a temporary location such as/tmp/ndp-workflow-<task>.py. - Implement the combined workflow in that temporary script.
- Run it with
uv run /tmp/ndp-workflow-<task>.py .... - Return generated output files.
- Delete the temporary script unless the user explicitly asks to keep it.
PDF Requirements
split.pyrequires a multi-page PDF and cannot extract ranges from a single-page document.delete-pages.pymust retain at least one page and cannot delete the entire document.sign.pyonly accepts local file paths for the main PDF.
Decision rules
- Prefer a helper script when one already covers the requested operation cleanly.
- If you control the source markup, prefer HTML generation over browser print workflows.
- Use remote
file.urlinputs when the source already lives at a stable URL and you want to avoid local uploads. - Use
output.typefor conversion and finalization targets. Useactionsfor transformations when building direct API payloads. - OCR before text extraction, key-value extraction, or semantic redaction on scans.
- Prefer preset or regex redaction when the target is explicit. Use AI redaction only for contextual or natural-language requests.
- Use the PDF manipulation reference for merge, split, rotate, flatten, and page-range workflows instead of inferring those payloads from conversion examples.
- Treat PDF/A and PDF/UA as compliance targets, not cosmetic export formats. Choose the target up front and validate final artifacts when requirements are contractual.
- For PDF/UA, clean born-digital inputs and structured HTML usually tag better than rasterized or flattened source PDFs.
- For delivery optimization, linearize or optimize unsigned output artifacts instead of mutating already signed files.
- When the user asks for multiple steps, keep destructive or final steps late in the sequence. Use the workflow recipes when ordering is ambiguous.
Anti-patterns
- Do not OCR born-digital PDFs just because the task mentions extraction. Extract first and OCR only if the text layer is missing.
- Do not flatten forms or annotations until the user confirms the artifact no longer needs to stay editable.
- Do not sign, archive, or linearize intermediate working files. Keep those as final-delivery steps.
- Do not promise PDF/A or PDF/UA compliance without a validation step when the requirement is contractual.
- Do not commit temporary workflow scripts under
scripts/.
Reference map
Read only what you need:
references/request-basics.md-> endpoint model, auth, multipart vs JSON, credits, limits, and errorsreferences/generation-and-conversion.md-> HTML/URL generation and format conversionreferences/pdf-manipulation.md-> merge, split, page-range, rotate, and flatten workflowsreferences/extraction-and-ocr.md-> OCR, text extraction, tables, and key-value workflowsreferences/security-signing-and-forms.md-> redaction, watermarking, signatures, forms, and passwordsreferences/compliance-and-optimization.md-> PDF/A, PDF/UA, optimization, and linearizationreferences/workflow-recipes.md-> end-to-end sequencing patterns for common business document workflows
Rules
- Fail fast when required arguments are missing.
- Write outputs to explicit paths and print created files.
- Do not log secrets.
- All client methods are async and should run via
asyncio.run(main()). - If import fails, install dependency with
uv add nutrient-dws.
Security Hardening Addendum
- Prefer a pinned, preinstalled MCP server binary over runtime package fetches.
- Preferred:
npm i -g @nutrient-sdk/dws-mcp-server@<pinned-version> - Avoid unpinned runtime fetch in production paths.
- Preferred:
- Never store
NUTRIENT_DWS_API_KEYin committed JSON config files.- Use process env injection at runtime (shell/export, secrets manager, or host env).
- Restrict file access with
SANDBOX_PATHto the minimum required working directory. - Before enabling MCP mode in production, verify package provenance and lock version.
Files in this skill
29document-processor-api skill questions
How do I install the document-processor-api skill in Claude Code?
Run npx degit PSPDFKit-labs/nutrient-skills/plugins/nutrient-dws/skills/document-processor-api ~/.claude/skills/document-processor-api. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the document-processor-api skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
What kind of document conversions are supported?
The tool supports converting between PDF, PDF/A, PDF/UA, DOCX, XLSX, PPTX, PNG, JPEG, WebP, HTML, and Markdown.
How should I handle multi-step document workflows?
For multiple operations, copy the custom workflow template to a temporary location, implement the combined workflow, and run it using uv.
Can I extract data from scanned documents?
Yes, you can use OCR to process scanned PDFs or images and then extract text, tables, or key-value pairs.
What is the best way to redact sensitive information?
You can use AI-powered redaction for contextual or natural-language requests, or use preset/regex redaction when the target is explicit.