16 free tools. Zero uploads. Completely private.
Popular tools
Every tool runs locally using Python compiled to WebAssembly. Your files never leave your device — not even for a millisecond.
No cookies on your files, no account required, no server logs. NilPDF has no idea what you process — by design.
Just open the page and go. No account, no email, no software to install — works the moment you load it.
All tools
No tools match your search.
Combine multiple PDFs into one file.
Optimize structure and images to reduce file size.
Strip all hidden metadata for privacy.
Extract pages or split into multiple files.
Drag and drop pages into a new order.
Rotate any pages by 90°, 180°, or 270°.
Delete unwanted pages from a PDF.
Extract all text content as a .txt file.
Export pages as PNG or JPG images.
Combine JPG or PNG images into a PDF.
Overlay diagonal text on every page.
Stamp page numbers onto any PDF.
View metadata, page count, and more.
Recover pages from a corrupted PDF.
Black out sensitive areas and add text notes.
Click anywhere to write text onto a PDF.
Fill in form fields and optionally flatten them.
Why trust NilPDF
Open your browser's network tab while using any tool — you'll see no file ever leaves your device.
A plain-language explanation of exactly what NilPDF does and doesn't collect.
NilPDF runs a real PDF engine compiled to WebAssembly, entirely client-side. No server processing, ever.
Frequently asked questions
Yes. Every tool is free to use, with no account, no usage limits, and no paywalled features.
No. All processing happens locally in your browser using a PDF engine compiled to WebAssembly. Your files are never sent to a server.
There's no hard limit enforced by NilPDF, but very large files are constrained by your device's available memory since everything runs in your browser. See the browser compatibility page for details.
No. NilPDF runs entirely in the browser tab you're on right now — no extension, app, or sign-up required.
Processing stops immediately, and since nothing is ever uploaded, no partial file exists anywhere. Just reopen the tool and try again.