
Wraps Nutrient's document processing API so you can generate PDFs from HTML or URLs, convert Office files and images, OCR scans, extract tables and key-value pairs, redact PII, sign documents, and produce PDF/A or PDF/UA compliance outputs. Ships with single-operation Python scripts for common tasks and a workflow template for chaining operations like OCR-then-redact or convert-merge-sign sequences. The tool preference is clear: use the helper scripts when they fit, copy the template for multi-step jobs, hit the API directly for edge cases. If you're building document pipelines where fidelity and compliance matter more than quick-and-dirty local PDF hacks, this gives you a managed service with proper text extraction and archival format support.
npx -y skills add pspdfkit-labs/nutrient-agent-skill --skill nutrient-document-processing --agent claude-codeInstalls into .claude/skills of the current project.
Use this skill for managed document processing where fidelity, compliance, or a multi-step workflow justifies transferring the user's files to Nutrient DWS.
Choose the product before estimating cost or selecting credentials:
| Need | Product | Route used here |
|---|---|---|
| Convert, generate, assemble, OCR, JSON-content extraction, redact, sign, optimize, PDF/A or PDF/UA output | DWS Processor | Pinned Python helpers in scripts/ using NUTRIENT_API_KEY |
| High-fidelity document parsing to markdown or spatial JSON | Data Extraction | Separate /extraction/parse product, credential, and credit pool; use its current official client/docs |
| Accessibility auto-tagging and PDF/UA validation workflow | Accessibility | Separate current Accessibility API/product; do not use the deprecated Processor /processor/pdfua endpoint |
Do not reuse Processor cost estimates, credentials, or payloads for Data Extraction or Accessibility.
Get a Processor API key from https://dashboard.nutrient.io/sign_up/?product=processor.
Configure NUTRIENT_API_KEY through the agent host's protected runtime environment or secrets manager. Never ask the user to paste the key into chat, and never put it in command arguments, logs, generated scripts, or committed configuration. Verify only that the variable is present, not its value.
Each script uses PEP 723 metadata pinned to nutrient-dws==3.1.0; run it with uv run.
Run helpers by path from the installed skill directory. Never assume the current directory is the skill directory.
Page ranges are zero-based and inclusive. 0:4 means five pages. Negative indexes count from the end.
Every helper invocation sends document content to the external DWS Processor API and consumes credits. Before each run:
--estimated-credits NUMBER and --confirm-external-processing.Approval never carries over to a retry, batch, second stage, redaction apply, or signature. Do not add the confirmation flag speculatively.
scripts/*.py helper; it uses the pinned typed client and safe output writer.assets/templates/custom-workflow-template.py at runtime.All output helpers create files atomically with owner-only permissions and refuse to overwrite an existing path. Choose a new path for a retry.
convert.py: pdf, pdfa, pdfua, docx, xlsx, pptx, png, jpeg, jpg, webp, html, or markdown; handles binary, text-content, and JSON-content results.merge.py, split.py, add-pages.py, delete-pages.py, duplicate-pages.py, rotate.py: page and packet operations.ocr.py, extract-text.py, extract-table.py, extract-key-value-pairs.py: Processor OCR and JSON-content extraction.watermark-text.py, optimize.py: delivery transformations.redact-ai.py: AI staging only for a local PDF. Visually review the staged result before a separately approved apply step.sign.py: local PDF only; requires an explicit JSON config file with signatureType and verifies the output is a PDF container. Independently validate the embedded signature and trust chain.password-protect.py: reads passwords only from owner-only local files (chmod 600), never argv.Do not commit a job-specific pipeline under scripts/. Copy the template to a task-specific temporary path, then point it back to the installed skill directory:
export NUTRIENT_SKILL_DIR="/absolute/path/to/nutrient-document-processing"
cp "$NUTRIENT_SKILL_DIR/assets/templates/custom-workflow-template.py" /tmp/ndp-workflow.py
# customize /tmp/ndp-workflow.py
NUTRIENT_SKILL_DIR="$NUTRIENT_SKILL_DIR" uv run /tmp/ndp-workflow.py --help
The final paid invocation still needs the operation estimate and explicit confirmation flags. Remove the temporary script when the job is complete unless the user asks to retain it.
fillForm build action./processor/pdfua endpoint for a new integration.references/request-basics.md: product boundary, authentication, typed outputs, approval, and errorsreferences/generation-and-conversion.md: current conversion and generation patternsreferences/pdf-manipulation.md: inclusive ranges and page operationsreferences/extraction-and-ocr.md: Processor JSON-content extraction versus Data Extraction parsingreferences/security-signing-and-forms.md: staged redaction, signing, forms, passwords, and watermarkingreferences/compliance-and-optimization.md: PDF/A, PDF/UA routing, optimization, and validationreferences/workflow-recipes.md: safe sequencing for multi-step jobs