Smallpdf is a drawer of single-purpose PDF tools, and most are one command in an open-source engine: qpdf for merging, splitting and passwords, Ghostscript for compression, OCRmyPDF for scans, LibreOffice for Office conversions and pdf-lib for stamps and signatures. An agent wires them into a local web page in one sitting, and your files never leave your machine. What you give up is polish: PDF to Word that keeps the layout, editing text in place, AI tools that run on Smallpdf's servers and the phone app. Stirling-PDF already covers much of this if you'd rather not build.
Before you buildSmallpdf Free works inside its daily limits, and Stirling-PDF in Docker covers most of these tools for nothing if you'd rather not build. Pay or build when the limits or the privacy of uploading documents start to bother you.
Build me a local PDF toolbox to replace Smallpdf. Requirements: - Node.js 22 + TypeScript: Fastify and one plain HTML page with a little vanilla JS on http://127.0.0.1:5200. Drop in files, pick a tool, download the result. Jobs run in a temp folder that is deleted after download or after 30 minutes. - Tools that call command-line engines through `execa`: merge, split by range, rotate and delete pages with `qpdf`; compress with Ghostscript (screen, ebook and printer presets, showing the size before and after); OCR scans with `ocrmypdf` and a language picker; PDF to JPG with `pdftoppm`, and JPG to PDF. - Tools that use `@cantoo/pdf-lib`: reorder pages from thumbnails (rendered in the browser with `pdfjs-dist`), add page numbers, text watermarks, crop margins, and place a drawn or uploaded signature image on a chosen page. - Protect and unlock with `qpdf --encrypt` and `--decrypt`; the password is typed in the page and never logged. A button strips metadata. - Office conversions with headless LibreOffice: Word, Excel and PowerPoint to PDF, and PDF to .docx. Say on the page that PDF to Word does not keep complex layouts. - Limits: 200 MB per upload, files must start with %PDF unless the tool takes images or Office files, at most two jobs at once, and a failed tool shows the engine's stderr. - No accounts, no telemetry, local-first: nothing leaves the machine and nothing is kept after download. - Out of scope: editing existing text in place, signature requests, AI features, a phone app. - README: install commands for qpdf, Ghostscript, OCRmyPDF, Poppler and LibreOffice on macOS (Homebrew) and Debian or Ubuntu (apt), plus a note that Ghostscript is AGPL-licensed.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Smallpdf Pro.
Add a folder watcher to the PDF toolbox in this folder. Requirements: - `npm run watch -- ./inbox --tool ocr --lang eng --out ./done` uses `chokidar` to process every new PDF that finishes copying (wait until the size stops changing for 2 seconds). - Supported tools: ocr, compress (with a preset) and strip-metadata; choose one per watcher. - Move the original to ./inbox/.processed/ and write the result to the output folder with the same name plus a suffix; never overwrite an existing file. - Log each file with its time and size change, and keep going after a failure. - Update the README with a launchd or systemd example.
Add a compare tool to the PDF toolbox in this folder. Requirements: - Upload two PDFs; extract text per page with `pdftotext -layout` and show a side-by-side diff (`diff-match-patch`) with additions and deletions marked. - Render each page with `pdftoppm` and build an overlay image with `pixelmatch` that highlights changed pixels in red; show pages with differences first. - Handle different page counts by listing the extra pages as added or removed. - Delete the temp files after the session. Update the README.
Add a local "ask this PDF" tool to the PDF toolbox in this folder. Requirements: - Extract text per page with `pdftotext`, split it into chunks of about 800 tokens with 100 overlap, and embed them with an Ollama embedding model set in .env (OLLAMA_URL, EMBED_MODEL). - Keep the vectors in memory for the session; answer with a local chat model (CHAT_MODEL) and list the page numbers used as sources. - If Ollama isn't reachable, hide the tool and say how to start it. Nothing leaves the machine. - Refuse files over 300 pages with a clear message. Update the README.
Convenience. It works in any browser with no install, one login covers 30+ tools, and Pro removes the daily download limits. OCR, text editing, AI tools and signing come in the same plan, so an occasional user skips assembling a toolchain.
Estimate · Everything runs on your machine with free engines. The build session is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0/user | $0/user | 30+ document tools with daily download limits per tool, basic compression, limited mobile app access, limited AI tools (25-35k words per document), Sign.com free account with 2 documents a month. |
| Pro | $15/user | $11.25/user | Unlimited access and downloads for all 30+ tools, Edit Text, OCR, strong compression, batch tools, unlimited AI tools (100k words per document), unlimited mobile app access, Sign.com Premium. |
| Team (2-19 seats) | $12 | — | Everything in Pro plus discounted pricing, priority support, centralized billing, member access management and Sign.com Premium for each member. |
| Business (20+) | custom | — | Everything in Team plus custom pricing, flexible payment options and dedicated customer support. |
Free gives 30+ tools with daily download limits, limited mobile app access and a Sign.com account limited to 2 documents a month.
Yes. An AI coding agent such as Claude Code, Codex or Cursor can build a usable personal version in one session with the prompt on this page, running on your own machine.
About $15 a month on the Pro plan, $180 a year (checked 2026-10-19).
PDF to Word, Excel and PowerPoint conversion that keeps complex layouts intact; Editing existing text in place, and a polished annotator; AI tools: chat with a PDF, summaries, translation and question generation; The mobile app with scanning, and account storage that follows you across devices; Sign.com Premium: signature requests, templates, an activity timeline and certificates of completion. If any of those matter to you, keep paying.
Yes: Stirling-PDF (open source), BentoPDF (open source), PDFsam Basic (open source).